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