LLVM: lib/Target/Mips/MCTargetDesc/MipsABIInfo.cpp Source File (original) (raw)

1

2

3

4

5

6

7

8

14

15using namespace llvm;

16

17

18

21 cl::desc("MIPS: Emit R_{MICRO}MIPS_JALR relocation with jalr"),

23

24namespace {

25static const MCPhysReg O32IntRegs[4] = {Mips::A0, Mips::A1, Mips::A2, Mips::A3};

26

27static const MCPhysReg Mips64IntRegs[8] = {

28 Mips::A0_64, Mips::A1_64, Mips::A2_64, Mips::A3_64,

29 Mips::T0_64, Mips::T1_64, Mips::T2_64, Mips::T3_64};

30}

31

39

42 if (isGP64bit)

43 return ArrayRef(Mips64IntRegs);

44 else

46 }

48 return ArrayRef(Mips64IntRegs);

50}

51

59

67 if (TT.isABIN32())

69 assert(ABIName.empty() && "Unknown ABI option for MIPS");

70

71 if (TT.isMIPS64())

74}

75

79

83

87

91

95

99

103

105 return ArePtrs64bit() ? Mips::DADDiu : Mips::ADDiu;

106}

107

111

115

119

121 static const unsigned EhDataReg[] = {

122 Mips::A0, Mips::A1, Mips::A2, Mips::A3

123 };

124 static const unsigned EhDataReg64[] = {

125 Mips::A0_64, Mips::A1_64, Mips::A2_64, Mips::A3_64

126 };

127

128 return IsN64() ? EhDataReg64[I] : EhDataReg[I];

129}

assert(UImm &&(UImm !=~static_cast< T >(0)) &&"Invalid immediate!")

cl::opt< bool > EmitJalrReloc("mips-jalr-reloc", cl::Hidden, cl::desc("MIPS: Emit R_{MICRO}MIPS_JALR relocation with jalr"), cl::init(true))

ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory),...

bool AreGprs64bit() const

unsigned GetGlobalPtr() const

Definition MipsABIInfo.cpp:88

unsigned GetEhDataReg(unsigned I) const

Definition MipsABIInfo.cpp:120

bool ArePtrs64bit() const

unsigned GetGPRMoveOp() const

Definition MipsABIInfo.cpp:116

unsigned GetStackPtr() const

Definition MipsABIInfo.cpp:76

unsigned GetZeroReg() const

Definition MipsABIInfo.cpp:96

unsigned GetCalleeAllocdArgSizeInBytes(CallingConv::ID CC) const

Obtain the size of the area allocated by the callee for arguments.

Definition MipsABIInfo.cpp:52

unsigned GetPtrAddiuOp() const

Definition MipsABIInfo.cpp:104

unsigned GetPtrAndOp() const

Definition MipsABIInfo.cpp:112

unsigned GetFramePtr() const

Definition MipsABIInfo.cpp:80

static MipsABIInfo computeTargetABI(const Triple &TT, StringRef ABIName)

Definition MipsABIInfo.cpp:60

ArrayRef< MCPhysReg > GetByValArgRegs() const

The registers to use for byval arguments.

Definition MipsABIInfo.cpp:32

unsigned GetNullPtr() const

Definition MipsABIInfo.cpp:92

ArrayRef< MCPhysReg > getVarArgRegs(bool isGP64bit) const

The registers to use for the variable argument list.

Definition MipsABIInfo.cpp:40

unsigned GetPtrAdduOp() const

Definition MipsABIInfo.cpp:100

unsigned GetBasePtr() const

Definition MipsABIInfo.cpp:84

unsigned GetPtrSubuOp() const

Definition MipsABIInfo.cpp:108

StringRef - Represent a constant reference to a string, i.e.

bool starts_with(StringRef Prefix) const

Check if this string starts with the given Prefix.

constexpr bool empty() const

empty - Check if the string is empty.

Triple - Helper class for working with autoconf configuration names.

#define llvm_unreachable(msg)

Marks that the current location is not supposed to be reachable.

unsigned ID

LLVM IR allows to use arbitrary numbers as calling convention identifiers.

@ Fast

Attempts to make calls as fast as possible (e.g.

initializer< Ty > init(const Ty &Val)

This is an optimization pass for GlobalISel generic memory operations.

uint16_t MCPhysReg

An unsigned integer type large enough to represent all physical registers, but not necessarily virtua...

ArrayRef(const T &OneElt) -> ArrayRef< T >