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 uint8_t scale; 193 X86ISA::RegIndex index; 194 X86ISA::RegIndex base; |
195 int dataSize; |
196 int addressSize; 197 int stackSize; |
198 199 EmulEnv(X86ISA::RegIndex _reg, X86ISA::RegIndex _regm, |
200 int _dataSize, int _addressSize, int _stackSize) : |
201 reg(_reg), regm(_regm), |
202 dataSize(_dataSize), addressSize(_addressSize), 203 stackSize(_stackSize) |
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 |
215 self.addressSize = "ADDRSIZE" 216 self.dataSize = "OPSIZE" |
217 self.stackSize = "STACKSIZE" |
218 def getAllocator(self): 219 return '''EmulEnv(%(reg)s, 220 %(regm)s, |
221 %(dataSize)s, |
222 %(addressSize)s, |
223 %(stackSize)s)''' % \ |
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 --- |