| //===- subzero/src/IceTargetLoweringX86RegClass.h - x86 reg class -*- C++ -*-=// | |
| // | |
| // The Subzero Code Generator | |
| // | |
| // This file is distributed under the University of Illinois Open Source | |
| // License. See LICENSE.TXT for details. | |
| // | |
| //===----------------------------------------------------------------------===// | |
| /// | |
| /// \file | |
| /// \brief Declares the X86 register class extensions. | |
| /// | |
| //===----------------------------------------------------------------------===// | |
| #ifndef SUBZERO_SRC_ICETARGETLOWERINGX86REGCLASS_H | |
| #define SUBZERO_SRC_ICETARGETLOWERINGX86REGCLASS_H | |
| #include "IceOperand.h" // RC_Target | |
| namespace Ice { | |
| namespace X86 { | |
| // Extend enum RegClass with x86-specific register classes. | |
| enum RegClassX86 : uint8_t { | |
| RCX86_Is64To8 = RC_Target, // 64-bit GPR trivially truncable to 8-bit | |
| RCX86_Is32To8, // 32-bit GPR trivially truncable to 8-bit | |
| RCX86_Is16To8, // 16-bit GPR trivially truncable to 8-bit | |
| RCX86_IsTrunc8Rcvr, // 8-bit GPR that can receive a trunc operation | |
| RCX86_IsAhRcvr, // 8-bit GPR that can be a mov dest from %ah | |
| RCX86_NUM | |
| }; | |
| } // end of namespace X86 | |
| } // end of namespace Ice | |
| #endif // SUBZERO_SRC_ICETARGETLOWERINGX86REGCLASS_H |