25 |
* SUCH DAMAGE. |
* SUCH DAMAGE. |
26 |
* |
* |
27 |
* |
* |
28 |
* $Id: cpu_arm_instr_dpi.c,v 1.9 2005/10/04 04:44:16 debug Exp $ |
* $Id: cpu_arm_instr_dpi.c,v 1.10 2005/10/09 21:32:07 debug Exp $ |
29 |
* |
* |
30 |
* |
* |
31 |
* ARM Data Processing Instructions |
* ARM Data Processing Instructions |
64 |
|
|
65 |
/* |
/* |
66 |
* arg[0] = pointer to rn |
* arg[0] = pointer to rn |
67 |
* arg[1] = int32_t immediate value OR copy of the instruction word (regform) |
* arg[1] = int32_t immediate value OR ptr to a reg_func() function |
68 |
* arg[2] = pointer to rd |
* arg[2] = pointer to rd |
69 |
*/ |
*/ |
70 |
void A__NAME(struct cpu *cpu, struct arm_instr_call *ic) |
void A__NAME(struct cpu *cpu, struct arm_instr_call *ic) |
71 |
{ |
{ |
72 |
|
#ifdef A__REG |
73 |
|
uint32_t (*reg_func)(struct cpu *, struct arm_instr_call *) |
74 |
|
= (void *)(size_t)ic->arg[1]; |
75 |
|
#endif |
76 |
|
|
77 |
#ifdef A__S |
#ifdef A__S |
78 |
uint32_t c32; |
uint32_t c32; |
79 |
#endif |
#endif |
93 |
#endif |
#endif |
94 |
b = |
b = |
95 |
#ifdef A__REG |
#ifdef A__REG |
96 |
R(cpu, ic, ic->arg[1], |
reg_func(cpu, ic); |
|
#ifdef A__S |
|
|
1 |
|
|
#else |
|
|
0 |
|
|
#endif |
|
|
); |
|
97 |
#else |
#else |
98 |
ic->arg[1]; |
ic->arg[1]; |
99 |
#endif |
#endif |