LLVM: lib/Target/RISCV/MCTargetDesc/RISCVMCExpr.cpp Source File (original) (raw)

Go to the documentation of this file.

1

2

3

4

5

6

7

8

9

10

11

12

13

18

19using namespace llvm;

20

21#define DEBUG_TYPE "riscvmcexpr"

22

26 .Case("hi", ELF::R_RISCV_HI20)

28 .Case("pcrel_hi", ELF::R_RISCV_PCREL_HI20)

29 .Case("got_pcrel_hi", ELF::R_RISCV_GOT_HI20)

31 .Case("tprel_hi", ELF::R_RISCV_TPREL_HI20)

32 .Case("tprel_add", ELF::R_RISCV_TPREL_ADD)

33 .Case("tls_ie_pcrel_hi", ELF::R_RISCV_TLS_GOT_HI20)

34 .Case("tls_gd_pcrel_hi", ELF::R_RISCV_TLS_GD_HI20)

35 .Case("tlsdesc_hi", ELF::R_RISCV_TLSDESC_HI20)

36 .Case("tlsdesc_load_lo", ELF::R_RISCV_TLSDESC_LOAD_LO12)

37 .Case("tlsdesc_add_lo", ELF::R_RISCV_TLSDESC_ADD_LO12)

38 .Case("tlsdesc_call", ELF::R_RISCV_TLSDESC_CALL)

40

41 .Case("pltpcrel", ELF::R_RISCV_PLT32)

42 .Case("gotpcrel", ELF::R_RISCV_GOT32_PCREL)

44}

45

47 switch (S) {

51 return "lo";

52 case ELF::R_RISCV_HI20:

53 return "hi";

55 return "pcrel_lo";

56 case ELF::R_RISCV_PCREL_HI20:

57 return "pcrel_hi";

58 case ELF::R_RISCV_GOT_HI20:

59 return "got_pcrel_hi";

61 return "tprel_lo";

62 case ELF::R_RISCV_TPREL_HI20:

63 return "tprel_hi";

64 case ELF::R_RISCV_TPREL_ADD:

65 return "tprel_add";

66 case ELF::R_RISCV_TLS_GOT_HI20:

67 return "tls_ie_pcrel_hi";

68 case ELF::R_RISCV_TLSDESC_HI20:

69 return "tlsdesc_hi";

70 case ELF::R_RISCV_TLSDESC_LOAD_LO12:

71 return "tlsdesc_load_lo";

72 case ELF::R_RISCV_TLSDESC_ADD_LO12:

73 return "tlsdesc_add_lo";

74 case ELF::R_RISCV_TLSDESC_CALL:

75 return "tlsdesc_call";

76 case ELF::R_RISCV_TLS_GD_HI20:

77 return "tls_gd_pcrel_hi";

78 case ELF::R_RISCV_CALL_PLT:

79 return "call_plt";

80 case ELF::R_RISCV_32_PCREL:

81 return "32_pcrel";

82 case ELF::R_RISCV_GOT32_PCREL:

83 return "gotpcrel";

84 case ELF::R_RISCV_PLT32:

85 return "pltpcrel";

87 return "qc.abs20";

88 }

90}

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

A switch()-like statement whose cases are string literals.

StringSwitch & Case(StringLiteral S, T Value)

#define llvm_unreachable(msg)

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

Specifier parseSpecifierName(StringRef name)

Definition RISCVMCExpr.cpp:23

StringRef getSpecifierName(Specifier Kind)

Definition RISCVMCExpr.cpp:46

This is an optimization pass for GlobalISel generic memory operations.