ldr.isa (7797:998b217dcae7) | ldr.isa (7858:ee6641d7c713) |
---|---|
1// -*- mode:c++ -*- 2 3// Copyright (c) 2010 ARM Limited 4// All rights reserved 5// 6// The license below extends only to copyright in the software and shall 7// not be construed as granting a license to any other intellectual 8// property including but not limited to intellectual property relating --- 93 unchanged lines hidden (view full) --- 102 wbDiff = -8 103 if self.add: 104 wbDiff = 8 105 accCode = ''' 106 CPSR cpsr = Cpsr; 107 SCTLR sctlr = Sctlr; 108 // Use the version of NPC that gets set before NextThumb 109 pNPC = cSwap<uint32_t>(Mem.ud, cpsr.e); | 1// -*- mode:c++ -*- 2 3// Copyright (c) 2010 ARM Limited 4// All rights reserved 5// 6// The license below extends only to copyright in the software and shall 7// not be construed as granting a license to any other intellectual 8// property including but not limited to intellectual property relating --- 93 unchanged lines hidden (view full) --- 102 wbDiff = -8 103 if self.add: 104 wbDiff = 8 105 accCode = ''' 106 CPSR cpsr = Cpsr; 107 SCTLR sctlr = Sctlr; 108 // Use the version of NPC that gets set before NextThumb 109 pNPC = cSwap<uint32_t>(Mem.ud, cpsr.e); |
110 uint32_t tempSpsr = cSwap<uint32_t>(Mem.ud >> 32, cpsr.e); |
|
110 uint32_t newCpsr = | 111 uint32_t newCpsr = |
111 cpsrWriteByInstr(cpsr | CondCodes, 112 cSwap<uint32_t>(Mem.ud >> 32, cpsr.e), | 112 cpsrWriteByInstr(cpsr | CondCodes, tempSpsr, |
113 0xF, true, sctlr.nmfi); 114 Cpsr = ~CondCodesMask & newCpsr; 115 NextThumb = ((CPSR)newCpsr).t; 116 NextJazelle = ((CPSR)newCpsr).j; | 113 0xF, true, sctlr.nmfi); 114 Cpsr = ~CondCodesMask & newCpsr; 115 NextThumb = ((CPSR)newCpsr).t; 116 NextJazelle = ((CPSR)newCpsr).j; |
117 ForcedItState = ((((CPSR)tempSpsr).it2 << 2) & 0xFC) 118 | (((CPSR)tempSpsr).it1 & 0x3); |
|
117 CondCodes = CondCodesMask & newCpsr; 118 ''' 119 self.codeBlobs["memacc_code"] = accCode 120 121 wbDecl = None 122 if self.writeback: 123 wbDecl = "MicroAddiUop(machInst, base, base, %d);" % wbDiff 124 self.emitHelper('RfeOp', wbDecl, ["IsSerializeAfter", "IsNonSpeculative"]) --- 242 unchanged lines hidden --- | 119 CondCodes = CondCodesMask & newCpsr; 120 ''' 121 self.codeBlobs["memacc_code"] = accCode 122 123 wbDecl = None 124 if self.writeback: 125 wbDecl = "MicroAddiUop(machInst, base, base, %d);" % wbDiff 126 self.emitHelper('RfeOp', wbDecl, ["IsSerializeAfter", "IsNonSpeculative"]) --- 242 unchanged lines hidden --- |