diff options
Diffstat (limited to 'src/arch/arm/isa/insts/ldr.isa')
-rw-r--r-- | src/arch/arm/isa/insts/ldr.isa | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/src/arch/arm/isa/insts/ldr.isa b/src/arch/arm/isa/insts/ldr.isa index b091da856..21601f7d3 100644 --- a/src/arch/arm/isa/insts/ldr.isa +++ b/src/arch/arm/isa/insts/ldr.isa @@ -105,16 +105,15 @@ let {{ accCode = ''' CPSR cpsr = Cpsr; SCTLR sctlr = Sctlr; - ArmISA::PCState pc = PCS; - pc.instNPC(cSwap<uint32_t>(Mem.ud, cpsr.e)); + // Use the version of NPC that gets set before NextThumb + pNPC = cSwap<uint32_t>(Mem.ud, cpsr.e); uint32_t newCpsr = cpsrWriteByInstr(cpsr | CondCodes, cSwap<uint32_t>(Mem.ud >> 32, cpsr.e), 0xF, true, sctlr.nmfi); Cpsr = ~CondCodesMask & newCpsr; - pc.nextThumb(((CPSR)newCpsr).t); - pc.nextJazelle(((CPSR)newCpsr).j); - PCS = pc; + NextThumb = ((CPSR)newCpsr).t; + NextJazelle = ((CPSR)newCpsr).j; CondCodes = CondCodesMask & newCpsr; ''' self.codeBlobs["memacc_code"] = accCode |