ldstop.isa (7620:3d8a23caa1ef) ldstop.isa (7626:bdd926760470)
1// Copyright (c) 2007-2008 The Hewlett-Packard Development Company
2// All rights reserved.
3//
4// The license below extends only to copyright in the software and shall
5// not be construed as granting a license to any other intellectual
6// property including but not limited to intellectual property relating
7// to a hardware implementation of the functionality of the software
8// licensed hereunder. You may use the software subject to the license

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

66
67 return fault;
68 }
69}};
70
71def template MicroLeaDeclare {{
72 class %(class_name)s : public %(base_class)s
73 {
1// Copyright (c) 2007-2008 The Hewlett-Packard Development Company
2// All rights reserved.
3//
4// The license below extends only to copyright in the software and shall
5// not be construed as granting a license to any other intellectual
6// property including but not limited to intellectual property relating
7// to a hardware implementation of the functionality of the software
8// licensed hereunder. You may use the software subject to the license

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

66
67 return fault;
68 }
69}};
70
71def template MicroLeaDeclare {{
72 class %(class_name)s : public %(base_class)s
73 {
74 protected:
75 void buildMe();
76
77 public:
78 %(class_name)s(ExtMachInst _machInst,
79 const char * instMnem, uint64_t setFlags,
80 uint8_t _scale, InstRegIndex _index, InstRegIndex _base,
81 uint64_t _disp, InstRegIndex _segment,
82 InstRegIndex _data,
83 uint8_t _dataSize, uint8_t _addressSize,
84 Request::FlagsType _memFlags);
85
74 public:
75 %(class_name)s(ExtMachInst _machInst,
76 const char * instMnem, uint64_t setFlags,
77 uint8_t _scale, InstRegIndex _index, InstRegIndex _base,
78 uint64_t _disp, InstRegIndex _segment,
79 InstRegIndex _data,
80 uint8_t _dataSize, uint8_t _addressSize,
81 Request::FlagsType _memFlags);
82
86 %(class_name)s(ExtMachInst _machInst,
87 const char * instMnem,
88 uint8_t _scale, InstRegIndex _index, InstRegIndex _base,
89 uint64_t _disp, InstRegIndex _segment,
90 InstRegIndex _data,
91 uint8_t _dataSize, uint8_t _addressSize,
92 Request::FlagsType _memFlags);
93
94 %(BasicExecDeclare)s
95 };
96}};
97
98// Load templates
99
100def template MicroLoadExecute {{
101 Fault %(class_name)s::execute(%(CPU_exec_context)s *xc,

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

241//This declares the completeAcc function in memory operations
242def template CompleteAccDeclare {{
243 Fault completeAcc(PacketPtr, %(CPU_exec_context)s *, Trace::InstRecord *) const;
244}};
245
246def template MicroLdStOpDeclare {{
247 class %(class_name)s : public %(base_class)s
248 {
83 %(BasicExecDeclare)s
84 };
85}};
86
87// Load templates
88
89def template MicroLoadExecute {{
90 Fault %(class_name)s::execute(%(CPU_exec_context)s *xc,

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

230//This declares the completeAcc function in memory operations
231def template CompleteAccDeclare {{
232 Fault completeAcc(PacketPtr, %(CPU_exec_context)s *, Trace::InstRecord *) const;
233}};
234
235def template MicroLdStOpDeclare {{
236 class %(class_name)s : public %(base_class)s
237 {
249 protected:
250 void buildMe();
251
252 public:
253 %(class_name)s(ExtMachInst _machInst,
254 const char * instMnem, uint64_t setFlags,
255 uint8_t _scale, InstRegIndex _index, InstRegIndex _base,
256 uint64_t _disp, InstRegIndex _segment,
257 InstRegIndex _data,
258 uint8_t _dataSize, uint8_t _addressSize,
259 Request::FlagsType _memFlags);
260
238 public:
239 %(class_name)s(ExtMachInst _machInst,
240 const char * instMnem, uint64_t setFlags,
241 uint8_t _scale, InstRegIndex _index, InstRegIndex _base,
242 uint64_t _disp, InstRegIndex _segment,
243 InstRegIndex _data,
244 uint8_t _dataSize, uint8_t _addressSize,
245 Request::FlagsType _memFlags);
246
261 %(class_name)s(ExtMachInst _machInst,
262 const char * instMnem,
263 uint8_t _scale, InstRegIndex _index, InstRegIndex _base,
264 uint64_t _disp, InstRegIndex _segment,
265 InstRegIndex _data,
266 uint8_t _dataSize, uint8_t _addressSize,
267 Request::FlagsType _memFlags);
268
269 %(BasicExecDeclare)s
270
271 %(InitiateAccDeclare)s
272
273 %(CompleteAccDeclare)s
274 };
275}};
276
277def template MicroLdStOpConstructor {{
247 %(BasicExecDeclare)s
248
249 %(InitiateAccDeclare)s
250
251 %(CompleteAccDeclare)s
252 };
253}};
254
255def template MicroLdStOpConstructor {{
278
279 inline void %(class_name)s::buildMe()
280 {
281 %(constructor)s;
282 }
283
284 inline %(class_name)s::%(class_name)s(
256 inline %(class_name)s::%(class_name)s(
285 ExtMachInst machInst, const char * instMnem,
286 uint8_t _scale, InstRegIndex _index, InstRegIndex _base,
287 uint64_t _disp, InstRegIndex _segment,
288 InstRegIndex _data,
289 uint8_t _dataSize, uint8_t _addressSize,
290 Request::FlagsType _memFlags) :
291 %(base_class)s(machInst, "%(mnemonic)s", instMnem, 0,
292 _scale, _index, _base,
293 _disp, _segment, _data,
294 _dataSize, _addressSize, _memFlags, %(op_class)s)
295 {
296 buildMe();
297 }
298
299 inline %(class_name)s::%(class_name)s(
300 ExtMachInst machInst, const char * instMnem, uint64_t setFlags,
301 uint8_t _scale, InstRegIndex _index, InstRegIndex _base,
302 uint64_t _disp, InstRegIndex _segment,
303 InstRegIndex _data,
304 uint8_t _dataSize, uint8_t _addressSize,
305 Request::FlagsType _memFlags) :
306 %(base_class)s(machInst, "%(mnemonic)s", instMnem, setFlags,
307 _scale, _index, _base,
308 _disp, _segment, _data,
309 _dataSize, _addressSize, _memFlags, %(op_class)s)
310 {
257 ExtMachInst machInst, const char * instMnem, uint64_t setFlags,
258 uint8_t _scale, InstRegIndex _index, InstRegIndex _base,
259 uint64_t _disp, InstRegIndex _segment,
260 InstRegIndex _data,
261 uint8_t _dataSize, uint8_t _addressSize,
262 Request::FlagsType _memFlags) :
263 %(base_class)s(machInst, "%(mnemonic)s", instMnem, setFlags,
264 _scale, _index, _base,
265 _disp, _segment, _data,
266 _dataSize, _addressSize, _memFlags, %(op_class)s)
267 {
311 buildMe();
268 %(constructor)s;
312 }
313}};
314
315let {{
316 class LdStOp(X86Microop):
317 def __init__(self, data, segment, addr, disp,
318 dataSize, addressSize, baseFlags, atCPL0, prefetch):
319 self.data = data

--- 172 unchanged lines hidden ---
269 }
270}};
271
272let {{
273 class LdStOp(X86Microop):
274 def __init__(self, data, segment, addr, disp,
275 dataSize, addressSize, baseFlags, atCPL0, prefetch):
276 self.data = data

--- 172 unchanged lines hidden ---