ldr.isa (8302:9f23d01421de) ldr.isa (8303:5a95f1d2494e)
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

--- 92 unchanged lines hidden (view full) ---

101 offset -= 8
102 self.codeBlobs["ea_code"] = "EA = Base + %d;" % offset
103
104 wbDiff = -8
105 if self.add:
106 wbDiff = 8
107 accCode = '''
108 CPSR cpsr = Cpsr;
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

--- 92 unchanged lines hidden (view full) ---

101 offset -= 8
102 self.codeBlobs["ea_code"] = "EA = Base + %d;" % offset
103
104 wbDiff = -8
105 if self.add:
106 wbDiff = 8
107 accCode = '''
108 CPSR cpsr = Cpsr;
109 URc = cpsr | CondCodesF | CondCodesGE;
109 cpsr.nz = CondCodesNZ;
110 cpsr.c = CondCodesC;
111 cpsr.v = CondCodesV;
112 cpsr.ge = CondCodesGE;
113 URc = cpsr;
110 URa = cSwap<uint32_t>(Mem.ud, cpsr.e);
111 URb = cSwap<uint32_t>(Mem.ud >> 32, cpsr.e);
112 '''
113 self.codeBlobs["memacc_code"] = accCode
114
115 wbDecl = None
116 pcDecl = "MicroUopSetPCCPSR(machInst, INTREG_UREG0, INTREG_UREG1, INTREG_UREG2);"
117

--- 14 unchanged lines hidden (view full) ---

132 if self.add and self.post and self.writeback and not self.sign and \
133 not self.user and self.size == 4:
134 self.rasPop = True
135
136 class LoadRegInst(LoadInst):
137 def __init__(self, *args, **kargs):
138 super(LoadRegInst, self).__init__(*args, **kargs)
139 self.offset = self.op + " shift_rm_imm(Index, shiftAmt," + \
114 URa = cSwap<uint32_t>(Mem.ud, cpsr.e);
115 URb = cSwap<uint32_t>(Mem.ud >> 32, cpsr.e);
116 '''
117 self.codeBlobs["memacc_code"] = accCode
118
119 wbDecl = None
120 pcDecl = "MicroUopSetPCCPSR(machInst, INTREG_UREG0, INTREG_UREG1, INTREG_UREG2);"
121

--- 14 unchanged lines hidden (view full) ---

136 if self.add and self.post and self.writeback and not self.sign and \
137 not self.user and self.size == 4:
138 self.rasPop = True
139
140 class LoadRegInst(LoadInst):
141 def __init__(self, *args, **kargs):
142 super(LoadRegInst, self).__init__(*args, **kargs)
143 self.offset = self.op + " shift_rm_imm(Index, shiftAmt," + \
140 " shiftType, CondCodesF<29:>)"
144 " shiftType, CondCodesC)"
141 if self.add:
142 self.wbDecl = '''
143 MicroAddUop(machInst, base, base, wbIndexReg, shiftAmt, shiftType);
144 '''
145 else:
146 self.wbDecl = '''
147 MicroSubUop(machInst, base, base, wbIndexReg, shiftAmt, shiftType);
148 '''

--- 218 unchanged lines hidden ---
145 if self.add:
146 self.wbDecl = '''
147 MicroAddUop(machInst, base, base, wbIndexReg, shiftAmt, shiftType);
148 '''
149 else:
150 self.wbDecl = '''
151 MicroSubUop(machInst, base, base, wbIndexReg, shiftAmt, shiftType);
152 '''

--- 218 unchanged lines hidden ---