microasm.isa (5149:356e00996637) microasm.isa (5161:e7334f2d7bef)
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:

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

83 # Miscellaneous symbols
84 symbols = {
85 "reg" : "env.reg",
86 "xmml" : "FLOATREG_XMM_LOW(env.reg)",
87 "xmmh" : "FLOATREG_XMM_HIGH(env.reg)",
88 "regm" : "env.regm",
89 "xmmlm" : "FLOATREG_XMM_LOW(env.regm)",
90 "xmmhm" : "FLOATREG_XMM_HIGH(env.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:

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

83 # Miscellaneous symbols
84 symbols = {
85 "reg" : "env.reg",
86 "xmml" : "FLOATREG_XMM_LOW(env.reg)",
87 "xmmh" : "FLOATREG_XMM_HIGH(env.reg)",
88 "regm" : "env.regm",
89 "xmmlm" : "FLOATREG_XMM_LOW(env.regm)",
90 "xmmhm" : "FLOATREG_XMM_HIGH(env.regm)",
91 "imm" : "IMMEDIATE",
92 "disp" : "DISPLACEMENT",
91 "imm" : "adjustedImm",
92 "disp" : "adjustedDisp",
93 "seg" : "env.seg",
94 "scale" : "env.scale",
95 "index" : "env.index",
96 "base" : "env.base",
97 "dsz" : "env.dataSize",
98 "asz" : "env.addressSize",
99 "ssz" : "env.stackSize"
100 }

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

130
131 # Code literal which forces a default 64 bit operand size in 64 bit mode.
132 assembler.symbols["oszIn64Override"] = '''
133 if (machInst.mode.submode == SixtyFourBitMode &&
134 env.dataSize == 4)
135 env.dataSize = 8;
136 '''
137
93 "seg" : "env.seg",
94 "scale" : "env.scale",
95 "index" : "env.index",
96 "base" : "env.base",
97 "dsz" : "env.dataSize",
98 "asz" : "env.addressSize",
99 "ssz" : "env.stackSize"
100 }

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

130
131 # Code literal which forces a default 64 bit operand size in 64 bit mode.
132 assembler.symbols["oszIn64Override"] = '''
133 if (machInst.mode.submode == SixtyFourBitMode &&
134 env.dataSize == 4)
135 env.dataSize = 8;
136 '''
137
138 def trimImm(width):
139 return "adjustedImm = adjustedImm & mask(%s);" % width
140
141 assembler.symbols["trimImm"] = trimImm
142
138 def labeler(labelStr):
139 return "label_%s" % labelStr
140
141 assembler.symbols["label"] = labeler
142
143 def stack_index(index):
144 return "(NUM_FLOATREGS + (((%s) + 8) %% 8))" % index
145
146 assembler.symbols["st"] = stack_index
147
148 macroopDict = assembler.assemble(microcode)
149}};
143 def labeler(labelStr):
144 return "label_%s" % labelStr
145
146 assembler.symbols["label"] = labeler
147
148 def stack_index(index):
149 return "(NUM_FLOATREGS + (((%s) + 8) %% 8))" % index
150
151 assembler.symbols["st"] = stack_index
152
153 macroopDict = assembler.assemble(microcode)
154}};