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