Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(80)

Unified Diff: src/IceRegistersX8632.h

Issue 1419903002: Subzero: Refactor x86 register definitions to use the alias mechanism. (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: Fix assembler unit tests. Fix register names. Code review changes. Rebase Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/IceRegList.h ('k') | src/IceRegistersX8664.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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);
« no previous file with comments | « src/IceRegList.h ('k') | src/IceRegistersX8664.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698