1f903da7335433ae243cf7ff59662be1a03ee9a14Tom Stellard//===-- AMDGPURegisterInfo.cpp - AMDGPU Register Information -------------===//
2a75c6163e605f35b14f26930dd9227e4f337ec9eTom Stellard//
3a75c6163e605f35b14f26930dd9227e4f337ec9eTom Stellard//                     The LLVM Compiler Infrastructure
4a75c6163e605f35b14f26930dd9227e4f337ec9eTom Stellard//
5a75c6163e605f35b14f26930dd9227e4f337ec9eTom Stellard// This file is distributed under the University of Illinois Open Source
6a75c6163e605f35b14f26930dd9227e4f337ec9eTom Stellard// License. See LICENSE.TXT for details.
7a75c6163e605f35b14f26930dd9227e4f337ec9eTom Stellard//
8a75c6163e605f35b14f26930dd9227e4f337ec9eTom Stellard//===----------------------------------------------------------------------===//
9a75c6163e605f35b14f26930dd9227e4f337ec9eTom Stellard//
10f903da7335433ae243cf7ff59662be1a03ee9a14Tom Stellard// Parent TargetRegisterInfo class common to all hw codegen targets.
11a75c6163e605f35b14f26930dd9227e4f337ec9eTom Stellard//
12a75c6163e605f35b14f26930dd9227e4f337ec9eTom Stellard//===----------------------------------------------------------------------===//
13a75c6163e605f35b14f26930dd9227e4f337ec9eTom Stellard
14a75c6163e605f35b14f26930dd9227e4f337ec9eTom Stellard#include "AMDGPURegisterInfo.h"
15a75c6163e605f35b14f26930dd9227e4f337ec9eTom Stellard#include "AMDGPUTargetMachine.h"
16a75c6163e605f35b14f26930dd9227e4f337ec9eTom Stellard
17a75c6163e605f35b14f26930dd9227e4f337ec9eTom Stellardusing namespace llvm;
18a75c6163e605f35b14f26930dd9227e4f337ec9eTom Stellard
193a0187b1b53eca3143286a5ae7917cd71117b902Tom StellardAMDGPURegisterInfo::AMDGPURegisterInfo(TargetMachine &tm,
20a75c6163e605f35b14f26930dd9227e4f337ec9eTom Stellard    const TargetInstrInfo &tii)
213a0187b1b53eca3143286a5ae7917cd71117b902Tom Stellard: AMDGPUGenRegisterInfo(0),
22a75c6163e605f35b14f26930dd9227e4f337ec9eTom Stellard  TM(tm),
23a75c6163e605f35b14f26930dd9227e4f337ec9eTom Stellard  TII(tii)
24a75c6163e605f35b14f26930dd9227e4f337ec9eTom Stellard  { }
253a0187b1b53eca3143286a5ae7917cd71117b902Tom Stellard
263a0187b1b53eca3143286a5ae7917cd71117b902Tom Stellard//===----------------------------------------------------------------------===//
273a0187b1b53eca3143286a5ae7917cd71117b902Tom Stellard// Function handling callbacks - Functions are a seldom used feature of GPUS, so
283a0187b1b53eca3143286a5ae7917cd71117b902Tom Stellard// they are not supported at this time.
293a0187b1b53eca3143286a5ae7917cd71117b902Tom Stellard//===----------------------------------------------------------------------===//
303a0187b1b53eca3143286a5ae7917cd71117b902Tom Stellard
313a0187b1b53eca3143286a5ae7917cd71117b902Tom Stellardconst uint16_t AMDGPURegisterInfo::CalleeSavedReg = AMDGPU::NoRegister;
323a0187b1b53eca3143286a5ae7917cd71117b902Tom Stellard
333a0187b1b53eca3143286a5ae7917cd71117b902Tom Stellardconst uint16_t* AMDGPURegisterInfo::getCalleeSavedRegs(const MachineFunction *MF)
343a0187b1b53eca3143286a5ae7917cd71117b902Tom Stellard                                                                         const {
353a0187b1b53eca3143286a5ae7917cd71117b902Tom Stellard  return &CalleeSavedReg;
363a0187b1b53eca3143286a5ae7917cd71117b902Tom Stellard}
373a0187b1b53eca3143286a5ae7917cd71117b902Tom Stellard
383a0187b1b53eca3143286a5ae7917cd71117b902Tom Stellardvoid AMDGPURegisterInfo::eliminateFrameIndex(MachineBasicBlock::iterator MI,
393a0187b1b53eca3143286a5ae7917cd71117b902Tom Stellard                                             int SPAdj,
403a0187b1b53eca3143286a5ae7917cd71117b902Tom Stellard                                             RegScavenger *RS) const {
413a0187b1b53eca3143286a5ae7917cd71117b902Tom Stellard  assert(!"Subroutines not supported yet");
423a0187b1b53eca3143286a5ae7917cd71117b902Tom Stellard}
433a0187b1b53eca3143286a5ae7917cd71117b902Tom Stellard
443a0187b1b53eca3143286a5ae7917cd71117b902Tom Stellardunsigned AMDGPURegisterInfo::getFrameRegister(const MachineFunction &MF) const {
453a0187b1b53eca3143286a5ae7917cd71117b902Tom Stellard  assert(!"Subroutines not supported yet");
463a0187b1b53eca3143286a5ae7917cd71117b902Tom Stellard  return 0;
473a0187b1b53eca3143286a5ae7917cd71117b902Tom Stellard}
483a0187b1b53eca3143286a5ae7917cd71117b902Tom Stellard
493a0187b1b53eca3143286a5ae7917cd71117b902Tom Stellard#define GET_REGINFO_TARGET_DESC
503a0187b1b53eca3143286a5ae7917cd71117b902Tom Stellard#include "AMDGPUGenRegisterInfo.inc"
51