llvm-6502/lib/Target/SystemZ/SystemZRegisterInfo.h
Richard Sandiford 9a1cd05a3d [SystemZ] Update namespace formatting to match current guidelines
No functional change intended.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@203103 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-06 10:38:30 +00:00

67 lines
1.9 KiB
C++

//===-- SystemZRegisterInfo.h - SystemZ register information ----*- C++ -*-===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
#ifndef SystemZREGISTERINFO_H
#define SystemZREGISTERINFO_H
#include "SystemZ.h"
#include "llvm/Target/TargetRegisterInfo.h"
#define GET_REGINFO_HEADER
#include "SystemZGenRegisterInfo.inc"
namespace llvm {
namespace SystemZ {
// Return the subreg to use for referring to the even and odd registers
// in a GR128 pair. Is32Bit says whether we want a GR32 or GR64.
inline unsigned even128(bool Is32bit) {
return Is32bit ? subreg_hl32 : subreg_h64;
}
inline unsigned odd128(bool Is32bit) {
return Is32bit ? subreg_l32 : subreg_l64;
}
} // end namespace SystemZ
class SystemZSubtarget;
class SystemZInstrInfo;
struct SystemZRegisterInfo : public SystemZGenRegisterInfo {
private:
SystemZTargetMachine &TM;
public:
SystemZRegisterInfo(SystemZTargetMachine &tm);
// Override TargetRegisterInfo.h.
virtual bool
requiresRegisterScavenging(const MachineFunction &MF) const override {
return true;
}
virtual bool
requiresFrameIndexScavenging(const MachineFunction &MF) const override {
return true;
}
virtual bool
trackLivenessAfterRegAlloc(const MachineFunction &MF) const override {
return true;
}
virtual const uint16_t *
getCalleeSavedRegs(const MachineFunction *MF = 0) const override;
virtual BitVector getReservedRegs(const MachineFunction &MF) const override;
virtual void eliminateFrameIndex(MachineBasicBlock::iterator MI,
int SPAdj, unsigned FIOperandNum,
RegScavenger *RS) const override;
virtual unsigned getFrameRegister(const MachineFunction &MF) const override;
};
} // end namespace llvm
#endif