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