ARM: Make ldrs into the PC and ldm exception return do interworking branches.

This commit is contained in:
Gabe Black
2010-06-02 12:58:04 -05:00
parent 28227440a7
commit 2419903dc0
2 changed files with 3 additions and 3 deletions

View File

@@ -90,7 +90,7 @@ let {{
eaCode += offset
eaCode += ";"
accCode = "Dest = Mem%s;\n" % buildMemSuffix(sign, size)
accCode = "IWDest = Mem%s;\n" % buildMemSuffix(sign, size)
if writeback:
accCode += "Base = Base %s;\n" % offset
base = buildMemBase("MemoryImm", post, writeback)
@@ -115,7 +115,7 @@ let {{
eaCode += offset
eaCode += ";"
accCode = "Dest = Mem%s;\n" % buildMemSuffix(sign, size)
accCode = "IWDest = Mem%s;\n" % buildMemSuffix(sign, size)
if writeback:
accCode += "Base = Base %s;\n" % offset
base = buildMemBase("MemoryReg", post, writeback)

View File

@@ -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',