52 |
uint8_t gen_opc_cc_op[OPC_BUF_SIZE]; |
uint8_t gen_opc_cc_op[OPC_BUF_SIZE]; |
53 |
#elif defined(TARGET_SPARC) |
#elif defined(TARGET_SPARC) |
54 |
target_ulong gen_opc_npc[OPC_BUF_SIZE]; |
target_ulong gen_opc_npc[OPC_BUF_SIZE]; |
55 |
|
target_ulong gen_opc_jump_pc[2]; |
56 |
#endif |
#endif |
57 |
|
|
58 |
int code_copy_enabled = 1; |
int code_copy_enabled = 1; |
245 |
#elif defined(TARGET_ARM) |
#elif defined(TARGET_ARM) |
246 |
env->regs[15] = gen_opc_pc[j]; |
env->regs[15] = gen_opc_pc[j]; |
247 |
#elif defined(TARGET_SPARC) |
#elif defined(TARGET_SPARC) |
248 |
/* XXX: restore npc too */ |
{ |
249 |
env->pc = gen_opc_pc[j]; |
target_ulong npc; |
250 |
env->npc = gen_opc_npc[j]; |
env->pc = gen_opc_pc[j]; |
251 |
|
npc = gen_opc_npc[j]; |
252 |
|
if (npc == 1) { |
253 |
|
/* dynamic NPC: already stored */ |
254 |
|
} else if (npc == 2) { |
255 |
|
target_ulong t2 = (target_ulong)puc; |
256 |
|
/* jump PC: use T2 and the jump targets of the translation */ |
257 |
|
if (t2) |
258 |
|
env->npc = gen_opc_jump_pc[0]; |
259 |
|
else |
260 |
|
env->npc = gen_opc_jump_pc[1]; |
261 |
|
} else { |
262 |
|
env->npc = npc; |
263 |
|
} |
264 |
|
} |
265 |
#elif defined(TARGET_PPC) |
#elif defined(TARGET_PPC) |
266 |
{ |
{ |
267 |
int type; |
int type; |