Make helper functions/classes/globals static. NFC.
[oota-llvm.git] / lib / Target / R600 / AMDGPURegisterInfo.cpp
index 7878d6000d7ccbaec3ff64ad3c99565f24ae0945..57b054bc2a610e421dad287e6bc715cc9a0a5911 100644 (file)
 
 using namespace llvm;
 
-AMDGPURegisterInfo::AMDGPURegisterInfo(TargetMachine &tm,
-    const TargetInstrInfo &tii)
+AMDGPURegisterInfo::AMDGPURegisterInfo(const AMDGPUSubtarget &st)
 : AMDGPUGenRegisterInfo(0),
-  TM(tm),
-  TII(tii)
+  ST(st)
   { }
 
 //===----------------------------------------------------------------------===//
@@ -29,10 +27,10 @@ AMDGPURegisterInfo::AMDGPURegisterInfo(TargetMachine &tm,
 // they are not supported at this time.
 //===----------------------------------------------------------------------===//
 
-const uint16_t AMDGPURegisterInfo::CalleeSavedReg = AMDGPU::NoRegister;
+const MCPhysReg AMDGPURegisterInfo::CalleeSavedReg = AMDGPU::NoRegister;
 
-const uint16_t* AMDGPURegisterInfo::getCalleeSavedRegs(const MachineFunction *MF)
-                                                                         const {
+const MCPhysReg*
+AMDGPURegisterInfo::getCalleeSavedRegs(const MachineFunction *MF) const {
   return &CalleeSavedReg;
 }
 
@@ -40,35 +38,28 @@ void AMDGPURegisterInfo::eliminateFrameIndex(MachineBasicBlock::iterator MI,
                                              int SPAdj,
                                              unsigned FIOperandNum,
                                              RegScavenger *RS) const {
-  assert(!"Subroutines not supported yet");
+  llvm_unreachable("Subroutines not supported yet");
 }
 
 unsigned AMDGPURegisterInfo::getFrameRegister(const MachineFunction &MF) const {
-  assert(!"Subroutines not supported yet");
-  return 0;
+  return AMDGPU::NoRegister;
+}
+
+unsigned AMDGPURegisterInfo::getSubRegFromChannel(unsigned Channel) const {
+  static const unsigned SubRegs[] = {
+    AMDGPU::sub0, AMDGPU::sub1, AMDGPU::sub2, AMDGPU::sub3, AMDGPU::sub4,
+    AMDGPU::sub5, AMDGPU::sub6, AMDGPU::sub7, AMDGPU::sub8, AMDGPU::sub9,
+    AMDGPU::sub10, AMDGPU::sub11, AMDGPU::sub12, AMDGPU::sub13, AMDGPU::sub14,
+    AMDGPU::sub15
+  };
+
+  assert(Channel < array_lengthof(SubRegs));
+  return SubRegs[Channel];
 }
 
 unsigned AMDGPURegisterInfo::getIndirectSubReg(unsigned IndirectIndex) const {
 
-  switch(IndirectIndex) {
-  case 0: return AMDGPU::indirect_0;
-  case 1: return AMDGPU::indirect_1;
-  case 2: return AMDGPU::indirect_2;
-  case 3: return AMDGPU::indirect_3;
-  case 4: return AMDGPU::indirect_4;
-  case 5: return AMDGPU::indirect_5;
-  case 6: return AMDGPU::indirect_6;
-  case 7: return AMDGPU::indirect_7;
-  case 8: return AMDGPU::indirect_8;
-  case 9: return AMDGPU::indirect_9;
-  case 10: return AMDGPU::indirect_10;
-  case 11: return AMDGPU::indirect_11;
-  case 12: return AMDGPU::indirect_12;
-  case 13: return AMDGPU::indirect_13;
-  case 14: return AMDGPU::indirect_14;
-  case 15: return AMDGPU::indirect_15;
-  default: llvm_unreachable("indirect index out of range");
-  }
+  return getSubRegFromChannel(IndirectIndex);
 }
 
 #define GET_REGINFO_TARGET_DESC