Previous 15994 Revisions Next

r10141 Sunday 23rd January, 2011 at 00:03:50 UTC by Tim Schuerewegen
ARM7: Fixed "MOV x, PC, LSL x" bug exposed by ARMwrestler.
[src/emu/cpu/arm7]arm7core.c

src/emu/cpu/arm7/arm7core.c
r10140r10141
343343    UINT32 t  = (insn & INSN_OP2_SHIFT_TYPE) >> INSN_OP2_SHIFT_TYPE_SHIFT;
344344
345345    if ((insn & INSN_OP2_RM) == 0xf) {
346        rm += 8;
346        // "If a register is used to specify the shift amount the PC will be 12 bytes ahead." (instead of 8)
347        rm += t & 1 ? 12 : 8;
347348    }
348349
349350    /* All shift types ending in 1 are Rk, not #k */

Previous 15994 Revisions Next


© 1998-2018 The MESS Team