mem64.isa (10184:bbfa3152bdea) | mem64.isa (10196:be0e1724eb39) |
---|---|
1// -*- mode:c++ -*- 2 3// Copyright (c) 2011-2013 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 --- 33 unchanged lines hidden (view full) --- 42 if (baseIsSP && bits(XBase, 3, 0) && 43 SPAlignmentCheckEnabled(xc->tcBase())) { 44 return new SPAlignmentFault(); 45 } 46 ''' 47}}; 48 49def template Load64Execute {{ | 1// -*- mode:c++ -*- 2 3// Copyright (c) 2011-2013 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 --- 33 unchanged lines hidden (view full) --- 42 if (baseIsSP && bits(XBase, 3, 0) && 43 SPAlignmentCheckEnabled(xc->tcBase())) { 44 return new SPAlignmentFault(); 45 } 46 ''' 47}}; 48 49def template Load64Execute {{ |
50 Fault %(class_name)s::execute(%(CPU_exec_context)s *xc, | 50 Fault %(class_name)s::execute(CPU_EXEC_CONTEXT *xc, |
51 Trace::InstRecord *traceData) const 52 { 53 Addr EA; 54 Fault fault = NoFault; 55 56 %(op_decl)s; 57 %(op_rd)s; 58 %(ea_code)s; --- 7 unchanged lines hidden (view full) --- 66 %(op_wb)s; 67 } 68 69 return fault; 70 } 71}}; 72 73def template Store64Execute {{ | 51 Trace::InstRecord *traceData) const 52 { 53 Addr EA; 54 Fault fault = NoFault; 55 56 %(op_decl)s; 57 %(op_rd)s; 58 %(ea_code)s; --- 7 unchanged lines hidden (view full) --- 66 %(op_wb)s; 67 } 68 69 return fault; 70 } 71}}; 72 73def template Store64Execute {{ |
74 Fault %(class_name)s::execute(%(CPU_exec_context)s *xc, | 74 Fault %(class_name)s::execute(CPU_EXEC_CONTEXT *xc, |
75 Trace::InstRecord *traceData) const 76 { 77 Addr EA; 78 Fault fault = NoFault; 79 80 %(op_decl)s; 81 %(op_rd)s; 82 %(ea_code)s; --- 11 unchanged lines hidden (view full) --- 94 %(op_wb)s; 95 } 96 97 return fault; 98 } 99}}; 100 101def template Store64InitiateAcc {{ | 75 Trace::InstRecord *traceData) const 76 { 77 Addr EA; 78 Fault fault = NoFault; 79 80 %(op_decl)s; 81 %(op_rd)s; 82 %(ea_code)s; --- 11 unchanged lines hidden (view full) --- 94 %(op_wb)s; 95 } 96 97 return fault; 98 } 99}}; 100 101def template Store64InitiateAcc {{ |
102 Fault %(class_name)s::initiateAcc(%(CPU_exec_context)s *xc, | 102 Fault %(class_name)s::initiateAcc(CPU_EXEC_CONTEXT *xc, |
103 Trace::InstRecord *traceData) const 104 { 105 Addr EA; 106 Fault fault = NoFault; 107 108 %(op_decl)s; 109 %(op_rd)s; 110 %(ea_code)s; --- 7 unchanged lines hidden (view full) --- 118 NULL); 119 } 120 121 return fault; 122 } 123}}; 124 125def template StoreEx64Execute {{ | 103 Trace::InstRecord *traceData) const 104 { 105 Addr EA; 106 Fault fault = NoFault; 107 108 %(op_decl)s; 109 %(op_rd)s; 110 %(ea_code)s; --- 7 unchanged lines hidden (view full) --- 118 NULL); 119 } 120 121 return fault; 122 } 123}}; 124 125def template StoreEx64Execute {{ |
126 Fault %(class_name)s::execute(%(CPU_exec_context)s *xc, | 126 Fault %(class_name)s::execute(CPU_EXEC_CONTEXT *xc, |
127 Trace::InstRecord *traceData) const 128 { 129 Addr EA; 130 Fault fault = NoFault; 131 132 %(op_decl)s; 133 %(op_rd)s; 134 %(ea_code)s; --- 16 unchanged lines hidden (view full) --- 151 %(op_wb)s; 152 } 153 154 return fault; 155 } 156}}; 157 158def template StoreEx64InitiateAcc {{ | 127 Trace::InstRecord *traceData) const 128 { 129 Addr EA; 130 Fault fault = NoFault; 131 132 %(op_decl)s; 133 %(op_rd)s; 134 %(ea_code)s; --- 16 unchanged lines hidden (view full) --- 151 %(op_wb)s; 152 } 153 154 return fault; 155 } 156}}; 157 158def template StoreEx64InitiateAcc {{ |
159 Fault %(class_name)s::initiateAcc(%(CPU_exec_context)s *xc, | 159 Fault %(class_name)s::initiateAcc(CPU_EXEC_CONTEXT *xc, |
160 Trace::InstRecord *traceData) const 161 { 162 Addr EA; 163 Fault fault = NoFault; 164 165 %(op_decl)s; 166 %(op_rd)s; 167 %(ea_code)s; --- 7 unchanged lines hidden (view full) --- 175 NULL); 176 } 177 178 return fault; 179 } 180}}; 181 182def template Load64InitiateAcc {{ | 160 Trace::InstRecord *traceData) const 161 { 162 Addr EA; 163 Fault fault = NoFault; 164 165 %(op_decl)s; 166 %(op_rd)s; 167 %(ea_code)s; --- 7 unchanged lines hidden (view full) --- 175 NULL); 176 } 177 178 return fault; 179 } 180}}; 181 182def template Load64InitiateAcc {{ |
183 Fault %(class_name)s::initiateAcc(%(CPU_exec_context)s *xc, | 183 Fault %(class_name)s::initiateAcc(CPU_EXEC_CONTEXT *xc, |
184 Trace::InstRecord *traceData) const 185 { 186 Addr EA; 187 Fault fault = NoFault; 188 189 %(op_src_decl)s; 190 %(op_rd)s; 191 %(ea_code)s; 192 193 if (fault == NoFault) { 194 fault = readMemTiming(xc, traceData, EA, Mem, memAccessFlags); 195 } 196 197 return fault; 198 } 199}}; 200 201def template Load64CompleteAcc {{ 202 Fault %(class_name)s::completeAcc(PacketPtr pkt, | 184 Trace::InstRecord *traceData) const 185 { 186 Addr EA; 187 Fault fault = NoFault; 188 189 %(op_src_decl)s; 190 %(op_rd)s; 191 %(ea_code)s; 192 193 if (fault == NoFault) { 194 fault = readMemTiming(xc, traceData, EA, Mem, memAccessFlags); 195 } 196 197 return fault; 198 } 199}}; 200 201def template Load64CompleteAcc {{ 202 Fault %(class_name)s::completeAcc(PacketPtr pkt, |
203 %(CPU_exec_context)s *xc, | 203 CPU_EXEC_CONTEXT *xc, |
204 Trace::InstRecord *traceData) const 205 { 206 Fault fault = NoFault; 207 208 %(op_decl)s; 209 %(op_rd)s; 210 211 // ARM instructions will not have a pkt if the predicate is false --- 8 unchanged lines hidden (view full) --- 220 } 221 222 return fault; 223 } 224}}; 225 226def template Store64CompleteAcc {{ 227 Fault %(class_name)s::completeAcc(PacketPtr pkt, | 204 Trace::InstRecord *traceData) const 205 { 206 Fault fault = NoFault; 207 208 %(op_decl)s; 209 %(op_rd)s; 210 211 // ARM instructions will not have a pkt if the predicate is false --- 8 unchanged lines hidden (view full) --- 220 } 221 222 return fault; 223 } 224}}; 225 226def template Store64CompleteAcc {{ 227 Fault %(class_name)s::completeAcc(PacketPtr pkt, |
228 %(CPU_exec_context)s *xc, | 228 CPU_EXEC_CONTEXT *xc, |
229 Trace::InstRecord *traceData) const 230 { 231 return NoFault; 232 } 233}}; 234 235def template StoreEx64CompleteAcc {{ 236 Fault %(class_name)s::completeAcc(PacketPtr pkt, | 229 Trace::InstRecord *traceData) const 230 { 231 return NoFault; 232 } 233}}; 234 235def template StoreEx64CompleteAcc {{ 236 Fault %(class_name)s::completeAcc(PacketPtr pkt, |
237 %(CPU_exec_context)s *xc, | 237 CPU_EXEC_CONTEXT *xc, |
238 Trace::InstRecord *traceData) const 239 { 240 Fault fault = NoFault; 241 242 %(op_decl)s; 243 %(op_rd)s; 244 245 uint64_t writeResult = pkt->req->getExtraData(); --- 32 unchanged lines hidden (view full) --- 278 (IntRegIndex)_base, _dest, _imm) 279 { 280 %(constructor)s; 281 assert(!%(use_uops)d); 282 } 283}}; 284 285def template DCStore64Execute {{ | 238 Trace::InstRecord *traceData) const 239 { 240 Fault fault = NoFault; 241 242 %(op_decl)s; 243 %(op_rd)s; 244 245 uint64_t writeResult = pkt->req->getExtraData(); --- 32 unchanged lines hidden (view full) --- 278 (IntRegIndex)_base, _dest, _imm) 279 { 280 %(constructor)s; 281 assert(!%(use_uops)d); 282 } 283}}; 284 285def template DCStore64Execute {{ |
286 Fault %(class_name)s::execute(%(CPU_exec_context)s *xc, | 286 Fault %(class_name)s::execute(CPU_EXEC_CONTEXT *xc, |
287 Trace::InstRecord *traceData) const 288 { 289 Addr EA; 290 Fault fault = NoFault; 291 292 %(op_decl)s; 293 %(op_rd)s; 294 %(ea_code)s; --- 11 unchanged lines hidden (view full) --- 306 %(op_wb)s; 307 } 308 309 return fault; 310 } 311}}; 312 313def template DCStore64InitiateAcc {{ | 287 Trace::InstRecord *traceData) const 288 { 289 Addr EA; 290 Fault fault = NoFault; 291 292 %(op_decl)s; 293 %(op_rd)s; 294 %(ea_code)s; --- 11 unchanged lines hidden (view full) --- 306 %(op_wb)s; 307 } 308 309 return fault; 310 } 311}}; 312 313def template DCStore64InitiateAcc {{ |
314 Fault %(class_name)s::initiateAcc(%(CPU_exec_context)s *xc, | 314 Fault %(class_name)s::initiateAcc(CPU_EXEC_CONTEXT *xc, |
315 Trace::InstRecord *traceData) const 316 { 317 Addr EA; 318 Fault fault = NoFault; 319 320 %(op_decl)s; 321 %(op_rd)s; 322 %(ea_code)s; --- 364 unchanged lines hidden --- | 315 Trace::InstRecord *traceData) const 316 { 317 Addr EA; 318 Fault fault = NoFault; 319 320 %(op_decl)s; 321 %(op_rd)s; 322 %(ea_code)s; --- 364 unchanged lines hidden --- |