Deleted Added
sdiff udiff text old ( 5241:a6602acdd046 ) new ( 5291:5d38610cff05 )
full compact
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:

--- 66 unchanged lines hidden (view full) ---

75 # Add in symbols for the microcode registers
76 for num in range(15):
77 assembler.symbols["t%d" % num] = "NUM_INTREGS+%d" % num
78 for num in range(7):
79 assembler.symbols["ufp%d" % num] = "FLOATREG_MICROFP(%d)" % num
80 # Add in symbols for the segment descriptor registers
81 for letter in ("C", "D", "E", "F", "G", "S"):
82 assembler.symbols["%ss" % letter.lower()] = "SEGMENT_REG_%sS" % letter
83
84 for reg in ("LDTR", "TR", "GDTR", "IDTR"):
85 assembler.symbols[reg.lower()] = "SYS_SEGMENT_REG_%s" % reg
86
87 # Miscellaneous symbols
88 symbols = {
89 "reg" : "env.reg",
90 "xmml" : "FLOATREG_XMM_LOW(env.reg)",
91 "xmmh" : "FLOATREG_XMM_HIGH(env.reg)",
92 "regm" : "env.regm",
93 "xmmlm" : "FLOATREG_XMM_LOW(env.regm)",
94 "xmmhm" : "FLOATREG_XMM_HIGH(env.regm)",

--- 42 unchanged lines hidden (view full) ---

137
138 # Code literal which forces a default 64 bit operand size in 64 bit mode.
139 assembler.symbols["oszIn64Override"] = '''
140 if (machInst.mode.submode == SixtyFourBitMode &&
141 env.dataSize == 4)
142 env.dataSize = 8;
143 '''
144
145 assembler.symbols["oszForPseudoDesc"] = '''
146 if (machInst.mode.submode == SixtyFourBitMode)
147 env.dataSize = 8;
148 else
149 env.dataSize = 4;
150 '''
151
152 def trimImm(width):
153 return "adjustedImm = adjustedImm & mask(%s);" % width
154
155 assembler.symbols["trimImm"] = trimImm
156
157 def labeler(labelStr):
158 return "label_%s" % labelStr
159
160 assembler.symbols["label"] = labeler
161
162 def stack_index(index):
163 return "(NUM_FLOATREGS + (((%s) + 8) %% 8))" % index
164
165 assembler.symbols["st"] = stack_index
166
167 macroopDict = assembler.assemble(microcode)
168}};