From 2419903dc0c100b1eb3111a5e0fc9b186c79e6ed Mon Sep 17 00:00:00 2001 From: Gabe Black Date: Wed, 2 Jun 2010 12:58:04 -0500 Subject: ARM: Make ldrs into the PC and ldm exception return do interworking branches. --- src/arch/arm/isa/insts/macromem.isa | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/arch/arm/isa/insts/macromem.isa') diff --git a/src/arch/arm/isa/insts/macromem.isa b/src/arch/arm/isa/insts/macromem.isa index 3a080625f..474e4fab0 100644 --- a/src/arch/arm/isa/insts/macromem.isa +++ b/src/arch/arm/isa/insts/macromem.isa @@ -66,11 +66,11 @@ let {{ ['IsMicroop']) microLdrRetUopCode = ''' - Ra = Mem; uint32_t newCpsr = cpsrWriteByInstr(Cpsr | CondCodes, Spsr, 0xF, true); Cpsr = ~CondCodesMask & newCpsr; CondCodes = CondCodesMask & newCpsr; + IWNPC = Mem | ((Spsr & 0x20) ? 1 : 0); ''' microLdrRetUopIop = InstObjParams('ldr_ret_uop', 'MicroLdrRetUop', 'MicroMemOp', -- cgit v1.2.3