1f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org//===-- AMDGPURegisterInfo.cpp - AMDGPU Register Information -------------===//
2f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org//
3f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org//                     The LLVM Compiler Infrastructure
4f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org//
5f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// This file is distributed under the University of Illinois Open Source
6f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// License. See LICENSE.TXT for details.
7f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org//
8f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org//===----------------------------------------------------------------------===//
9f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org//
10f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// Parent TargetRegisterInfo class common to all hw codegen targets.
11f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org//
12f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org//===----------------------------------------------------------------------===//
13f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
14f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#include "AMDGPURegisterInfo.h"
15f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#include "AMDGPUTargetMachine.h"
16f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
17f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgusing namespace llvm;
18f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
19f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgAMDGPURegisterInfo::AMDGPURegisterInfo(TargetMachine &tm,
20f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    const TargetInstrInfo &tii)
21f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org: AMDGPUGenRegisterInfo(0),
22f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org  TM(tm),
23f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org  TII(tii)
24f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org  { }
25f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
26f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org//===----------------------------------------------------------------------===//
27f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// Function handling callbacks - Functions are a seldom used feature of GPUS, so
28f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// they are not supported at this time.
29f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org//===----------------------------------------------------------------------===//
30f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
31f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgconst uint16_t AMDGPURegisterInfo::CalleeSavedReg = AMDGPU::NoRegister;
32f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
33f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgconst uint16_t* AMDGPURegisterInfo::getCalleeSavedRegs(const MachineFunction *MF)
34f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                                                                         const {
35f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org  return &CalleeSavedReg;
36f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}
37f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
38f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid AMDGPURegisterInfo::eliminateFrameIndex(MachineBasicBlock::iterator MI,
39f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                                             int SPAdj,
40f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                                             RegScavenger *RS) const {
41f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org  assert(!"Subroutines not supported yet");
42f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}
43f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
44f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgunsigned AMDGPURegisterInfo::getFrameRegister(const MachineFunction &MF) const {
45f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org  assert(!"Subroutines not supported yet");
46f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org  return 0;
47f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}
48f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
49f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define GET_REGINFO_TARGET_DESC
50f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#include "AMDGPUGenRegisterInfo.inc"
51