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 --- |