specialize.isa (4746:7960a6867f55) specialize.isa (4817:4888643b143c)
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:

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

144 Name += "_R"
145 elif opType.tag == "B":
146 # This refers to registers whose index is encoded as part of the opcode
147 Name += "_R"
148 env.addReg(InstRegIndex)
149 elif opType.tag == "M":
150 # This refers to memory. The macroop constructor sets up modrm
151 # addressing. Non memory modrm settings should cause an error.
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:

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

144 Name += "_R"
145 elif opType.tag == "B":
146 # This refers to registers whose index is encoded as part of the opcode
147 Name += "_R"
148 env.addReg(InstRegIndex)
149 elif opType.tag == "M":
150 # This refers to memory. The macroop constructor sets up modrm
151 # addressing. Non memory modrm settings should cause an error.
152 Name += "_M"
153 env.doModRM = True
152 env.doModRM = True
153 return doRipRelativeDecode(Name, opTypes, env)
154 elif opType.tag == None or opType.size == None:
155 raise Exception, "Problem parsing operand tag: %s" % opType.tag
156 elif opType.tag in ("C", "D", "G", "P", "S", "T", "V"):
157 # Use the "reg" field of the ModRM byte to select the register
158 env.addReg(ModRMRegIndex)
159 Name += "_R"
160 elif opType.tag in ("E", "Q", "W"):
161 # This might refer to memory or to a register. We need to

--- 24 unchanged lines hidden ---
154 elif opType.tag == None or opType.size == None:
155 raise Exception, "Problem parsing operand tag: %s" % opType.tag
156 elif opType.tag in ("C", "D", "G", "P", "S", "T", "V"):
157 # Use the "reg" field of the ModRM byte to select the register
158 env.addReg(ModRMRegIndex)
159 Name += "_R"
160 elif opType.tag in ("E", "Q", "W"):
161 # This might refer to memory or to a register. We need to

--- 24 unchanged lines hidden ---