Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/contrib/llvm-project/llvm/lib/Target/CSKY/CSKYRegisterInfo.h
96353 views
1
//===-- CSKYRegisterInfo.h - CSKY Register Information Impl ---*- C++ -*---===//
2
//
3
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4
// See https://llvm.org/LICENSE.txt for license information.
5
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6
//
7
//===----------------------------------------------------------------------===//
8
//
9
// This file contains the CSKY implementation of the TargetRegisterInfo class.
10
//
11
//===----------------------------------------------------------------------===//
12
13
#ifndef LLVM_LIB_TARGET_CSKY_CSKYREGISTERINFO_H
14
#define LLVM_LIB_TARGET_CSKY_CSKYREGISTERINFO_H
15
16
#include "llvm/CodeGen/TargetRegisterInfo.h"
17
18
#define GET_REGINFO_HEADER
19
#include "CSKYGenRegisterInfo.inc"
20
21
namespace llvm {
22
class CSKYInstrInfo;
23
24
class CSKYRegisterInfo : public CSKYGenRegisterInfo {
25
public:
26
CSKYRegisterInfo();
27
28
const uint32_t *getCallPreservedMask(const MachineFunction &MF,
29
CallingConv::ID id) const override;
30
const uint32_t *getNoPreservedMask() const override;
31
32
BitVector getReservedRegs(const MachineFunction &MF) const override;
33
34
Register getFrameRegister(const MachineFunction &MF) const override;
35
36
const MCPhysReg *getCalleeSavedRegs(const MachineFunction *MF) const override;
37
38
bool eliminateFrameIndex(MachineBasicBlock::iterator MI, int SPAdj,
39
unsigned FIOperandNum,
40
RegScavenger *RS) const override;
41
42
bool requiresFrameIndexScavenging(const MachineFunction &MF) const override {
43
return true;
44
}
45
46
bool requiresRegisterScavenging(const MachineFunction &MF) const override {
47
return true;
48
}
49
50
bool useFPForScavengingIndex(const MachineFunction &MF) const override {
51
return false;
52
}
53
};
54
55
} // namespace llvm
56
57
#endif // LLVM_LIB_TARGET_CSKY_CSKYREGISTERINFO_H
58
59