1 //===-- SIRegisterInfo.cpp - SI Register Information ---------------------===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 // This file contains the SI implementation of the TargetRegisterInfo class.
12 //===----------------------------------------------------------------------===//
15 #include "SIRegisterInfo.h"
16 #include "AMDGPUTargetMachine.h"
17 #include "AMDGPUUtil.h"
21 SIRegisterInfo::SIRegisterInfo(AMDGPUTargetMachine
&tm
,
22 const TargetInstrInfo
&tii
)
23 : AMDGPURegisterInfo(tm
, tii
),
28 BitVector
SIRegisterInfo::getReservedRegs(const MachineFunction
&MF
) const
30 BitVector
Reserved(getNumRegs());
34 unsigned SIRegisterInfo::getBinaryCode(unsigned reg
) const
37 case AMDIL::M0
: return 124;
38 case AMDIL::SREG_LIT_0
: return 128;
39 default: return getHWRegNum(reg
);
43 const TargetRegisterClass
*
44 SIRegisterInfo::getISARegClass(const TargetRegisterClass
* rc
) const
46 switch (rc
->getID()) {
47 case AMDIL::GPRF32RegClassID
:
48 return &AMDIL::VReg_32RegClass
;
49 case AMDIL::GPRV4F32RegClassID
:
50 case AMDIL::GPRV4I32RegClassID
:
51 return &AMDIL::VReg_128RegClass
;
56 const TargetRegisterClass
* SIRegisterInfo::getCFGStructurizerRegClass(
61 case MVT::i32
: return AMDIL::VReg_32RegisterClass
;
64 #include "SIRegisterGetHWRegNum.inc"