base.isa (4539:6eeeea62b7c4) | base.isa (4561:ade4960f0832) |
---|---|
1// -*- mode:c++ -*- 2 3// Copyright (c) 2007 The Hewlett-Packard Development Company 4// All rights reserved. 5// 6// Redistribution and use of this software in source and binary forms, 7// with or without modification, are permitted provided that the 8// following conditions are met: --- 115 unchanged lines hidden (view full) --- 124 return text 125 126 def getAllocator(self, mnemonic, *microFlags): 127 return 'new %s(machInst, %s)' % (self.className, mnemonic, self.microFlagsText(microFlags)) 128}}; 129 130////////////////////////////////////////////////////////////////////////// 131// | 1// -*- mode:c++ -*- 2 3// Copyright (c) 2007 The Hewlett-Packard Development Company 4// All rights reserved. 5// 6// Redistribution and use of this software in source and binary forms, 7// with or without modification, are permitted provided that the 8// following conditions are met: --- 115 unchanged lines hidden (view full) --- 124 return text 125 126 def getAllocator(self, mnemonic, *microFlags): 127 return 'new %s(machInst, %s)' % (self.className, mnemonic, self.microFlagsText(microFlags)) 128}}; 129 130////////////////////////////////////////////////////////////////////////// 131// |
132// LdStOp Microop templates 133// 134////////////////////////////////////////////////////////////////////////// 135 136def template MicroLdStOpDeclare {{ 137 class %(class_name)s : public X86MicroopBase 138 { 139 protected: 140 const uint8_t scale; 141 const RegIndex index; 142 const RegIndex base; 143 const uint64_t disp; 144 const uint8_t segment; 145 const RegIndex data; 146 const uint8_t dataSize; 147 const uint8_t addressSize; 148 void buildMe(); 149 150 public: 151 %(class_name)s(ExtMachInst _machInst, 152 const char * instMnem, 153 bool isMicro, bool isDelayed, bool isFirst, bool isLast, 154 uint8_t _scale, RegIndex _index, RegIndex _base, 155 uint64_t _disp, uint8_t _segment, 156 RegIndex _data, 157 uint8_t _dataSize, uint8_t _addressSize); 158 159 %(class_name)s(ExtMachInst _machInst, 160 const char * instMnem, 161 uint8_t _scale, RegIndex _index, RegIndex _base, 162 uint64_t _disp, uint8_t _segment, 163 RegIndex _data, 164 uint8_t _dataSize, uint8_t _addressSize); 165 166 %(BasicExecDeclare)s 167 }; 168}}; 169 170def template MicroLdStOpConstructor {{ 171 172 inline void %(class_name)s::buildMe() 173 { 174 %(constructor)s; 175 } 176 177 inline %(class_name)s::%(class_name)s( 178 ExtMachInst machInst, const char * instMnem, 179 uint8_t _scale, RegIndex _index, RegIndex _base, 180 uint64_t _disp, uint8_t _segment, 181 RegIndex _data, 182 uint8_t _dataSize, uint8_t _addressSize) : 183 %(base_class)s(machInst, "%(mnemonic)s", instMnem, 184 false, false, false, false, %(op_class)s), 185 scale(_scale), index(_index), base(_base), 186 disp(_disp), segment(_segment), 187 data(_data), 188 dataSize(_dataSize), addressSize(_addressSize) 189 { 190 buildMe(); 191 } 192 193 inline %(class_name)s::%(class_name)s( 194 ExtMachInst machInst, const char * instMnem, 195 bool isMicro, bool isDelayed, bool isFirst, bool isLast, 196 uint8_t _scale, RegIndex _index, RegIndex _base, 197 uint64_t _disp, uint8_t segment, 198 RegIndex data, 199 uint8_t dataSize, uint8_t addressSize) : 200 %(base_class)s(machInst, "%(mnemonic)s", instMnem, 201 isMicro, isDelayed, isFirst, isLast, %(op_class)s), 202 scale(_scale), index(_index), base(_base), 203 disp(_disp), segment(_segment), 204 data(_data), 205 dataSize(_dataSize), addressSize(_addressSize) 206 { 207 buildMe(); 208 } 209}}; 210 211////////////////////////////////////////////////////////////////////////// 212// | |
213// FpOp Microop templates 214// 215////////////////////////////////////////////////////////////////////////// 216 217//TODO Actually write an fp microop base class. | 132// FpOp Microop templates 133// 134////////////////////////////////////////////////////////////////////////// 135 136//TODO Actually write an fp microop base class. |