25 |
* SUCH DAMAGE. |
* SUCH DAMAGE. |
26 |
* |
* |
27 |
* |
* |
28 |
* $Id: generate_arm_r.c,v 1.4 2005/11/19 18:53:07 debug Exp $ |
* $Id: generate_arm_r.c,v 1.5 2005/12/26 14:14:27 debug Exp $ |
29 |
* |
* |
30 |
* Generate functions for computing "reg" operands. |
* Generate functions for computing "reg" operands. |
31 |
*/ |
*/ |
255 |
case 6: /* ror c OR rrx (Arithmetic Shift Right by constant) */ |
case 6: /* ror c OR rrx (Arithmetic Shift Right by constant) */ |
256 |
/* 0=rrx, 1..31=ror */ |
/* 0=rrx, 1..31=ror */ |
257 |
if (c == 0) { |
if (c == 0) { |
258 |
printf("\tprintf(\"%s\\n\");\n", name); |
printf("{ uint64_t x="); |
259 |
printf("\texit(1); /* TODO */\n\treturn 0;\n"); |
if (pc) |
260 |
|
printf("tmp"); |
261 |
|
else |
262 |
|
printf("cpu->cd.arm.r[%i]",rm); |
263 |
|
printf("; if (cpu->cd.arm.flags & ARM_F_C)" |
264 |
|
" x |= 0x100000000ULL;"); |
265 |
|
if (s) { |
266 |
|
printf("cpu->cd.arm.flags &= ~ARM_F_C;" |
267 |
|
"if(x&1) cpu->cd.arm.flags |= " |
268 |
|
"ARM_F_C;"); |
269 |
|
} |
270 |
|
printf("return x >> 1; }\n"); |
271 |
} else if (s) { |
} else if (s) { |
272 |
printf("{ uint64_t x = "); |
printf("{ uint64_t x = "); |
273 |
if (pc) |
if (pc) |