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"
20 SIRegisterInfo::SIRegisterInfo(AMDGPUTargetMachine
&tm
,
21 const TargetInstrInfo
&tii
)
22 : AMDGPURegisterInfo(tm
, tii
),
27 BitVector
SIRegisterInfo::getReservedRegs(const MachineFunction
&MF
) const
29 BitVector
Reserved(getNumRegs());
33 unsigned SIRegisterInfo::getBinaryCode(unsigned reg
) const
36 case AMDGPU::M0
: return 124;
37 case AMDGPU::SREG_LIT_0
: return 128;
38 default: return getHWRegNum(reg
);
42 const TargetRegisterClass
*
43 SIRegisterInfo::getISARegClass(const TargetRegisterClass
* rc
) const
45 switch (rc
->getID()) {
46 case AMDGPU::GPRF32RegClassID
:
47 return &AMDGPU::VReg_32RegClass
;
52 const TargetRegisterClass
* SIRegisterInfo::getCFGStructurizerRegClass(
57 case MVT::i32
: return &AMDGPU::VReg_32RegClass
;
60 #include "SIRegisterGetHWRegNum.inc"