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 ---