On 2/24/08, claude vittoria <[EMAIL PROTECTED]> wrote: > So in qemu I don't get the same comportement. The add of lr = pc + 4 > gives lr = pc + 8 into qemu. > I think that s->pc += 4 at start of disas_arm_insn alters the result. > Could you confirm ? > > 0x7c add lr, pc, #4 > 0x80 ldr pc, =SystemInterrupt > > 0x84 ldr r3, [sp, #PSR_OFF] <= never executed in Qemu > 0x88 msr spsr_cxsf, r3 @ put cpsr in SPSR > 0x8c ldmia sp, {r0-r15}^ @ restore Context
The add lr,pc, #4 will put 0x88 into lr. As Daniel wrote, in ARM mode, when an instruction which address is addr reads the PC, it will read addr + 8. Given the mutekh link you provide has no source code for ARM (at least I couldn't find it), we can't guess where the ldr pc jumps to. Laurent