ldstop.isa (7087:fb8d5786ff30) ldstop.isa (7620:3d8a23caa1ef)
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

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

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

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

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,
80 bool isMicro, bool isDelayed, bool isFirst, bool isLast,
79 const char * instMnem, uint64_t setFlags,
81 uint8_t _scale, InstRegIndex _index, InstRegIndex _base,
82 uint64_t _disp, InstRegIndex _segment,
83 InstRegIndex _data,
84 uint8_t _dataSize, uint8_t _addressSize,
85 Request::FlagsType _memFlags);
86
87 %(class_name)s(ExtMachInst _machInst,
88 const char * instMnem,

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

247def template MicroLdStOpDeclare {{
248 class %(class_name)s : public %(base_class)s
249 {
250 protected:
251 void buildMe();
252
253 public:
254 %(class_name)s(ExtMachInst _machInst,
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
86 %(class_name)s(ExtMachInst _machInst,
87 const char * instMnem,

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

246def template MicroLdStOpDeclare {{
247 class %(class_name)s : public %(base_class)s
248 {
249 protected:
250 void buildMe();
251
252 public:
253 %(class_name)s(ExtMachInst _machInst,
255 const char * instMnem,
256 bool isMicro, bool isDelayed, bool isFirst, bool isLast,
254 const char * instMnem, uint64_t setFlags,
257 uint8_t _scale, InstRegIndex _index, InstRegIndex _base,
258 uint64_t _disp, InstRegIndex _segment,
259 InstRegIndex _data,
260 uint8_t _dataSize, uint8_t _addressSize,
261 Request::FlagsType _memFlags);
262
263 %(class_name)s(ExtMachInst _machInst,
264 const char * instMnem,

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

285
286 inline %(class_name)s::%(class_name)s(
287 ExtMachInst machInst, const char * instMnem,
288 uint8_t _scale, InstRegIndex _index, InstRegIndex _base,
289 uint64_t _disp, InstRegIndex _segment,
290 InstRegIndex _data,
291 uint8_t _dataSize, uint8_t _addressSize,
292 Request::FlagsType _memFlags) :
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
261 %(class_name)s(ExtMachInst _machInst,
262 const char * instMnem,

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

283
284 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) :
293 %(base_class)s(machInst, "%(mnemonic)s", instMnem,
294 false, false, false, false,
291 %(base_class)s(machInst, "%(mnemonic)s", instMnem, 0,
295 _scale, _index, _base,
296 _disp, _segment, _data,
297 _dataSize, _addressSize, _memFlags, %(op_class)s)
298 {
299 buildMe();
300 }
301
302 inline %(class_name)s::%(class_name)s(
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(
303 ExtMachInst machInst, const char * instMnem,
304 bool isMicro, bool isDelayed, bool isFirst, bool isLast,
300 ExtMachInst machInst, const char * instMnem, uint64_t setFlags,
305 uint8_t _scale, InstRegIndex _index, InstRegIndex _base,
306 uint64_t _disp, InstRegIndex _segment,
307 InstRegIndex _data,
308 uint8_t _dataSize, uint8_t _addressSize,
309 Request::FlagsType _memFlags) :
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) :
310 %(base_class)s(machInst, "%(mnemonic)s", instMnem,
311 isMicro, isDelayed, isFirst, isLast,
306 %(base_class)s(machInst, "%(mnemonic)s", instMnem, setFlags,
312 _scale, _index, _base,
313 _disp, _segment, _data,
314 _dataSize, _addressSize, _memFlags, %(op_class)s)
315 {
316 buildMe();
317 }
318}};
319

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

330 self.memFlags = baseFlags
331 if atCPL0:
332 self.memFlags += " | (CPL0FlagBit << FlagShift)"
333 if prefetch:
334 self.memFlags += " | Request::PREFETCH"
335 self.memFlags += " | (machInst.legacy.addr ? " + \
336 "(AddrSizeFlagBit << FlagShift) : 0)"
337
307 _scale, _index, _base,
308 _disp, _segment, _data,
309 _dataSize, _addressSize, _memFlags, %(op_class)s)
310 {
311 buildMe();
312 }
313}};
314

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

325 self.memFlags = baseFlags
326 if atCPL0:
327 self.memFlags += " | (CPL0FlagBit << FlagShift)"
328 if prefetch:
329 self.memFlags += " | Request::PREFETCH"
330 self.memFlags += " | (machInst.legacy.addr ? " + \
331 "(AddrSizeFlagBit << FlagShift) : 0)"
332
338 def getAllocator(self, *microFlags):
339 allocator = '''new %(class_name)s(machInst, macrocodeBlock
333 def getAllocator(self, microFlags):
334 allocator = '''new %(class_name)s(machInst, macrocodeBlock,
340 %(flags)s, %(scale)s, %(index)s, %(base)s,
341 %(disp)s, %(segment)s, %(data)s,
342 %(dataSize)s, %(addressSize)s, %(memFlags)s)''' % {
343 "class_name" : self.className,
344 "flags" : self.microFlagsText(microFlags),
345 "scale" : self.scale, "index" : self.index,
346 "base" : self.base,
347 "disp" : self.disp,

--- 149 unchanged lines hidden ---
335 %(flags)s, %(scale)s, %(index)s, %(base)s,
336 %(disp)s, %(segment)s, %(data)s,
337 %(dataSize)s, %(addressSize)s, %(memFlags)s)''' % {
338 "class_name" : self.className,
339 "flags" : self.microFlagsText(microFlags),
340 "scale" : self.scale, "index" : self.index,
341 "base" : self.base,
342 "disp" : self.disp,

--- 149 unchanged lines hidden ---