Home | History | Annotate | Download | only in src
      1 //===- subzero/src/IceTargetLoweringX86RegClass.h - x86 reg class -*- C++ -*-=//
      2 //
      3 //                        The Subzero Code Generator
      4 //
      5 // This file is distributed under the University of Illinois Open Source
      6 // License. See LICENSE.TXT for details.
      7 //
      8 //===----------------------------------------------------------------------===//
      9 ///
     10 /// \file
     11 /// \brief Declares the X86 register class extensions.
     12 ///
     13 //===----------------------------------------------------------------------===//
     14 
     15 #ifndef SUBZERO_SRC_ICETARGETLOWERINGX86REGCLASS_H
     16 #define SUBZERO_SRC_ICETARGETLOWERINGX86REGCLASS_H
     17 
     18 #include "IceOperand.h" // RC_Target
     19 
     20 namespace Ice {
     21 namespace X86 {
     22 
     23 // Extend enum RegClass with x86-specific register classes.
     24 enum RegClassX86 : uint8_t {
     25   RCX86_Is64To8 = RC_Target, // 64-bit GPR trivially truncable to 8-bit
     26   RCX86_Is32To8,             // 32-bit GPR trivially truncable to 8-bit
     27   RCX86_Is16To8,             // 16-bit GPR trivially truncable to 8-bit
     28   RCX86_IsTrunc8Rcvr,        // 8-bit GPR that can receive a trunc operation
     29   RCX86_IsAhRcvr,            // 8-bit GPR that can be a mov dest from %ah
     30   RCX86_NUM
     31 };
     32 
     33 } // end of namespace X86
     34 } // end of namespace Ice
     35 
     36 #endif // SUBZERO_SRC_ICETARGETLOWERINGX86REGCLASS_H
     37