|
34 | 34 |
|
35 | 35 | using namespace llvm;
|
36 | 36 |
|
37 |
| -static unsigned getFixupKindSize(unsigned Kind) { |
38 |
| - switch (Kind) { |
39 |
| - default: |
40 |
| - llvm_unreachable("invalid fixup kind!"); |
41 |
| - case FK_NONE: |
42 |
| - return 0; |
43 |
| - case FK_PCRel_1: |
44 |
| - case FK_SecRel_1: |
45 |
| - case FK_Data_1: |
46 |
| - return 1; |
47 |
| - case FK_PCRel_2: |
48 |
| - case FK_SecRel_2: |
49 |
| - case FK_Data_2: |
50 |
| - return 2; |
51 |
| - case FK_PCRel_4: |
52 |
| - case X86::reloc_riprel_4byte: |
53 |
| - case X86::reloc_riprel_4byte_relax: |
54 |
| - case X86::reloc_riprel_4byte_relax_rex: |
55 |
| - case X86::reloc_riprel_4byte_movq_load: |
56 |
| - case X86::reloc_signed_4byte: |
57 |
| - case X86::reloc_signed_4byte_relax: |
58 |
| - case X86::reloc_global_offset_table: |
59 |
| - case X86::reloc_branch_4byte_pcrel: |
60 |
| - case FK_SecRel_4: |
61 |
| - case FK_Data_4: |
62 |
| - return 4; |
63 |
| - case FK_PCRel_8: |
64 |
| - case FK_SecRel_8: |
65 |
| - case FK_Data_8: |
66 |
| - case X86::reloc_global_offset_table8: |
67 |
| - return 8; |
68 |
| - } |
69 |
| -} |
70 |
| - |
71 | 37 | namespace {
|
72 | 38 | /// A wrapper for holding a mask of the values from X86::AlignBranchBoundaryKind
|
73 | 39 | class X86AlignBranchKind {
|
@@ -126,6 +92,40 @@ cl::opt<X86AlignBranchKind, true, cl::parser<std::string>> X86AlignBranch(
|
126 | 92 | "indirect(indirect jump)."),
|
127 | 93 | cl::location(X86AlignBranchKindLoc));
|
128 | 94 |
|
| 95 | +static unsigned getFixupKindSize(unsigned Kind) { |
| 96 | + switch (Kind) { |
| 97 | + default: |
| 98 | + llvm_unreachable("invalid fixup kind!"); |
| 99 | + case FK_NONE: |
| 100 | + return 0; |
| 101 | + case FK_PCRel_1: |
| 102 | + case FK_SecRel_1: |
| 103 | + case FK_Data_1: |
| 104 | + return 1; |
| 105 | + case FK_PCRel_2: |
| 106 | + case FK_SecRel_2: |
| 107 | + case FK_Data_2: |
| 108 | + return 2; |
| 109 | + case FK_PCRel_4: |
| 110 | + case X86::reloc_riprel_4byte: |
| 111 | + case X86::reloc_riprel_4byte_relax: |
| 112 | + case X86::reloc_riprel_4byte_relax_rex: |
| 113 | + case X86::reloc_riprel_4byte_movq_load: |
| 114 | + case X86::reloc_signed_4byte: |
| 115 | + case X86::reloc_signed_4byte_relax: |
| 116 | + case X86::reloc_global_offset_table: |
| 117 | + case X86::reloc_branch_4byte_pcrel: |
| 118 | + case FK_SecRel_4: |
| 119 | + case FK_Data_4: |
| 120 | + return 4; |
| 121 | + case FK_PCRel_8: |
| 122 | + case FK_SecRel_8: |
| 123 | + case FK_Data_8: |
| 124 | + case X86::reloc_global_offset_table8: |
| 125 | + return 8; |
| 126 | + } |
| 127 | +} |
| 128 | + |
129 | 129 | class X86ELFObjectWriter : public MCELFObjectTargetWriter {
|
130 | 130 | public:
|
131 | 131 | X86ELFObjectWriter(bool is64Bit, uint8_t OSABI, uint16_t EMachine,
|
|
0 commit comments