1// -*- mode:c++ -*- 2 3// Copyright (c) 2010, 2012, 2014, 2016 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 --- 28 unchanged lines hidden (view full) --- 37// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 38// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 39// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 40// 41// Authors: Stephen Hines 42 43 44def template PanicExecute {{ |
45 Fault %(class_name)s::execute(ExecContext *xc, |
46 Trace::InstRecord *traceData) const 47 { 48 panic("Execute function executed when it shouldn't be!\n"); 49 return NoFault; 50 } 51}}; 52 53def template PanicInitiateAcc {{ |
54 Fault %(class_name)s::initiateAcc(ExecContext *xc, |
55 Trace::InstRecord *traceData) const 56 { 57 panic("InitiateAcc function executed when it shouldn't be!\n"); 58 return NoFault; 59 } 60}}; 61 62def template PanicCompleteAcc {{ |
63 Fault %(class_name)s::completeAcc(PacketPtr pkt, ExecContext *xc, |
64 Trace::InstRecord *traceData) const 65 { 66 panic("CompleteAcc function executed when it shouldn't be!\n"); 67 return NoFault; 68 } 69}}; 70 71 72def template SwapExecute {{ |
73 Fault %(class_name)s::execute(ExecContext *xc, |
74 Trace::InstRecord *traceData) const 75 { 76 Addr EA; 77 Fault fault = NoFault; 78 79 %(op_decl)s; 80 uint64_t memData = 0; 81 %(op_rd)s; --- 19 unchanged lines hidden (view full) --- 101 xc->setPredicate(false); 102 } 103 104 return fault; 105 } 106}}; 107 108def template SwapInitiateAcc {{ |
109 Fault %(class_name)s::initiateAcc(ExecContext *xc, |
110 Trace::InstRecord *traceData) const 111 { 112 Addr EA; 113 Fault fault = NoFault; 114 115 %(op_decl)s; 116 uint64_t memData = 0; 117 %(op_rd)s; --- 11 unchanged lines hidden (view full) --- 129 xc->setPredicate(false); 130 } 131 132 return fault; 133 } 134}}; 135 136def template SwapCompleteAcc {{ |
137 Fault %(class_name)s::completeAcc(PacketPtr pkt, ExecContext *xc, |
138 Trace::InstRecord *traceData) const 139 { 140 Fault fault = NoFault; 141 142 %(op_decl)s; 143 %(op_rd)s; 144 145 if (%(predicate_test)s) --- 9 unchanged lines hidden (view full) --- 155 } 156 } 157 158 return fault; 159 } 160}}; 161 162def template LoadExecute {{ |
163 Fault %(class_name)s::execute(ExecContext *xc, |
164 Trace::InstRecord *traceData) const 165 { 166 Addr EA; 167 Fault fault = NoFault; 168 169 %(op_decl)s; 170 %(op_rd)s; 171 %(ea_code)s; --- 14 unchanged lines hidden (view full) --- 186 187 return fault; 188 } 189}}; 190 191def template NeonLoadExecute {{ 192 template <class Element> 193 Fault %(class_name)s<Element>::execute( |
194 ExecContext *xc, Trace::InstRecord *traceData) const |
195 { 196 Addr EA; 197 Fault fault = NoFault; 198 199 %(op_decl)s; 200 %(mem_decl)s; 201 %(op_rd)s; 202 %(ea_code)s; --- 15 unchanged lines hidden (view full) --- 218 xc->setPredicate(false); 219 } 220 221 return fault; 222 } 223}}; 224 225def template StoreExecute {{ |
226 Fault %(class_name)s::execute(ExecContext *xc, |
227 Trace::InstRecord *traceData) const 228 { 229 Addr EA; 230 Fault fault = NoFault; 231 232 %(op_decl)s; 233 %(op_rd)s; 234 %(ea_code)s; --- 18 unchanged lines hidden (view full) --- 253 254 return fault; 255 } 256}}; 257 258def template NeonStoreExecute {{ 259 template <class Element> 260 Fault %(class_name)s<Element>::execute( |
261 ExecContext *xc, Trace::InstRecord *traceData) const |
262 { 263 Addr EA; 264 Fault fault = NoFault; 265 266 %(op_decl)s; 267 %(mem_decl)s; 268 %(op_rd)s; 269 %(ea_code)s; --- 19 unchanged lines hidden (view full) --- 289 xc->setPredicate(false); 290 } 291 292 return fault; 293 } 294}}; 295 296def template StoreExExecute {{ |
297 Fault %(class_name)s::execute(ExecContext *xc, |
298 Trace::InstRecord *traceData) const 299 { 300 Addr EA; 301 Fault fault = NoFault; 302 303 %(op_decl)s; 304 %(op_rd)s; 305 %(ea_code)s; --- 22 unchanged lines hidden (view full) --- 328 xc->setPredicate(false); 329 } 330 331 return fault; 332 } 333}}; 334 335def template StoreExInitiateAcc {{ |
336 Fault %(class_name)s::initiateAcc(ExecContext *xc, |
337 Trace::InstRecord *traceData) const 338 { 339 Addr EA; 340 Fault fault = NoFault; 341 342 %(op_decl)s; 343 %(op_rd)s; 344 %(ea_code)s; --- 12 unchanged lines hidden (view full) --- 357 xc->setPredicate(false); 358 } 359 360 return fault; 361 } 362}}; 363 364def template StoreInitiateAcc {{ |
365 Fault %(class_name)s::initiateAcc(ExecContext *xc, |
366 Trace::InstRecord *traceData) const 367 { 368 Addr EA; 369 Fault fault = NoFault; 370 371 %(op_decl)s; 372 %(op_rd)s; 373 %(ea_code)s; --- 14 unchanged lines hidden (view full) --- 388 389 return fault; 390 } 391}}; 392 393def template NeonStoreInitiateAcc {{ 394 template <class Element> 395 Fault %(class_name)s<Element>::initiateAcc( |
396 ExecContext *xc, Trace::InstRecord *traceData) const |
397 { 398 Addr EA; 399 Fault fault = NoFault; 400 401 %(op_decl)s; 402 %(mem_decl)s; 403 %(op_rd)s; 404 %(ea_code)s; --- 13 unchanged lines hidden (view full) --- 418 xc->setPredicate(false); 419 } 420 421 return fault; 422 } 423}}; 424 425def template LoadInitiateAcc {{ |
426 Fault %(class_name)s::initiateAcc(ExecContext *xc, |
427 Trace::InstRecord *traceData) const 428 { 429 Addr EA; 430 Fault fault = NoFault; 431 432 %(op_src_decl)s; 433 %(op_rd)s; 434 %(ea_code)s; --- 10 unchanged lines hidden (view full) --- 445 446 return fault; 447 } 448}}; 449 450def template NeonLoadInitiateAcc {{ 451 template <class Element> 452 Fault %(class_name)s<Element>::initiateAcc( |
453 ExecContext *xc, Trace::InstRecord *traceData) const |
454 { 455 Addr EA; 456 Fault fault = NoFault; 457 458 %(op_decl)s; 459 %(mem_decl)s; 460 %(op_rd)s; 461 %(ea_code)s; --- 7 unchanged lines hidden (view full) --- 469 xc->setPredicate(false); 470 } 471 472 return fault; 473 } 474}}; 475 476def template LoadCompleteAcc {{ |
477 Fault %(class_name)s::completeAcc(PacketPtr pkt, ExecContext *xc, |
478 Trace::InstRecord *traceData) const 479 { 480 Fault fault = NoFault; 481 482 %(op_decl)s; 483 %(op_rd)s; 484 485 if (%(predicate_test)s) --- 12 unchanged lines hidden (view full) --- 498 499 return fault; 500 } 501}}; 502 503def template NeonLoadCompleteAcc {{ 504 template <class Element> 505 Fault %(class_name)s<Element>::completeAcc( |
506 PacketPtr pkt, ExecContext *xc, |
507 Trace::InstRecord *traceData) const 508 { 509 Fault fault = NoFault; 510 511 %(mem_decl)s; 512 %(op_decl)s; 513 %(op_rd)s; 514 --- 11 unchanged lines hidden (view full) --- 526 } 527 } 528 529 return fault; 530 } 531}}; 532 533def template StoreCompleteAcc {{ |
534 Fault %(class_name)s::completeAcc(PacketPtr pkt, ExecContext *xc, |
535 Trace::InstRecord *traceData) const 536 { 537 return NoFault; 538 } 539}}; 540 541def template NeonStoreCompleteAcc {{ 542 template <class Element> 543 Fault %(class_name)s<Element>::completeAcc( |
544 PacketPtr pkt, ExecContext *xc, Trace::InstRecord *traceData) const |
545 { 546 return NoFault; 547 } 548}}; 549 550def template StoreExCompleteAcc {{ |
551 Fault %(class_name)s::completeAcc(PacketPtr pkt, ExecContext *xc, |
552 Trace::InstRecord *traceData) const 553 { 554 Fault fault = NoFault; 555 556 %(op_decl)s; 557 %(op_rd)s; 558 559 if (%(predicate_test)s) --- 279 unchanged lines hidden (view full) --- 839 virtual void 840 annotateFault(ArmFault *fault) { 841 %(fa_code)s 842 } 843 }; 844}}; 845 846def template InitiateAccDeclare {{ |
847 Fault initiateAcc(ExecContext *, Trace::InstRecord *) const; |
848}}; 849 850def template CompleteAccDeclare {{ |
851 Fault completeAcc(PacketPtr, ExecContext *, Trace::InstRecord *) const; |
852}}; 853 854def template RfeConstructor {{ 855 %(class_name)s::%(class_name)s(ExtMachInst machInst, 856 uint32_t _base, int _mode, bool _wb) 857 : %(base_class)s("%(mnemonic)s", machInst, %(op_class)s, 858 (IntRegIndex)_base, (AddrMode)_mode, _wb) 859 { --- 399 unchanged lines hidden --- |