macroop.isa (4567:5c7b9832235d) | macroop.isa (4587:2c9a2534a489) |
---|---|
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: --- 175 unchanged lines hidden (view full) --- 184 return MacroConstructor.subst(iop); 185}}; 186 187output header {{ 188 struct EmulEnv 189 { 190 X86ISA::RegIndex reg; 191 X86ISA::RegIndex regm; | 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: --- 175 unchanged lines hidden (view full) --- 184 return MacroConstructor.subst(iop); 185}}; 186 187output header {{ 188 struct EmulEnv 189 { 190 X86ISA::RegIndex reg; 191 X86ISA::RegIndex regm; |
192 uint64_t immediate; 193 uint64_t displacement; 194 int addressSize; | 192 uint8_t scale; 193 X86ISA::RegIndex index; 194 X86ISA::RegIndex base; |
195 int dataSize; | 195 int dataSize; |
196 int addressSize; 197 int stackSize; |
|
196 197 EmulEnv(X86ISA::RegIndex _reg, X86ISA::RegIndex _regm, | 198 199 EmulEnv(X86ISA::RegIndex _reg, X86ISA::RegIndex _regm, |
198 uint64_t _immediate, uint64_t _displacement, 199 int _addressSize, int _dataSize) : | 200 int _dataSize, int _addressSize, int _stackSize) : |
200 reg(_reg), regm(_regm), | 201 reg(_reg), regm(_regm), |
201 immediate(_immediate), displacement(_displacement), 202 addressSize(_addressSize), dataSize(_dataSize) | 202 dataSize(_dataSize), addressSize(_addressSize), 203 stackSize(_stackSize) |
203 {;} 204 }; 205}}; 206 207let {{ 208 class EmulEnv(object): 209 def __init__(self): 210 self.reg = "0" 211 self.regUsed = False 212 self.regm = "0" 213 self.regmUsed = False | 204 {;} 205 }; 206}}; 207 208let {{ 209 class EmulEnv(object): 210 def __init__(self): 211 self.reg = "0" 212 self.regUsed = False 213 self.regm = "0" 214 self.regmUsed = False |
214 self.immediate = "IMMEDIATE" 215 self.displacement = "DISPLACEMENT" | |
216 self.addressSize = "ADDRSIZE" 217 self.dataSize = "OPSIZE" | 215 self.addressSize = "ADDRSIZE" 216 self.dataSize = "OPSIZE" |
217 self.stackSize = "STACKSIZE" |
|
218 def getAllocator(self): 219 return '''EmulEnv(%(reg)s, 220 %(regm)s, | 218 def getAllocator(self): 219 return '''EmulEnv(%(reg)s, 220 %(regm)s, |
221 %(immediate)s, 222 %(displacement)s, | 221 %(dataSize)s, |
223 %(addressSize)s, | 222 %(addressSize)s, |
224 %(dataSize)s)''' % \ | 223 %(stackSize)s)''' % \ |
225 self.__dict__ 226 def addReg(self, reg): 227 if not self.regUsed: 228 self.reg = reg 229 self.regUsed = True 230 elif not self.regmUsed: 231 self.regm = reg 232 self.regmUsed = True --- 17 unchanged lines hidden --- | 224 self.__dict__ 225 def addReg(self, reg): 226 if not self.regUsed: 227 self.reg = reg 228 self.regUsed = True 229 elif not self.regmUsed: 230 self.regm = reg 231 self.regmUsed = True --- 17 unchanged lines hidden --- |