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 ---