Index: src/IceRegistersX8632.h |
diff --git a/src/IceRegistersX8632.h b/src/IceRegistersX8632.h |
index 73492ef52bda07de53df87c5ead823b9c8088850..3fa07f8431e9f94e3be44033c2ba077c7204a793 100644 |
--- a/src/IceRegistersX8632.h |
+++ b/src/IceRegistersX8632.h |
@@ -26,22 +26,21 @@ public: |
/// An enum of every register. The enum value may not match the encoding used |
/// to binary encode register operands in instructions. |
enum AllRegisters { |
-#define X(val, encode, name, name16, name8, scratch, preserved, stackptr, \ |
- frameptr, isI8, isInt, isFP) \ |
+#define X(val, encode, name, base, scratch, preserved, stackptr, frameptr, \ |
+ isGPR, is64, is32, is16, is8, isXmm, is64To8, is32To8, is16To8, \ |
+ isTrunc8Rcvr, isAhRcvr, aliases) \ |
val, |
REGX8632_TABLE |
#undef X |
- Reg_NUM, |
-#define X(val, init) val init, |
- REGX8632_TABLE_BOUNDS |
-#undef X |
+ Reg_NUM |
}; |
/// An enum of GPR Registers. The enum value does match the encoding used to |
/// binary encode register operands in instructions. |
enum GPRRegister { |
-#define X(val, encode, name, name16, name8, scratch, preserved, stackptr, \ |
- frameptr, isI8, isInt, isFP) \ |
+#define X(val, encode, name, base, scratch, preserved, stackptr, frameptr, \ |
+ isGPR, is64, is32, is16, is8, isXmm, is64To8, is32To8, is16To8, \ |
+ isTrunc8Rcvr, isAhRcvr, aliases) \ |
Encoded_##val = encode, |
REGX8632_GPR_TABLE |
#undef X |
@@ -51,8 +50,9 @@ public: |
/// An enum of XMM Registers. The enum value does match the encoding used to |
/// binary encode register operands in instructions. |
enum XmmRegister { |
-#define X(val, encode, name, name16, name8, scratch, preserved, stackptr, \ |
- frameptr, isI8, isInt, isFP) \ |
+#define X(val, encode, name, base, scratch, preserved, stackptr, frameptr, \ |
+ isGPR, is64, is32, is16, is8, isXmm, is64To8, is32To8, is16To8, \ |
+ isTrunc8Rcvr, isAhRcvr, aliases) \ |
Encoded_##val = encode, |
REGX8632_XMM_TABLE |
#undef X |
@@ -62,7 +62,10 @@ public: |
/// An enum of Byte Registers. The enum value does match the encoding used to |
/// binary encode register operands in instructions. |
enum ByteRegister { |
-#define X(val, encode) Encoded_##val encode, |
+#define X(val, encode, name, base, scratch, preserved, stackptr, frameptr, \ |
+ isGPR, is64, is32, is16, is8, isXmm, is64To8, is32To8, is16To8, \ |
+ isTrunc8Rcvr, isAhRcvr, aliases) \ |
+ Encoded_8_##val = encode, |
REGX8632_BYTEREG_TABLE |
#undef X |
Encoded_Not_ByteReg = -1 |
@@ -71,37 +74,12 @@ public: |
/// An enum of X87 Stack Registers. The enum value does match the encoding |
/// used to binary encode register operands in instructions. |
enum X87STRegister { |
-#define X(val, encode, name) Encoded_##val encode, |
+#define X(val, encode, name) Encoded_##val = encode, |
X87ST_REGX8632_TABLE |
#undef X |
Encoded_Not_X87STReg = -1 |
}; |
- static inline GPRRegister getEncodedGPR(int32_t RegNum) { |
- assert(Reg_GPR_First <= RegNum); |
- assert(RegNum <= Reg_GPR_Last); |
- return GPRRegister(RegNum - Reg_GPR_First); |
- } |
- |
- static inline XmmRegister getEncodedXmm(int32_t RegNum) { |
- assert(Reg_XMM_First <= RegNum); |
- assert(RegNum <= Reg_XMM_Last); |
- return XmmRegister(RegNum - Reg_XMM_First); |
- } |
- |
- static inline ByteRegister getEncodedByteReg(int32_t RegNum) { |
- assert(Reg_GPR_First <= RegNum); |
- assert(RegNum <= Reg_ebx); |
- return ByteRegister(RegNum - Reg_GPR_First); |
- } |
- |
- static inline GPRRegister getEncodedByteRegOrGPR(Type Ty, int32_t RegNum) { |
- if (isByteSizedType(Ty)) |
- return GPRRegister(getEncodedByteReg(RegNum)); |
- else |
- return getEncodedGPR(RegNum); |
- } |
- |
static inline X87STRegister getEncodedSTReg(int32_t RegNum) { |
assert(Encoded_X87ST_First <= RegNum); |
assert(RegNum <= Encoded_X87ST_Last); |