Revision d2856f1a target-sparc/translate.c
b/target-sparc/translate.c | ||
---|---|---|
4659 | 4659 |
gregnames[i]); |
4660 | 4660 |
} |
4661 | 4661 |
} |
4662 |
|
|
4663 |
void gen_pc_load(CPUState *env, TranslationBlock *tb, |
|
4664 |
unsigned long searched_pc, int pc_pos, void *puc) |
|
4665 |
{ |
|
4666 |
target_ulong npc; |
|
4667 |
env->pc = gen_opc_pc[pc_pos]; |
|
4668 |
npc = gen_opc_npc[pc_pos]; |
|
4669 |
if (npc == 1) { |
|
4670 |
/* dynamic NPC: already stored */ |
|
4671 |
} else if (npc == 2) { |
|
4672 |
target_ulong t2 = (target_ulong)(unsigned long)puc; |
|
4673 |
/* jump PC: use T2 and the jump targets of the translation */ |
|
4674 |
if (t2) |
|
4675 |
env->npc = gen_opc_jump_pc[0]; |
|
4676 |
else |
|
4677 |
env->npc = gen_opc_jump_pc[1]; |
|
4678 |
} else { |
|
4679 |
env->npc = npc; |
|
4680 |
} |
|
4681 |
} |
Also available in: Unified diff