| Index: src/IceRegistersX8632.h
|
| diff --git a/src/IceRegistersX8632.h b/src/IceRegistersX8632.h
|
| index 851908c3af7525b13764bcbdc845436cd761d4b7..86ace82533abdd46c013f7c8c214f584862084b5 100644
|
| --- a/src/IceRegistersX8632.h
|
| +++ b/src/IceRegistersX8632.h
|
| @@ -36,7 +36,7 @@ enum AllRegisters {
|
| #undef X
|
| };
|
|
|
| -// An enum of GPR Registers. The enum value does match encoding used
|
| +// 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, \
|
| @@ -47,7 +47,7 @@ enum GPRRegister {
|
| Encoded_Not_GPR = -1
|
| };
|
|
|
| -// An enum of XMM Registers. The enum value does match encoding used
|
| +// 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, \
|
| @@ -58,7 +58,7 @@ enum XmmRegister {
|
| Encoded_Not_Xmm = -1
|
| };
|
|
|
| -// An enum of Byte Registers. The enum value does match encoding used
|
| +// 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,
|
| @@ -67,6 +67,15 @@ enum ByteRegister {
|
| Encoded_Not_ByteReg = -1
|
| };
|
|
|
| +// 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,
|
| + X87ST_REGX8632_TABLE
|
| +#undef X
|
| + Encoded_Not_X87STReg = -1
|
| +};
|
| +
|
| static inline GPRRegister getEncodedGPR(int32_t RegNum) {
|
| assert(Reg_GPR_First <= RegNum && RegNum <= Reg_GPR_Last);
|
| return GPRRegister(RegNum - Reg_GPR_First);
|
| @@ -91,6 +100,11 @@ static inline GPRRegister getEncodedByteRegOrGPR(Type Ty, int32_t RegNum) {
|
| return getEncodedGPR(RegNum);
|
| }
|
|
|
| +static inline X87STRegister getEncodedSTReg(int32_t RegNum) {
|
| + assert(Encoded_X87ST_First <= RegNum && RegNum <= Encoded_X87ST_Last);
|
| + return X87STRegister(RegNum);
|
| +}
|
| +
|
| } // end of namespace RegX8632
|
|
|
| } // end of namespace Ice
|
|
|