diff options
Diffstat (limited to 'llvm/lib/Target/AVR/AVRRegisterInfo.h')
-rw-r--r-- | llvm/lib/Target/AVR/AVRRegisterInfo.h | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/llvm/lib/Target/AVR/AVRRegisterInfo.h b/llvm/lib/Target/AVR/AVRRegisterInfo.h new file mode 100644 index 00000000000..59c0849d209 --- /dev/null +++ b/llvm/lib/Target/AVR/AVRRegisterInfo.h @@ -0,0 +1,56 @@ +//===-- AVRRegisterInfo.h - AVR Register Information Impl -------*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// This file contains the AVR implementation of the TargetRegisterInfo class. +// +//===----------------------------------------------------------------------===// + +#ifndef LLVM_AVR_REGISTER_INFO_H +#define LLVM_AVR_REGISTER_INFO_H + +#include "llvm/Target/TargetRegisterInfo.h" + +#define GET_REGINFO_HEADER +#include "AVRGenRegisterInfo.inc" + +namespace llvm { + +/// Utilities relating to AVR registers. +class AVRRegisterInfo : public AVRGenRegisterInfo { +public: + AVRRegisterInfo(); + +public: + const uint16_t * + getCalleeSavedRegs(const MachineFunction *MF = 0) const override; + const uint32_t *getCallPreservedMask(const MachineFunction &MF, + CallingConv::ID CC) const override; + BitVector getReservedRegs(const MachineFunction &MF) const override; + + const TargetRegisterClass * + getLargestLegalSuperClass(const TargetRegisterClass *RC, + const MachineFunction &MF) const override; + + /// Stack Frame Processing Methods + void eliminateFrameIndex(MachineBasicBlock::iterator MI, int SPAdj, + unsigned FIOperandNum, + RegScavenger *RS = NULL) const override; + + /// Debug information queries. + unsigned getFrameRegister(const MachineFunction &MF) const override; + + /// Returns a TargetRegisterClass used for pointer values. + const TargetRegisterClass * + getPointerRegClass(const MachineFunction &MF, + unsigned Kind = 0) const override; +}; + +} // end namespace llvm + +#endif // LLVM_AVR_REGISTER_INFO_H |