1/* 2 * Copyright (c) 2007 The Hewlett-Packard Development Company 3 * All rights reserved. 4 * 5 * Redistribution and use of this software in source and binary forms, 6 * with or without modification, are permitted provided that the 7 * following conditions are met: 8 * --- 155 unchanged lines hidden (view full) --- 164 //Immediate fields 165 uint64_t immediate; 166 uint64_t displacement; 167 168 //The effective operand size. 169 uint8_t opSize; 170 //The effective address size. 171 uint8_t addrSize; |
172 //The effective stack size. 173 uint8_t stackSize; |
174 175 //Mode information 176 OperatingMode mode; 177 }; 178 179 inline static std::ostream & 180 operator << (std::ostream & os, const ExtMachInst & emi) 181 { --- 8 unchanged lines hidden (view full) --- 190 (uint8_t)emi.modRM, (uint8_t)emi.sib, 191 emi.immediate, emi.displacement); 192 return os; 193 } 194 195 inline static bool 196 operator == (const ExtMachInst &emi1, const ExtMachInst &emi2) 197 { |
198 if(emi1.legacy != emi2.legacy) 199 return false; 200 if(emi1.rex != emi2.rex) 201 return false; 202 if(emi1.opcode.num != emi2.opcode.num) 203 return false; 204 if(emi1.opcode.op != emi2.opcode.op) 205 return false; --- 4 unchanged lines hidden (view full) --- 210 if(emi1.modRM != emi2.modRM) 211 return false; 212 if(emi1.sib != emi2.sib) 213 return false; 214 if(emi1.immediate != emi2.immediate) 215 return false; 216 if(emi1.displacement != emi2.displacement) 217 return false; |
218 if(emi1.mode != emi2.mode) 219 return false; 220 if(emi1.opSize != emi2.opSize) 221 return false; 222 if(emi1.addrSize != emi2.addrSize) 223 return false; 224 if(emi1.stackSize != emi2.stackSize) 225 return false; |
226 return true; 227 } 228 229 typedef uint64_t IntReg; 230 //XXX Should this be a 128 bit structure for XMM memory ops? 231 typedef uint64_t LargestRead; 232 typedef uint64_t MiscReg; 233 --- 26 unchanged lines hidden --- |