branch.isa (12236:126ac9da6050) | branch.isa (12616:4b463b4dc098) |
---|---|
1// -*- mode:c++ -*- 2 3// Copyright (c) 2010, 2014 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 --- 29 unchanged lines hidden (view full) --- 38// Authors: Gabe Black 39 40def template BranchImmDeclare {{ 41class %(class_name)s : public %(base_class)s 42{ 43 public: 44 // Constructor 45 %(class_name)s(ExtMachInst machInst, int32_t _imm); | 1// -*- mode:c++ -*- 2 3// Copyright (c) 2010, 2014 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 --- 29 unchanged lines hidden (view full) --- 38// Authors: Gabe Black 39 40def template BranchImmDeclare {{ 41class %(class_name)s : public %(base_class)s 42{ 43 public: 44 // Constructor 45 %(class_name)s(ExtMachInst machInst, int32_t _imm); |
46 Fault execute(ExecContext *, Trace::InstRecord *) const; | 46 Fault execute(ExecContext *, Trace::InstRecord *) const override; |
47}; 48}}; 49 50def template BranchImmConstructor {{ 51 %(class_name)s::%(class_name)s(ExtMachInst machInst, 52 int32_t _imm) 53 : %(base_class)s("%(mnemonic)s", machInst, %(op_class)s, _imm) 54 { --- 12 unchanged lines hidden (view full) --- 67 68def template BranchImmCondDeclare {{ 69class %(class_name)s : public %(base_class)s 70{ 71 public: 72 // Constructor 73 %(class_name)s(ExtMachInst machInst, int32_t _imm, 74 ConditionCode _condCode); | 47}; 48}}; 49 50def template BranchImmConstructor {{ 51 %(class_name)s::%(class_name)s(ExtMachInst machInst, 52 int32_t _imm) 53 : %(base_class)s("%(mnemonic)s", machInst, %(op_class)s, _imm) 54 { --- 12 unchanged lines hidden (view full) --- 67 68def template BranchImmCondDeclare {{ 69class %(class_name)s : public %(base_class)s 70{ 71 public: 72 // Constructor 73 %(class_name)s(ExtMachInst machInst, int32_t _imm, 74 ConditionCode _condCode); |
75 Fault execute(ExecContext *, Trace::InstRecord *) const; 76 ArmISA::PCState branchTarget(const ArmISA::PCState &branchPC) const; | 75 Fault execute(ExecContext *, Trace::InstRecord *) const override; 76 ArmISA::PCState branchTarget( 77 const ArmISA::PCState &branchPC) const override; |
77 78 /// Explicitly import the otherwise hidden branchTarget 79 using StaticInst::branchTarget; 80}; 81}}; 82 83def template BranchImmCondConstructor {{ 84 %(class_name)s::%(class_name)s(ExtMachInst machInst, --- 15 unchanged lines hidden (view full) --- 100}}; 101 102def template BranchRegDeclare {{ 103class %(class_name)s : public %(base_class)s 104{ 105 public: 106 // Constructor 107 %(class_name)s(ExtMachInst machInst, IntRegIndex _op1); | 78 79 /// Explicitly import the otherwise hidden branchTarget 80 using StaticInst::branchTarget; 81}; 82}}; 83 84def template BranchImmCondConstructor {{ 85 %(class_name)s::%(class_name)s(ExtMachInst machInst, --- 15 unchanged lines hidden (view full) --- 101}}; 102 103def template BranchRegDeclare {{ 104class %(class_name)s : public %(base_class)s 105{ 106 public: 107 // Constructor 108 %(class_name)s(ExtMachInst machInst, IntRegIndex _op1); |
108 Fault execute(ExecContext *, Trace::InstRecord *) const; | 109 Fault execute(ExecContext *, Trace::InstRecord *) const override; |
109}; 110}}; 111 112def template BranchRegConstructor {{ 113 %(class_name)s::%(class_name)s(ExtMachInst machInst, 114 IntRegIndex _op1) 115 : %(base_class)s("%(mnemonic)s", machInst, %(op_class)s, _op1) 116 { --- 13 unchanged lines hidden (view full) --- 130 131def template BranchRegCondDeclare {{ 132class %(class_name)s : public %(base_class)s 133{ 134 public: 135 // Constructor 136 %(class_name)s(ExtMachInst machInst, IntRegIndex _op1, 137 ConditionCode _condCode); | 110}; 111}}; 112 113def template BranchRegConstructor {{ 114 %(class_name)s::%(class_name)s(ExtMachInst machInst, 115 IntRegIndex _op1) 116 : %(base_class)s("%(mnemonic)s", machInst, %(op_class)s, _op1) 117 { --- 13 unchanged lines hidden (view full) --- 131 132def template BranchRegCondDeclare {{ 133class %(class_name)s : public %(base_class)s 134{ 135 public: 136 // Constructor 137 %(class_name)s(ExtMachInst machInst, IntRegIndex _op1, 138 ConditionCode _condCode); |
138 Fault execute(ExecContext *, Trace::InstRecord *) const; | 139 Fault execute(ExecContext *, Trace::InstRecord *) const override; |
139}; 140}}; 141 142def template BranchRegCondConstructor {{ 143 %(class_name)s::%(class_name)s(ExtMachInst machInst, 144 IntRegIndex _op1, 145 ConditionCode _condCode) 146 : %(base_class)s("%(mnemonic)s", machInst, %(op_class)s, --- 15 unchanged lines hidden (view full) --- 162 163def template BranchRegRegDeclare {{ 164class %(class_name)s : public %(base_class)s 165{ 166 public: 167 // Constructor 168 %(class_name)s(ExtMachInst machInst, 169 IntRegIndex _op1, IntRegIndex _op2); | 140}; 141}}; 142 143def template BranchRegCondConstructor {{ 144 %(class_name)s::%(class_name)s(ExtMachInst machInst, 145 IntRegIndex _op1, 146 ConditionCode _condCode) 147 : %(base_class)s("%(mnemonic)s", machInst, %(op_class)s, --- 15 unchanged lines hidden (view full) --- 163 164def template BranchRegRegDeclare {{ 165class %(class_name)s : public %(base_class)s 166{ 167 public: 168 // Constructor 169 %(class_name)s(ExtMachInst machInst, 170 IntRegIndex _op1, IntRegIndex _op2); |
170 Fault execute(ExecContext *, Trace::InstRecord *) const; | 171 Fault execute(ExecContext *, Trace::InstRecord *) const override; |
171}; 172}}; 173 174def template BranchTableDeclare {{ 175class %(class_name)s : public %(base_class)s 176{ 177 public: 178 // Constructor 179 %(class_name)s(ExtMachInst machInst, 180 IntRegIndex _op1, IntRegIndex _op2); | 172}; 173}}; 174 175def template BranchTableDeclare {{ 176class %(class_name)s : public %(base_class)s 177{ 178 public: 179 // Constructor 180 %(class_name)s(ExtMachInst machInst, 181 IntRegIndex _op1, IntRegIndex _op2); |
181 Fault execute(ExecContext *, Trace::InstRecord *) const; 182 Fault initiateAcc(ExecContext *, Trace::InstRecord *) const; 183 Fault completeAcc(PacketPtr, ExecContext *, Trace::InstRecord *) const; | 182 Fault execute(ExecContext *, Trace::InstRecord *) const override; 183 Fault initiateAcc(ExecContext *, Trace::InstRecord *) const override; 184 Fault completeAcc(PacketPtr, ExecContext *, 185 Trace::InstRecord *) const override; |
184}; 185}}; 186 187def template BranchRegRegConstructor {{ 188 %(class_name)s::%(class_name)s(ExtMachInst machInst, 189 IntRegIndex _op1, 190 IntRegIndex _op2) 191 : %(base_class)s("%(mnemonic)s", machInst, %(op_class)s, _op1, _op2) --- 12 unchanged lines hidden (view full) --- 204 205def template BranchImmRegDeclare {{ 206class %(class_name)s : public %(base_class)s 207{ 208 public: 209 // Constructor 210 %(class_name)s(ExtMachInst machInst, 211 int32_t imm, IntRegIndex _op1); | 186}; 187}}; 188 189def template BranchRegRegConstructor {{ 190 %(class_name)s::%(class_name)s(ExtMachInst machInst, 191 IntRegIndex _op1, 192 IntRegIndex _op2) 193 : %(base_class)s("%(mnemonic)s", machInst, %(op_class)s, _op1, _op2) --- 12 unchanged lines hidden (view full) --- 206 207def template BranchImmRegDeclare {{ 208class %(class_name)s : public %(base_class)s 209{ 210 public: 211 // Constructor 212 %(class_name)s(ExtMachInst machInst, 213 int32_t imm, IntRegIndex _op1); |
212 Fault execute(ExecContext *, Trace::InstRecord *) const; 213 ArmISA::PCState branchTarget(const ArmISA::PCState &branchPC) const; | 214 Fault execute(ExecContext *, Trace::InstRecord *) const override; 215 ArmISA::PCState branchTarget( 216 const ArmISA::PCState &branchPC) const override; |
214 215 /// Explicitly import the otherwise hidden branchTarget 216 using StaticInst::branchTarget; 217}; 218}}; 219 220// Only used by CBNZ, CBZ which is conditional based on 221// a register value even though the instruction is always unconditional. --- 27 unchanged lines hidden --- | 217 218 /// Explicitly import the otherwise hidden branchTarget 219 using StaticInst::branchTarget; 220}; 221}}; 222 223// Only used by CBNZ, CBZ which is conditional based on 224// a register value even though the instruction is always unconditional. --- 27 unchanged lines hidden --- |