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, 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 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, |
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 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) : |
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 { 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 |
333 def getAllocator(self, microFlags): 334 allocator = '''new %(class_name)s(machInst, macrocodeBlock, |
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 --- |