macromem.hh (7639:8c09b7ff5b57) macromem.hh (7646:a444dbee8c07)
1/*
2 * Copyright (c) 2010 ARM Limited
3 * All rights reserved
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software

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

123 MicroNeonMixLaneOp(const char *mnem, ExtMachInst machInst,
124 OpClass __opClass, RegIndex _dest, RegIndex _op1,
125 uint32_t _step, unsigned _lane)
126 : MicroNeonMixOp(mnem, machInst, __opClass, _dest, _op1, _step),
127 lane(_lane)
128 {
129 }
130};
1/*
2 * Copyright (c) 2010 ARM Limited
3 * All rights reserved
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software

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

123 MicroNeonMixLaneOp(const char *mnem, ExtMachInst machInst,
124 OpClass __opClass, RegIndex _dest, RegIndex _op1,
125 uint32_t _step, unsigned _lane)
126 : MicroNeonMixOp(mnem, machInst, __opClass, _dest, _op1, _step),
127 lane(_lane)
128 {
129 }
130};
131/**
132 * Microops of the form IntRegA = IntRegB
133 */
134class MicroIntMov : public MicroOp
135{
136 protected:
137 RegIndex ura, urb;
131
138
139 MicroIntMov(const char *mnem, ExtMachInst machInst, OpClass __opClass,
140 RegIndex _ura, RegIndex _urb)
141 : MicroOp(mnem, machInst, __opClass),
142 ura(_ura), urb(_urb)
143 {
144 }
145
146 std::string generateDisassembly(Addr pc, const SymbolTable *symtab) const;
147};
148
132/**
133 * Microops of the form IntRegA = IntRegB op Imm
134 */
135class MicroIntImmOp : public MicroOp
136{
137 protected:
138 RegIndex ura, urb;
149/**
150 * Microops of the form IntRegA = IntRegB op Imm
151 */
152class MicroIntImmOp : public MicroOp
153{
154 protected:
155 RegIndex ura, urb;
139 uint8_t imm;
156 uint32_t imm;
140
141 MicroIntImmOp(const char *mnem, ExtMachInst machInst, OpClass __opClass,
157
158 MicroIntImmOp(const char *mnem, ExtMachInst machInst, OpClass __opClass,
142 RegIndex _ura, RegIndex _urb, uint8_t _imm)
159 RegIndex _ura, RegIndex _urb, uint32_t _imm)
143 : MicroOp(mnem, machInst, __opClass),
144 ura(_ura), urb(_urb), imm(_imm)
145 {
146 }
147
148 std::string generateDisassembly(Addr pc, const SymbolTable *symtab) const;
149};
150

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

162 ura(_ura), urb(_urb), urc(_urc)
163 {
164 }
165
166 std::string generateDisassembly(Addr pc, const SymbolTable *symtab) const;
167};
168
169/**
160 : MicroOp(mnem, machInst, __opClass),
161 ura(_ura), urb(_urb), imm(_imm)
162 {
163 }
164
165 std::string generateDisassembly(Addr pc, const SymbolTable *symtab) const;
166};
167

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

179 ura(_ura), urb(_urb), urc(_urc)
180 {
181 }
182
183 std::string generateDisassembly(Addr pc, const SymbolTable *symtab) const;
184};
185
186/**
187 * Microops of the form IntRegA = IntRegB op shifted IntRegC
188 */
189class MicroIntRegOp : public MicroOp
190{
191 protected:
192 RegIndex ura, urb, urc;
193 int32_t shiftAmt;
194 ArmShiftType shiftType;
195
196 MicroIntRegOp(const char *mnem, ExtMachInst machInst, OpClass __opClass,
197 RegIndex _ura, RegIndex _urb, RegIndex _urc,
198 int32_t _shiftAmt, ArmShiftType _shiftType)
199 : MicroOp(mnem, machInst, __opClass),
200 ura(_ura), urb(_urb), urc(_urc),
201 shiftAmt(_shiftAmt), shiftType(_shiftType)
202 {
203 }
204};
205
206/**
170 * Memory microops which use IntReg + Imm addressing
171 */
172class MicroMemOp : public MicroIntImmOp
173{
174 protected:
175 bool up;
176 unsigned memAccessFlags;
177

--- 75 unchanged lines hidden ---
207 * Memory microops which use IntReg + Imm addressing
208 */
209class MicroMemOp : public MicroIntImmOp
210{
211 protected:
212 bool up;
213 unsigned memAccessFlags;
214

--- 75 unchanged lines hidden ---