LLVM  14.0.0git
HexagonELFObjectWriter.cpp
Go to the documentation of this file.
1 //===-- HexagonELFObjectWriter.cpp - Hexagon Target Descriptions ----------===//
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 
11 #include "llvm/MC/MCAssembler.h"
13 #include "llvm/MC/MCObjectWriter.h"
14 #include "llvm/MC/MCValue.h"
15 #include "llvm/Support/Debug.h"
17 
18 #define DEBUG_TYPE "hexagon-elf-writer"
19 
20 using namespace llvm;
21 using namespace Hexagon;
22 
23 namespace {
24 
25 class HexagonELFObjectWriter : public MCELFObjectTargetWriter {
26 private:
27  StringRef CPU;
28 
29 public:
30  HexagonELFObjectWriter(uint8_t OSABI, StringRef C);
31 
32  unsigned getRelocType(MCContext &Ctx, MCValue const &Target,
33  MCFixup const &Fixup, bool IsPCRel) const override;
34 };
35 }
36 
37 HexagonELFObjectWriter::HexagonELFObjectWriter(uint8_t OSABI, StringRef C)
38  : MCELFObjectTargetWriter(/*Is64bit*/ false, OSABI, ELF::EM_HEXAGON,
39  /*HasRelocationAddend*/ true),
40  CPU(C) {}
41 
42 unsigned HexagonELFObjectWriter::getRelocType(MCContext &Ctx,
43  MCValue const &Target,
44  MCFixup const &Fixup,
45  bool IsPCRel) const {
46  MCSymbolRefExpr::VariantKind Variant = Target.getAccessVariant();
47  switch (Fixup.getTargetKind()) {
48  default:
49  report_fatal_error("Unrecognized relocation type");
50  break;
51  case FK_Data_4:
52  switch(Variant) {
53  case MCSymbolRefExpr::VariantKind::VK_DTPREL:
54  return ELF::R_HEX_DTPREL_32;
55  case MCSymbolRefExpr::VariantKind::VK_GOT:
56  return ELF::R_HEX_GOT_32;
57  case MCSymbolRefExpr::VariantKind::VK_GOTREL:
58  return ELF::R_HEX_GOTREL_32;
59  case MCSymbolRefExpr::VariantKind::VK_Hexagon_GD_GOT:
60  return ELF::R_HEX_GD_GOT_32;
61  case MCSymbolRefExpr::VariantKind::VK_Hexagon_IE:
62  return ELF::R_HEX_IE_32;
63  case MCSymbolRefExpr::VariantKind::VK_Hexagon_IE_GOT:
64  return ELF::R_HEX_IE_GOT_32;
65  case MCSymbolRefExpr::VariantKind::VK_Hexagon_LD_GOT:
66  return ELF::R_HEX_LD_GOT_32;
67  case MCSymbolRefExpr::VariantKind::VK_PCREL:
68  return ELF::R_HEX_32_PCREL;
69  case MCSymbolRefExpr::VariantKind::VK_TPREL:
70  return ELF::R_HEX_TPREL_32;
71  case MCSymbolRefExpr::VariantKind::VK_None:
72  return IsPCRel ? ELF::R_HEX_32_PCREL : ELF::R_HEX_32;
73  default:
74  report_fatal_error("Unrecognized variant type");
75  };
76  case FK_PCRel_4:
77  return ELF::R_HEX_32_PCREL;
78  case FK_Data_2:
79  switch(Variant) {
80  case MCSymbolRefExpr::VariantKind::VK_DTPREL:
81  return ELF::R_HEX_DTPREL_16;
82  case MCSymbolRefExpr::VariantKind::VK_GOT:
83  return ELF::R_HEX_GOT_16;
84  case MCSymbolRefExpr::VariantKind::VK_Hexagon_GD_GOT:
85  return ELF::R_HEX_GD_GOT_16;
86  case MCSymbolRefExpr::VariantKind::VK_Hexagon_IE_GOT:
87  return ELF::R_HEX_IE_GOT_16;
88  case MCSymbolRefExpr::VariantKind::VK_Hexagon_LD_GOT:
89  return ELF::R_HEX_LD_GOT_16;
90  case MCSymbolRefExpr::VariantKind::VK_TPREL:
91  return ELF::R_HEX_TPREL_16;
92  case MCSymbolRefExpr::VariantKind::VK_None:
93  return ELF::R_HEX_16;
94  default:
95  report_fatal_error("Unrecognized variant type");
96  };
97  case FK_Data_1:
98  return ELF::R_HEX_8;
100  return ELF::R_HEX_B22_PCREL;
102  return ELF::R_HEX_B15_PCREL;
104  return ELF::R_HEX_B7_PCREL;
105  case fixup_Hexagon_LO16:
106  return ELF::R_HEX_LO16;
107  case fixup_Hexagon_HI16:
108  return ELF::R_HEX_HI16;
109  case fixup_Hexagon_32:
110  return ELF::R_HEX_32;
111  case fixup_Hexagon_16:
112  return ELF::R_HEX_16;
113  case fixup_Hexagon_8:
114  return ELF::R_HEX_8;
116  return ELF::R_HEX_GPREL16_0;
118  return ELF::R_HEX_GPREL16_1;
120  return ELF::R_HEX_GPREL16_2;
122  return ELF::R_HEX_GPREL16_3;
123  case fixup_Hexagon_HL16:
124  return ELF::R_HEX_HL16;
126  return ELF::R_HEX_B13_PCREL;
128  return ELF::R_HEX_B9_PCREL;
130  return ELF::R_HEX_B32_PCREL_X;
132  return ELF::R_HEX_32_6_X;
134  return ELF::R_HEX_B22_PCREL_X;
136  return ELF::R_HEX_B15_PCREL_X;
138  return ELF::R_HEX_B13_PCREL_X;
140  return ELF::R_HEX_B9_PCREL_X;
142  return ELF::R_HEX_B7_PCREL_X;
143  case fixup_Hexagon_16_X:
144  return ELF::R_HEX_16_X;
145  case fixup_Hexagon_12_X:
146  return ELF::R_HEX_12_X;
147  case fixup_Hexagon_11_X:
148  return ELF::R_HEX_11_X;
149  case fixup_Hexagon_10_X:
150  return ELF::R_HEX_10_X;
151  case fixup_Hexagon_9_X:
152  return ELF::R_HEX_9_X;
153  case fixup_Hexagon_8_X:
154  return ELF::R_HEX_8_X;
155  case fixup_Hexagon_7_X:
156  return ELF::R_HEX_7_X;
157  case fixup_Hexagon_6_X:
158  return ELF::R_HEX_6_X;
160  return ELF::R_HEX_32_PCREL;
161  case fixup_Hexagon_COPY:
162  return ELF::R_HEX_COPY;
164  return ELF::R_HEX_GLOB_DAT;
166  return ELF::R_HEX_JMP_SLOT;
168  return ELF::R_HEX_RELATIVE;
170  return ELF::R_HEX_PLT_B22_PCREL;
172  return ELF::R_HEX_GOTREL_LO16;
174  return ELF::R_HEX_GOTREL_HI16;
176  return ELF::R_HEX_GOTREL_32;
178  return ELF::R_HEX_GOT_LO16;
180  return ELF::R_HEX_GOT_HI16;
182  return ELF::R_HEX_GOT_32;
184  return ELF::R_HEX_GOT_16;
186  return ELF::R_HEX_DTPMOD_32;
188  return ELF::R_HEX_DTPREL_LO16;
190  return ELF::R_HEX_DTPREL_HI16;
192  return ELF::R_HEX_DTPREL_32;
194  return ELF::R_HEX_DTPREL_16;
196  return ELF::R_HEX_GD_PLT_B22_PCREL;
198  return ELF::R_HEX_LD_PLT_B22_PCREL;
200  return ELF::R_HEX_GD_GOT_LO16;
202  return ELF::R_HEX_GD_GOT_HI16;
204  return ELF::R_HEX_GD_GOT_32;
206  return ELF::R_HEX_GD_GOT_16;
208  return ELF::R_HEX_LD_GOT_LO16;
210  return ELF::R_HEX_LD_GOT_HI16;
212  return ELF::R_HEX_LD_GOT_32;
214  return ELF::R_HEX_LD_GOT_16;
216  return ELF::R_HEX_IE_LO16;
218  return ELF::R_HEX_IE_HI16;
219  case fixup_Hexagon_IE_32:
220  return ELF::R_HEX_IE_32;
222  return ELF::R_HEX_IE_GOT_LO16;
224  return ELF::R_HEX_IE_GOT_HI16;
226  return ELF::R_HEX_IE_GOT_32;
228  return ELF::R_HEX_IE_GOT_16;
230  return ELF::R_HEX_TPREL_LO16;
232  return ELF::R_HEX_TPREL_HI16;
234  return ELF::R_HEX_TPREL_32;
236  return ELF::R_HEX_TPREL_16;
238  return ELF::R_HEX_6_PCREL_X;
240  return ELF::R_HEX_GOTREL_32_6_X;
242  return ELF::R_HEX_GOTREL_16_X;
244  return ELF::R_HEX_GOTREL_11_X;
246  return ELF::R_HEX_GOT_32_6_X;
248  return ELF::R_HEX_GOT_16_X;
250  return ELF::R_HEX_GOT_11_X;
252  return ELF::R_HEX_DTPREL_32_6_X;
254  return ELF::R_HEX_DTPREL_16_X;
256  return ELF::R_HEX_DTPREL_11_X;
258  return ELF::R_HEX_GD_GOT_32_6_X;
260  return ELF::R_HEX_GD_GOT_16_X;
262  return ELF::R_HEX_GD_GOT_11_X;
264  return ELF::R_HEX_LD_GOT_32_6_X;
266  return ELF::R_HEX_LD_GOT_16_X;
268  return ELF::R_HEX_LD_GOT_11_X;
270  return ELF::R_HEX_IE_32_6_X;
272  return ELF::R_HEX_IE_16_X;
274  return ELF::R_HEX_IE_GOT_32_6_X;
276  return ELF::R_HEX_IE_GOT_16_X;
278  return ELF::R_HEX_IE_GOT_11_X;
280  return ELF::R_HEX_TPREL_32_6_X;
282  return ELF::R_HEX_TPREL_16_X;
284  return ELF::R_HEX_TPREL_11_X;
286  return ELF::R_HEX_23_REG;
288  return ELF::R_HEX_27_REG;
290  return ELF::R_HEX_GD_PLT_B22_PCREL_X;
292  return ELF::R_HEX_GD_PLT_B32_PCREL_X;
294  return ELF::R_HEX_LD_PLT_B22_PCREL_X;
296  return ELF::R_HEX_LD_PLT_B32_PCREL_X;
297  }
298 }
299 
300 std::unique_ptr<MCObjectTargetWriter>
302  return std::make_unique<HexagonELFObjectWriter>(OSABI, CPU);
303 }
HexagonMCTargetDesc.h
llvm::Hexagon::fixup_Hexagon_GOTREL_16_X
@ fixup_Hexagon_GOTREL_16_X
Definition: HexagonFixupKinds.h:90
llvm::Hexagon::fixup_Hexagon_DTPREL_LO16
@ fixup_Hexagon_DTPREL_LO16
Definition: HexagonFixupKinds.h:62
llvm::Hexagon::fixup_Hexagon_TPREL_HI16
@ fixup_Hexagon_TPREL_HI16
Definition: HexagonFixupKinds.h:85
llvm::Hexagon::fixup_Hexagon_B22_PCREL
@ fixup_Hexagon_B22_PCREL
Definition: HexagonFixupKinds.h:18
llvm::Hexagon::fixup_Hexagon_6_PCREL_X
@ fixup_Hexagon_6_PCREL_X
Definition: HexagonFixupKinds.h:88
llvm
This file implements support for optimizing divisions by a constant.
Definition: AllocatorList.h:23
llvm::Hexagon::fixup_Hexagon_9_X
@ fixup_Hexagon_9_X
Definition: HexagonFixupKinds.h:44
llvm::Hexagon::fixup_Hexagon_TPREL_32
@ fixup_Hexagon_TPREL_32
Definition: HexagonFixupKinds.h:86
llvm::Hexagon::fixup_Hexagon_LD_PLT_B22_PCREL_X
@ fixup_Hexagon_LD_PLT_B22_PCREL_X
Definition: HexagonFixupKinds.h:116
llvm::Hexagon::fixup_Hexagon_23_REG
@ fixup_Hexagon_23_REG
Definition: HexagonFixupKinds.h:112
llvm::Hexagon::fixup_Hexagon_B32_PCREL_X
@ fixup_Hexagon_B32_PCREL_X
Definition: HexagonFixupKinds.h:33
llvm::Hexagon::fixup_Hexagon_GD_GOT_LO16
@ fixup_Hexagon_GD_GOT_LO16
Definition: HexagonFixupKinds.h:68
llvm::Hexagon::fixup_Hexagon_GD_GOT_32_6_X
@ fixup_Hexagon_GD_GOT_32_6_X
Definition: HexagonFixupKinds.h:98
llvm::Hexagon::fixup_Hexagon_IE_GOT_11_X
@ fixup_Hexagon_IE_GOT_11_X
Definition: HexagonFixupKinds.h:108
llvm::MCContext
Context object for machine code objects.
Definition: MCContext.h:72
llvm::Hexagon::fixup_Hexagon_DTPREL_32_6_X
@ fixup_Hexagon_DTPREL_32_6_X
Definition: HexagonFixupKinds.h:95
llvm::Hexagon::fixup_Hexagon_GD_GOT_32
@ fixup_Hexagon_GD_GOT_32
Definition: HexagonFixupKinds.h:70
llvm::Target
Target - Wrapper for Target specific information.
Definition: TargetRegistry.h:137
llvm::Hexagon::fixup_Hexagon_IE_GOT_HI16
@ fixup_Hexagon_IE_GOT_HI16
Definition: HexagonFixupKinds.h:81
llvm::Hexagon::fixup_Hexagon_B9_PCREL_X
@ fixup_Hexagon_B9_PCREL_X
Definition: HexagonFixupKinds.h:38
llvm::Hexagon::fixup_Hexagon_GPREL16_0
@ fixup_Hexagon_GPREL16_0
Definition: HexagonFixupKinds.h:26
llvm::pdb::PDB_BuiltinType::Variant
@ Variant
MCAssembler.h
llvm::Hexagon::fixup_Hexagon_LO16
@ fixup_Hexagon_LO16
Definition: HexagonFixupKinds.h:21
llvm::Hexagon::fixup_Hexagon_GLOB_DAT
@ fixup_Hexagon_GLOB_DAT
Definition: HexagonFixupKinds.h:50
llvm::Hexagon::fixup_Hexagon_B13_PCREL_X
@ fixup_Hexagon_B13_PCREL_X
Definition: HexagonFixupKinds.h:37
llvm::Hexagon::fixup_Hexagon_6_X
@ fixup_Hexagon_6_X
Definition: HexagonFixupKinds.h:47
llvm::Hexagon::fixup_Hexagon_LD_GOT_11_X
@ fixup_Hexagon_LD_GOT_11_X
Definition: HexagonFixupKinds.h:103
llvm::Hexagon::fixup_Hexagon_32
@ fixup_Hexagon_32
Definition: HexagonFixupKinds.h:23
llvm::Hexagon::fixup_Hexagon_HL16
@ fixup_Hexagon_HL16
Definition: HexagonFixupKinds.h:30
llvm::Hexagon::fixup_Hexagon_GOT_32
@ fixup_Hexagon_GOT_32
Definition: HexagonFixupKinds.h:59
llvm::Hexagon::fixup_Hexagon_GOTREL_32
@ fixup_Hexagon_GOTREL_32
Definition: HexagonFixupKinds.h:56
llvm::Hexagon::fixup_Hexagon_LD_GOT_LO16
@ fixup_Hexagon_LD_GOT_LO16
Definition: HexagonFixupKinds.h:72
llvm::Hexagon::fixup_Hexagon_GOTREL_32_6_X
@ fixup_Hexagon_GOTREL_32_6_X
Definition: HexagonFixupKinds.h:89
llvm::Hexagon::fixup_Hexagon_DTPREL_HI16
@ fixup_Hexagon_DTPREL_HI16
Definition: HexagonFixupKinds.h:63
llvm::Hexagon::fixup_Hexagon_DTPREL_16
@ fixup_Hexagon_DTPREL_16
Definition: HexagonFixupKinds.h:65
HexagonFixupKinds.h
llvm::Hexagon::fixup_Hexagon_16
@ fixup_Hexagon_16
Definition: HexagonFixupKinds.h:24
llvm::ELF::EM_HEXAGON
@ EM_HEXAGON
Definition: ELF.h:258
llvm::Hexagon::fixup_Hexagon_GPREL16_3
@ fixup_Hexagon_GPREL16_3
Definition: HexagonFixupKinds.h:29
llvm::Hexagon::fixup_Hexagon_GD_GOT_16_X
@ fixup_Hexagon_GD_GOT_16_X
Definition: HexagonFixupKinds.h:99
llvm::Hexagon::fixup_Hexagon_IE_GOT_32_6_X
@ fixup_Hexagon_IE_GOT_32_6_X
Definition: HexagonFixupKinds.h:106
llvm::Hexagon::fixup_Hexagon_8_X
@ fixup_Hexagon_8_X
Definition: HexagonFixupKinds.h:45
llvm::Hexagon::fixup_Hexagon_TPREL_11_X
@ fixup_Hexagon_TPREL_11_X
Definition: HexagonFixupKinds.h:111
llvm::Hexagon::fixup_Hexagon_TPREL_16
@ fixup_Hexagon_TPREL_16
Definition: HexagonFixupKinds.h:87
llvm::FK_Data_4
@ FK_Data_4
A four-byte fixup.
Definition: MCFixup.h:25
llvm::Hexagon::fixup_Hexagon_TPREL_LO16
@ fixup_Hexagon_TPREL_LO16
Definition: HexagonFixupKinds.h:84
llvm::Hexagon::fixup_Hexagon_LD_GOT_16_X
@ fixup_Hexagon_LD_GOT_16_X
Definition: HexagonFixupKinds.h:102
llvm::Hexagon::fixup_Hexagon_GD_PLT_B22_PCREL
@ fixup_Hexagon_GD_PLT_B22_PCREL
Definition: HexagonFixupKinds.h:66
llvm::Hexagon::fixup_Hexagon_IE_HI16
@ fixup_Hexagon_IE_HI16
Definition: HexagonFixupKinds.h:77
C
(vector float) vec_cmpeq(*A, *B) C
Definition: README_ALTIVEC.txt:86
llvm::Hexagon::fixup_Hexagon_LD_PLT_B32_PCREL_X
@ fixup_Hexagon_LD_PLT_B32_PCREL_X
Definition: HexagonFixupKinds.h:117
false
Definition: StackSlotColoring.cpp:142
llvm::MCELFObjectTargetWriter
Definition: MCELFObjectWriter.h:53
llvm::report_fatal_error
void report_fatal_error(Error Err, bool gen_crash_diag=true)
Report a serious error, calling any installed error handler.
Definition: Error.cpp:140
llvm::Hexagon::fixup_Hexagon_7_X
@ fixup_Hexagon_7_X
Definition: HexagonFixupKinds.h:46
llvm::Hexagon::fixup_Hexagon_DTPREL_11_X
@ fixup_Hexagon_DTPREL_11_X
Definition: HexagonFixupKinds.h:97
llvm::Hexagon::fixup_Hexagon_DTPREL_32
@ fixup_Hexagon_DTPREL_32
Definition: HexagonFixupKinds.h:64
llvm::Hexagon::fixup_Hexagon_GOT_HI16
@ fixup_Hexagon_GOT_HI16
Definition: HexagonFixupKinds.h:58
llvm::Hexagon::fixup_Hexagon_GD_PLT_B22_PCREL_X
@ fixup_Hexagon_GD_PLT_B22_PCREL_X
Definition: HexagonFixupKinds.h:114
llvm::Hexagon::fixup_Hexagon_GPREL16_1
@ fixup_Hexagon_GPREL16_1
Definition: HexagonFixupKinds.h:27
llvm::Hexagon::fixup_Hexagon_B15_PCREL_X
@ fixup_Hexagon_B15_PCREL_X
Definition: HexagonFixupKinds.h:36
llvm::Hexagon::fixup_Hexagon_LD_GOT_HI16
@ fixup_Hexagon_LD_GOT_HI16
Definition: HexagonFixupKinds.h:73
llvm::Hexagon::fixup_Hexagon_10_X
@ fixup_Hexagon_10_X
Definition: HexagonFixupKinds.h:43
llvm::MCSymbolRefExpr::VariantKind
VariantKind
Definition: MCExpr.h:194
MCELFObjectWriter.h
llvm::Hexagon::fixup_Hexagon_IE_32_6_X
@ fixup_Hexagon_IE_32_6_X
Definition: HexagonFixupKinds.h:104
llvm::Hexagon::fixup_Hexagon_TPREL_32_6_X
@ fixup_Hexagon_TPREL_32_6_X
Definition: HexagonFixupKinds.h:109
llvm::Hexagon::fixup_Hexagon_GOT_LO16
@ fixup_Hexagon_GOT_LO16
Definition: HexagonFixupKinds.h:57
llvm::Hexagon::fixup_Hexagon_GOTREL_HI16
@ fixup_Hexagon_GOTREL_HI16
Definition: HexagonFixupKinds.h:55
llvm::Hexagon::fixup_Hexagon_GOT_32_6_X
@ fixup_Hexagon_GOT_32_6_X
Definition: HexagonFixupKinds.h:92
llvm::Hexagon::fixup_Hexagon_GOTREL_LO16
@ fixup_Hexagon_GOTREL_LO16
Definition: HexagonFixupKinds.h:54
llvm::Hexagon::fixup_Hexagon_B9_PCREL
@ fixup_Hexagon_B9_PCREL
Definition: HexagonFixupKinds.h:32
llvm::Hexagon::fixup_Hexagon_GD_GOT_HI16
@ fixup_Hexagon_GD_GOT_HI16
Definition: HexagonFixupKinds.h:69
llvm::Hexagon::fixup_Hexagon_B7_PCREL
@ fixup_Hexagon_B7_PCREL
Definition: HexagonFixupKinds.h:20
llvm::FK_Data_1
@ FK_Data_1
A one-byte fixup.
Definition: MCFixup.h:23
llvm::FK_PCRel_4
@ FK_PCRel_4
A four-byte pc relative fixup.
Definition: MCFixup.h:30
llvm::Hexagon::fixup_Hexagon_IE_32
@ fixup_Hexagon_IE_32
Definition: HexagonFixupKinds.h:78
llvm::Hexagon::fixup_Hexagon_LD_PLT_B22_PCREL
@ fixup_Hexagon_LD_PLT_B22_PCREL
Definition: HexagonFixupKinds.h:67
Fixup
PowerPC TLS Dynamic Call Fixup
Definition: PPCTLSDynamicCall.cpp:235
llvm::StringRef
StringRef - Represent a constant reference to a string, i.e.
Definition: StringRef.h:58
llvm::Hexagon::fixup_Hexagon_IE_LO16
@ fixup_Hexagon_IE_LO16
Definition: HexagonFixupKinds.h:76
llvm::Hexagon::fixup_Hexagon_8
@ fixup_Hexagon_8
Definition: HexagonFixupKinds.h:25
llvm::Hexagon::fixup_Hexagon_32_6_X
@ fixup_Hexagon_32_6_X
Definition: HexagonFixupKinds.h:34
llvm::Hexagon::fixup_Hexagon_GPREL16_2
@ fixup_Hexagon_GPREL16_2
Definition: HexagonFixupKinds.h:28
llvm::Hexagon::fixup_Hexagon_LD_GOT_32
@ fixup_Hexagon_LD_GOT_32
Definition: HexagonFixupKinds.h:74
llvm::Hexagon::fixup_Hexagon_DTPMOD_32
@ fixup_Hexagon_DTPMOD_32
Definition: HexagonFixupKinds.h:61
llvm::Hexagon::fixup_Hexagon_GD_PLT_B32_PCREL_X
@ fixup_Hexagon_GD_PLT_B32_PCREL_X
Definition: HexagonFixupKinds.h:115
llvm::Hexagon::fixup_Hexagon_JMP_SLOT
@ fixup_Hexagon_JMP_SLOT
Definition: HexagonFixupKinds.h:51
MCObjectWriter.h
llvm::Hexagon::fixup_Hexagon_GD_GOT_16
@ fixup_Hexagon_GD_GOT_16
Definition: HexagonFixupKinds.h:71
llvm::Hexagon::fixup_Hexagon_B22_PCREL_X
@ fixup_Hexagon_B22_PCREL_X
Definition: HexagonFixupKinds.h:35
llvm::Hexagon::fixup_Hexagon_B7_PCREL_X
@ fixup_Hexagon_B7_PCREL_X
Definition: HexagonFixupKinds.h:39
llvm::Hexagon::fixup_Hexagon_32_PCREL
@ fixup_Hexagon_32_PCREL
Definition: HexagonFixupKinds.h:48
llvm::Hexagon::fixup_Hexagon_GOT_16_X
@ fixup_Hexagon_GOT_16_X
Definition: HexagonFixupKinds.h:93
llvm::Hexagon::fixup_Hexagon_IE_16_X
@ fixup_Hexagon_IE_16_X
Definition: HexagonFixupKinds.h:105
llvm::Hexagon::fixup_Hexagon_IE_GOT_32
@ fixup_Hexagon_IE_GOT_32
Definition: HexagonFixupKinds.h:82
MCValue.h
llvm::Hexagon::fixup_Hexagon_PLT_B22_PCREL
@ fixup_Hexagon_PLT_B22_PCREL
Definition: HexagonFixupKinds.h:53
llvm::Hexagon::fixup_Hexagon_LD_GOT_16
@ fixup_Hexagon_LD_GOT_16
Definition: HexagonFixupKinds.h:75
llvm::Hexagon::fixup_Hexagon_LD_GOT_32_6_X
@ fixup_Hexagon_LD_GOT_32_6_X
Definition: HexagonFixupKinds.h:101
llvm::Hexagon::fixup_Hexagon_HI16
@ fixup_Hexagon_HI16
Definition: HexagonFixupKinds.h:22
llvm::Hexagon::fixup_Hexagon_GOT_11_X
@ fixup_Hexagon_GOT_11_X
Definition: HexagonFixupKinds.h:94
llvm::Hexagon::fixup_Hexagon_GOT_16
@ fixup_Hexagon_GOT_16
Definition: HexagonFixupKinds.h:60
llvm::Hexagon::fixup_Hexagon_GD_GOT_11_X
@ fixup_Hexagon_GD_GOT_11_X
Definition: HexagonFixupKinds.h:100
llvm::Hexagon::fixup_Hexagon_11_X
@ fixup_Hexagon_11_X
Definition: HexagonFixupKinds.h:42
llvm::Hexagon::fixup_Hexagon_B15_PCREL
@ fixup_Hexagon_B15_PCREL
Definition: HexagonFixupKinds.h:19
llvm::Hexagon::fixup_Hexagon_IE_GOT_LO16
@ fixup_Hexagon_IE_GOT_LO16
Definition: HexagonFixupKinds.h:80
llvm::Hexagon::fixup_Hexagon_TPREL_16_X
@ fixup_Hexagon_TPREL_16_X
Definition: HexagonFixupKinds.h:110
llvm::Hexagon::fixup_Hexagon_12_X
@ fixup_Hexagon_12_X
Definition: HexagonFixupKinds.h:41
llvm::Hexagon::fixup_Hexagon_B13_PCREL
@ fixup_Hexagon_B13_PCREL
Definition: HexagonFixupKinds.h:31
llvm::Hexagon::fixup_Hexagon_27_REG
@ fixup_Hexagon_27_REG
Definition: HexagonFixupKinds.h:113
llvm::Hexagon::fixup_Hexagon_IE_GOT_16_X
@ fixup_Hexagon_IE_GOT_16_X
Definition: HexagonFixupKinds.h:107
llvm::Hexagon::fixup_Hexagon_RELATIVE
@ fixup_Hexagon_RELATIVE
Definition: HexagonFixupKinds.h:52
llvm::Hexagon::fixup_Hexagon_GOTREL_11_X
@ fixup_Hexagon_GOTREL_11_X
Definition: HexagonFixupKinds.h:91
llvm::MCValue
This represents an "assembler immediate".
Definition: MCValue.h:37
llvm::Hexagon::fixup_Hexagon_16_X
@ fixup_Hexagon_16_X
Definition: HexagonFixupKinds.h:40
raw_ostream.h
llvm::FK_Data_2
@ FK_Data_2
A two-byte fixup.
Definition: MCFixup.h:24
llvm::Hexagon::fixup_Hexagon_IE_GOT_16
@ fixup_Hexagon_IE_GOT_16
Definition: HexagonFixupKinds.h:83
true
basic Basic Alias true
Definition: BasicAliasAnalysis.cpp:1903
llvm::MCFixup
Encode information on a single operation to perform on a byte sequence (e.g., an encoded instruction)...
Definition: MCFixup.h:71
Debug.h
llvm::Hexagon::fixup_Hexagon_COPY
@ fixup_Hexagon_COPY
Definition: HexagonFixupKinds.h:49
llvm::Hexagon::fixup_Hexagon_DTPREL_16_X
@ fixup_Hexagon_DTPREL_16_X
Definition: HexagonFixupKinds.h:96
llvm::createHexagonELFObjectWriter
std::unique_ptr< MCObjectTargetWriter > createHexagonELFObjectWriter(uint8_t OSABI, StringRef CPU)
Definition: HexagonELFObjectWriter.cpp:301