Deleted Added
sdiff udiff text old ( 12234:78ece221f9f5 ) new ( 12236:126ac9da6050 )
full compact
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 %(BasicExecDeclare)s
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 %(BasicExecDeclare)s
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 %(BasicExecDeclare)s
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 %(BasicExecDeclare)s
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 %(BasicExecDeclare)s
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 %(BasicExecDeclare)s
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 %(BasicExecDeclare)s
271 %(InitiateAccDeclare)s
272 %(CompleteAccDeclare)s
273 };
274}};
275
276def template NeonLoadExecute64 {{
277 Fault %(class_name)s::execute(
278 ExecContext *xc, Trace::InstRecord *traceData) const
279 {
280 Addr EA;

--- 134 unchanged lines hidden (view full) ---

415def template VMemMultDeclare64 {{
416 class %(class_name)s : public %(base_class)s
417 {
418 public:
419 // Constructor
420 %(class_name)s(ExtMachInst machInst, RegIndex rn, RegIndex vd,
421 RegIndex rm, uint8_t eSize, uint8_t dataSize,
422 uint8_t numStructElems, uint8_t numRegs, bool wb);
423 %(BasicExecPanic)s
424 };
425}};
426
427def template VMemSingleDeclare64 {{
428 class %(class_name)s : public %(base_class)s
429 {
430 public:
431 // Constructor
432 %(class_name)s(ExtMachInst machInst, RegIndex rn, RegIndex vd,
433 RegIndex rm, uint8_t eSize, uint8_t dataSize,
434 uint8_t numStructElems, uint8_t index, bool wb,
435 bool replicate = false);
436 %(BasicExecPanic)s
437 };
438}};
439
440def template VMemMultConstructor64 {{
441 %(class_name)s::%(class_name)s(
442 ExtMachInst machInst, RegIndex rn, RegIndex vd, RegIndex rm,
443 uint8_t _eSize, uint8_t _dataSize, uint8_t _numStructElems,
444 uint8_t _numRegs, bool _wb) :

--- 29 unchanged lines hidden (view full) ---

474 uint8_t _step) :
475 %(base_class)s("%(mnemonic)s", machInst, %(op_class)s,
476 _dest, _op1, _eSize, _dataSize, _numStructElems,
477 _numRegs, _step)
478 {
479 %(constructor)s;
480 }
481
482 %(BasicExecDeclare)s
483 };
484}};
485
486def template MicroNeonMixLaneDeclare64 {{
487 class %(class_name)s : public %(base_class)s
488 {
489 public:
490 %(class_name)s(ExtMachInst machInst, RegIndex _dest, RegIndex _op1,
491 uint8_t _eSize, uint8_t _dataSize,
492 uint8_t _numStructElems, uint8_t _lane, uint8_t _step,
493 bool _replicate = false) :
494 %(base_class)s("%(mnemonic)s", machInst, %(op_class)s,
495 _dest, _op1, _eSize, _dataSize, _numStructElems,
496 _lane, _step, _replicate)
497 {
498 %(constructor)s;
499 }
500
501 %(BasicExecDeclare)s
502 };
503}};
504
505def template MicroNeonMixExecute64 {{
506 Fault %(class_name)s::execute(ExecContext *xc,
507 Trace::InstRecord *traceData) const
508 {
509 Fault fault = NoFault;

--- 14 unchanged lines hidden ---