neon64.isa (12236:126ac9da6050) | neon64.isa (12616:4b463b4dc098) |
---|---|
1// -*- mode: c++ -*- 2 3// Copyright (c) 2012-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 --- 44 unchanged lines hidden (view full) --- 53 %(class_name)s(ExtMachInst machInst, 54 IntRegIndex _dest, IntRegIndex _op1, IntRegIndex _op2) 55 : %(base_class)s("%(mnemonic)s", machInst, %(op_class)s, 56 _dest, _op1, _op2) 57 { 58 %(constructor)s; 59 } 60 | 1// -*- mode: c++ -*- 2 3// Copyright (c) 2012-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 --- 44 unchanged lines hidden (view full) --- 53 %(class_name)s(ExtMachInst machInst, 54 IntRegIndex _dest, IntRegIndex _op1, IntRegIndex _op2) 55 : %(base_class)s("%(mnemonic)s", machInst, %(op_class)s, 56 _dest, _op1, _op2) 57 { 58 %(constructor)s; 59 } 60 |
61 Fault execute(ExecContext *, Trace::InstRecord *) const; | 61 Fault execute(ExecContext *, Trace::InstRecord *) const override; |
62}; 63}}; 64 65def template NeonX2RegImmOpDeclare {{ 66template <class _Element> 67class %(class_name)s : public %(base_class)s 68{ 69 protected: --- 4 unchanged lines hidden (view full) --- 74 IntRegIndex _dest, IntRegIndex _op1, IntRegIndex _op2, 75 uint64_t _imm) 76 : %(base_class)s("%(mnemonic)s", machInst, %(op_class)s, 77 _dest, _op1, _op2, _imm) 78 { 79 %(constructor)s; 80 } 81 | 62}; 63}}; 64 65def template NeonX2RegImmOpDeclare {{ 66template <class _Element> 67class %(class_name)s : public %(base_class)s 68{ 69 protected: --- 4 unchanged lines hidden (view full) --- 74 IntRegIndex _dest, IntRegIndex _op1, IntRegIndex _op2, 75 uint64_t _imm) 76 : %(base_class)s("%(mnemonic)s", machInst, %(op_class)s, 77 _dest, _op1, _op2, _imm) 78 { 79 %(constructor)s; 80 } 81 |
82 Fault execute(ExecContext *, Trace::InstRecord *) const; | 82 Fault execute(ExecContext *, Trace::InstRecord *) const override; |
83}; 84}}; 85 86def template NeonX1RegOpDeclare {{ 87template <class _Element> 88class %(class_name)s : public %(base_class)s 89{ 90 protected: 91 typedef _Element Element; 92 public: 93 // Constructor 94 %(class_name)s(ExtMachInst machInst, 95 IntRegIndex _dest, IntRegIndex _op1) 96 : %(base_class)s("%(mnemonic)s", machInst, %(op_class)s, 97 _dest, _op1) 98 { 99 %(constructor)s; 100 } 101 | 83}; 84}}; 85 86def template NeonX1RegOpDeclare {{ 87template <class _Element> 88class %(class_name)s : public %(base_class)s 89{ 90 protected: 91 typedef _Element Element; 92 public: 93 // Constructor 94 %(class_name)s(ExtMachInst machInst, 95 IntRegIndex _dest, IntRegIndex _op1) 96 : %(base_class)s("%(mnemonic)s", machInst, %(op_class)s, 97 _dest, _op1) 98 { 99 %(constructor)s; 100 } 101 |
102 Fault execute(ExecContext *, Trace::InstRecord *) const; | 102 Fault execute(ExecContext *, Trace::InstRecord *) const override; |
103}; 104}}; 105 106def template NeonX1RegImmOpDeclare {{ 107template <class _Element> 108class %(class_name)s : public %(base_class)s 109{ 110 protected: 111 typedef _Element Element; 112 public: 113 // Constructor 114 %(class_name)s(ExtMachInst machInst, 115 IntRegIndex _dest, IntRegIndex _op1, uint64_t _imm) 116 : %(base_class)s("%(mnemonic)s", machInst, %(op_class)s, 117 _dest, _op1, _imm) 118 { 119 %(constructor)s; 120 } 121 | 103}; 104}}; 105 106def template NeonX1RegImmOpDeclare {{ 107template <class _Element> 108class %(class_name)s : public %(base_class)s 109{ 110 protected: 111 typedef _Element Element; 112 public: 113 // Constructor 114 %(class_name)s(ExtMachInst machInst, 115 IntRegIndex _dest, IntRegIndex _op1, uint64_t _imm) 116 : %(base_class)s("%(mnemonic)s", machInst, %(op_class)s, 117 _dest, _op1, _imm) 118 { 119 %(constructor)s; 120 } 121 |
122 Fault execute(ExecContext *, Trace::InstRecord *) const; | 122 Fault execute(ExecContext *, Trace::InstRecord *) const override; |
123}; 124}}; 125 126def template NeonX1Reg2ImmOpDeclare {{ 127template <class _Element> 128class %(class_name)s : public %(base_class)s 129{ 130 protected: --- 4 unchanged lines hidden (view full) --- 135 IntRegIndex _dest, IntRegIndex _op1, uint64_t _imm1, 136 uint64_t _imm2) 137 : %(base_class)s("%(mnemonic)s", machInst, %(op_class)s, 138 _dest, _op1, _imm1, _imm2) 139 { 140 %(constructor)s; 141 } 142 | 123}; 124}}; 125 126def template NeonX1Reg2ImmOpDeclare {{ 127template <class _Element> 128class %(class_name)s : public %(base_class)s 129{ 130 protected: --- 4 unchanged lines hidden (view full) --- 135 IntRegIndex _dest, IntRegIndex _op1, uint64_t _imm1, 136 uint64_t _imm2) 137 : %(base_class)s("%(mnemonic)s", machInst, %(op_class)s, 138 _dest, _op1, _imm1, _imm2) 139 { 140 %(constructor)s; 141 } 142 |
143 Fault execute(ExecContext *, Trace::InstRecord *) const; | 143 Fault execute(ExecContext *, Trace::InstRecord *) const override; |
144}; 145}}; 146 147def template NeonX1RegImmOnlyOpDeclare {{ 148template <class _Element> 149class %(class_name)s : public %(base_class)s 150{ 151 protected: 152 typedef _Element Element; 153 public: 154 // Constructor 155 %(class_name)s(ExtMachInst machInst, 156 IntRegIndex _dest, uint64_t _imm) 157 : %(base_class)s("%(mnemonic)s", machInst, %(op_class)s, 158 _dest, _imm) 159 { 160 %(constructor)s; 161 } 162 | 144}; 145}}; 146 147def template NeonX1RegImmOnlyOpDeclare {{ 148template <class _Element> 149class %(class_name)s : public %(base_class)s 150{ 151 protected: 152 typedef _Element Element; 153 public: 154 // Constructor 155 %(class_name)s(ExtMachInst machInst, 156 IntRegIndex _dest, uint64_t _imm) 157 : %(base_class)s("%(mnemonic)s", machInst, %(op_class)s, 158 _dest, _imm) 159 { 160 %(constructor)s; 161 } 162 |
163 Fault execute(ExecContext *, Trace::InstRecord *) const; | 163 Fault execute(ExecContext *, Trace::InstRecord *) const override; |
164}; 165}}; 166 167def template NeonXExecDeclare {{ 168 template 169 Fault %(class_name)s<%(targs)s>::execute( 170 ExecContext *, Trace::InstRecord *) const; 171}}; --- 90 unchanged lines hidden (view full) --- 262 : %(base_class)s("%(mnemonic)s", machInst, %(op_class)s, _dest, 263 _ura, _imm), 264 baseIsSP(_baseIsSP), accSize(_accSize), eSize(_eSize) 265 { 266 memAccessFlags |= extraMemFlags; 267 %(constructor)s; 268 } 269 | 164}; 165}}; 166 167def template NeonXExecDeclare {{ 168 template 169 Fault %(class_name)s<%(targs)s>::execute( 170 ExecContext *, Trace::InstRecord *) const; 171}}; --- 90 unchanged lines hidden (view full) --- 262 : %(base_class)s("%(mnemonic)s", machInst, %(op_class)s, _dest, 263 _ura, _imm), 264 baseIsSP(_baseIsSP), accSize(_accSize), eSize(_eSize) 265 { 266 memAccessFlags |= extraMemFlags; 267 %(constructor)s; 268 } 269 |
270 Fault execute(ExecContext *, Trace::InstRecord *) const; 271 Fault initiateAcc(ExecContext *, Trace::InstRecord *) const; 272 Fault completeAcc(PacketPtr, ExecContext *, Trace::InstRecord *) const; | 270 Fault execute(ExecContext *, Trace::InstRecord *) const override; 271 Fault initiateAcc(ExecContext *, Trace::InstRecord *) const override; 272 Fault completeAcc(PacketPtr, ExecContext *, 273 Trace::InstRecord *) const override; |
273 }; 274}}; 275 276def template NeonLoadExecute64 {{ 277 Fault %(class_name)s::execute( 278 ExecContext *xc, Trace::InstRecord *traceData) const 279 { 280 Addr EA; --- 191 unchanged lines hidden (view full) --- 472 uint8_t _step) : 473 %(base_class)s("%(mnemonic)s", machInst, %(op_class)s, 474 _dest, _op1, _eSize, _dataSize, _numStructElems, 475 _numRegs, _step) 476 { 477 %(constructor)s; 478 } 479 | 274 }; 275}}; 276 277def template NeonLoadExecute64 {{ 278 Fault %(class_name)s::execute( 279 ExecContext *xc, Trace::InstRecord *traceData) const 280 { 281 Addr EA; --- 191 unchanged lines hidden (view full) --- 473 uint8_t _step) : 474 %(base_class)s("%(mnemonic)s", machInst, %(op_class)s, 475 _dest, _op1, _eSize, _dataSize, _numStructElems, 476 _numRegs, _step) 477 { 478 %(constructor)s; 479 } 480 |
480 Fault execute(ExecContext *, Trace::InstRecord *) const; | 481 Fault execute(ExecContext *, Trace::InstRecord *) const override; |
481 }; 482}}; 483 484def template MicroNeonMixLaneDeclare64 {{ 485 class %(class_name)s : public %(base_class)s 486 { 487 public: 488 %(class_name)s(ExtMachInst machInst, RegIndex _dest, RegIndex _op1, 489 uint8_t _eSize, uint8_t _dataSize, 490 uint8_t _numStructElems, uint8_t _lane, uint8_t _step, 491 bool _replicate = false) : 492 %(base_class)s("%(mnemonic)s", machInst, %(op_class)s, 493 _dest, _op1, _eSize, _dataSize, _numStructElems, 494 _lane, _step, _replicate) 495 { 496 %(constructor)s; 497 } 498 | 482 }; 483}}; 484 485def template MicroNeonMixLaneDeclare64 {{ 486 class %(class_name)s : public %(base_class)s 487 { 488 public: 489 %(class_name)s(ExtMachInst machInst, RegIndex _dest, RegIndex _op1, 490 uint8_t _eSize, uint8_t _dataSize, 491 uint8_t _numStructElems, uint8_t _lane, uint8_t _step, 492 bool _replicate = false) : 493 %(base_class)s("%(mnemonic)s", machInst, %(op_class)s, 494 _dest, _op1, _eSize, _dataSize, _numStructElems, 495 _lane, _step, _replicate) 496 { 497 %(constructor)s; 498 } 499 |
499 Fault execute(ExecContext *, Trace::InstRecord *) const; | 500 Fault execute(ExecContext *, Trace::InstRecord *) const override; |
500 }; 501}}; 502 503def template MicroNeonMixExecute64 {{ 504 Fault %(class_name)s::execute(ExecContext *xc, 505 Trace::InstRecord *traceData) const 506 { 507 Fault fault = NoFault; --- 14 unchanged lines hidden --- | 501 }; 502}}; 503 504def template MicroNeonMixExecute64 {{ 505 Fault %(class_name)s::execute(ExecContext *xc, 506 Trace::InstRecord *traceData) const 507 { 508 Fault fault = NoFault; --- 14 unchanged lines hidden --- |