| OLD | NEW |
| 1 //===-- PPCELFObjectWriter.cpp - PPC ELF Writer ---------------------------===// | 1 //===-- PPCELFObjectWriter.cpp - PPC ELF Writer ---------------------------===// |
| 2 // | 2 // |
| 3 // The LLVM Compiler Infrastructure | 3 // The LLVM Compiler Infrastructure |
| 4 // | 4 // |
| 5 // This file is distributed under the University of Illinois Open Source | 5 // This file is distributed under the University of Illinois Open Source |
| 6 // License. See LICENSE.TXT for details. | 6 // License. See LICENSE.TXT for details. |
| 7 // | 7 // |
| 8 //===----------------------------------------------------------------------===// | 8 //===----------------------------------------------------------------------===// |
| 9 | 9 |
| 10 #include "MCTargetDesc/PPCMCTargetDesc.h" | 10 #include "MCTargetDesc/PPCMCTargetDesc.h" |
| (...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 100 break; | 100 break; |
| 101 case PPC::fixup_ppc_ha16: | 101 case PPC::fixup_ppc_ha16: |
| 102 switch (Modifier) { | 102 switch (Modifier) { |
| 103 default: llvm_unreachable("Unsupported Modifier"); | 103 default: llvm_unreachable("Unsupported Modifier"); |
| 104 case MCSymbolRefExpr::VK_PPC_TPREL16_HA: | 104 case MCSymbolRefExpr::VK_PPC_TPREL16_HA: |
| 105 Type = ELF::R_PPC_TPREL16_HA; | 105 Type = ELF::R_PPC_TPREL16_HA; |
| 106 break; | 106 break; |
| 107 case MCSymbolRefExpr::VK_PPC_DTPREL16_HA: | 107 case MCSymbolRefExpr::VK_PPC_DTPREL16_HA: |
| 108 Type = ELF::R_PPC64_DTPREL16_HA; | 108 Type = ELF::R_PPC64_DTPREL16_HA; |
| 109 break; | 109 break; |
| 110 case MCSymbolRefExpr::VK_PPC_GAS_HA16: | 110 case MCSymbolRefExpr::VK_None: |
| 111 case MCSymbolRefExpr::VK_PPC_DARWIN_HA16: | |
| 112 Type = ELF::R_PPC_ADDR16_HA; | 111 Type = ELF::R_PPC_ADDR16_HA; |
| 113 break; | 112 break; |
| 114 case MCSymbolRefExpr::VK_PPC_TOC16_HA: | 113 case MCSymbolRefExpr::VK_PPC_TOC16_HA: |
| 115 Type = ELF::R_PPC64_TOC16_HA; | 114 Type = ELF::R_PPC64_TOC16_HA; |
| 116 break; | 115 break; |
| 117 case MCSymbolRefExpr::VK_PPC_GOT_TPREL16_HA: | 116 case MCSymbolRefExpr::VK_PPC_GOT_TPREL16_HA: |
| 118 Type = ELF::R_PPC64_GOT_TPREL16_HA; | 117 Type = ELF::R_PPC64_GOT_TPREL16_HA; |
| 119 break; | 118 break; |
| 120 case MCSymbolRefExpr::VK_PPC_GOT_TLSGD16_HA: | 119 case MCSymbolRefExpr::VK_PPC_GOT_TLSGD16_HA: |
| 121 Type = ELF::R_PPC64_GOT_TLSGD16_HA; | 120 Type = ELF::R_PPC64_GOT_TLSGD16_HA; |
| 122 break; | 121 break; |
| 123 case MCSymbolRefExpr::VK_PPC_GOT_TLSLD16_HA: | 122 case MCSymbolRefExpr::VK_PPC_GOT_TLSLD16_HA: |
| 124 Type = ELF::R_PPC64_GOT_TLSLD16_HA; | 123 Type = ELF::R_PPC64_GOT_TLSLD16_HA; |
| 125 break; | 124 break; |
| 126 } | 125 } |
| 127 break; | 126 break; |
| 128 case PPC::fixup_ppc_lo16: | 127 case PPC::fixup_ppc_lo16: |
| 129 switch (Modifier) { | 128 switch (Modifier) { |
| 130 default: llvm_unreachable("Unsupported Modifier"); | 129 default: llvm_unreachable("Unsupported Modifier"); |
| 131 case MCSymbolRefExpr::VK_PPC_TPREL16_LO: | 130 case MCSymbolRefExpr::VK_PPC_TPREL16_LO: |
| 132 Type = ELF::R_PPC_TPREL16_LO; | 131 Type = ELF::R_PPC_TPREL16_LO; |
| 133 break; | 132 break; |
| 134 case MCSymbolRefExpr::VK_PPC_DTPREL16_LO: | 133 case MCSymbolRefExpr::VK_PPC_DTPREL16_LO: |
| 135 Type = ELF::R_PPC64_DTPREL16_LO; | 134 Type = ELF::R_PPC64_DTPREL16_LO; |
| 136 break; | 135 break; |
| 137 case MCSymbolRefExpr::VK_None: | 136 case MCSymbolRefExpr::VK_None: |
| 138 Type = ELF::R_PPC_ADDR16; | |
| 139 break; | |
| 140 case MCSymbolRefExpr::VK_PPC_GAS_LO16: | |
| 141 case MCSymbolRefExpr::VK_PPC_DARWIN_LO16: | |
| 142 Type = ELF::R_PPC_ADDR16_LO; | 137 Type = ELF::R_PPC_ADDR16_LO; |
| 143 break; | 138 break; |
| 144 case MCSymbolRefExpr::VK_PPC_TOC_ENTRY: | 139 case MCSymbolRefExpr::VK_PPC_TOC_ENTRY: |
| 145 Type = ELF::R_PPC64_TOC16; | 140 Type = ELF::R_PPC64_TOC16; |
| 146 break; | 141 break; |
| 147 case MCSymbolRefExpr::VK_PPC_TOC16_LO: | 142 case MCSymbolRefExpr::VK_PPC_TOC16_LO: |
| 148 Type = ELF::R_PPC64_TOC16_LO; | 143 Type = ELF::R_PPC64_TOC16_LO; |
| 149 break; | 144 break; |
| 150 case MCSymbolRefExpr::VK_PPC_GOT_TLSGD16_LO: | 145 case MCSymbolRefExpr::VK_PPC_GOT_TLSGD16_LO: |
| 151 Type = ELF::R_PPC64_GOT_TLSGD16_LO; | 146 Type = ELF::R_PPC64_GOT_TLSGD16_LO; |
| 152 break; | 147 break; |
| 153 case MCSymbolRefExpr::VK_PPC_GOT_TLSLD16_LO: | 148 case MCSymbolRefExpr::VK_PPC_GOT_TLSLD16_LO: |
| 154 Type = ELF::R_PPC64_GOT_TLSLD16_LO; | 149 Type = ELF::R_PPC64_GOT_TLSLD16_LO; |
| 155 break; | 150 break; |
| 156 } | 151 } |
| 157 break; | 152 break; |
| 158 case PPC::fixup_ppc_lo16_ds: | 153 case PPC::fixup_ppc_lo16_ds: |
| 159 switch (Modifier) { | 154 switch (Modifier) { |
| 160 default: llvm_unreachable("Unsupported Modifier"); | 155 default: llvm_unreachable("Unsupported Modifier"); |
| 161 case MCSymbolRefExpr::VK_None: | 156 case MCSymbolRefExpr::VK_None: |
| 162 Type = ELF::R_PPC64_ADDR16_DS; | 157 Type = ELF::R_PPC64_ADDR16_DS; |
| 163 break; | 158 break; |
| 164 case MCSymbolRefExpr::VK_PPC_GAS_LO16: | |
| 165 case MCSymbolRefExpr::VK_PPC_DARWIN_LO16: | |
| 166 Type = ELF::R_PPC64_ADDR16_LO_DS; | |
| 167 break; | |
| 168 case MCSymbolRefExpr::VK_PPC_TOC_ENTRY: | 159 case MCSymbolRefExpr::VK_PPC_TOC_ENTRY: |
| 169 Type = ELF::R_PPC64_TOC16_DS; | 160 Type = ELF::R_PPC64_TOC16_DS; |
| 170 break; | 161 break; |
| 171 case MCSymbolRefExpr::VK_PPC_TOC16_LO: | 162 case MCSymbolRefExpr::VK_PPC_TOC16_LO: |
| 172 Type = ELF::R_PPC64_TOC16_LO_DS; | 163 Type = ELF::R_PPC64_TOC16_LO_DS; |
| 173 break; | 164 break; |
| 174 case MCSymbolRefExpr::VK_PPC_GOT_TPREL16_LO: | 165 case MCSymbolRefExpr::VK_PPC_GOT_TPREL16_LO: |
| 175 Type = ELF::R_PPC64_GOT_TPREL16_LO_DS; | 166 Type = ELF::R_PPC64_GOT_TPREL16_LO_DS; |
| 176 break; | 167 break; |
| 177 } | 168 } |
| (...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 280 } | 271 } |
| 281 } | 272 } |
| 282 | 273 |
| 283 | 274 |
| 284 MCObjectWriter *llvm::createPPCELFObjectWriter(raw_ostream &OS, | 275 MCObjectWriter *llvm::createPPCELFObjectWriter(raw_ostream &OS, |
| 285 bool Is64Bit, | 276 bool Is64Bit, |
| 286 uint8_t OSABI) { | 277 uint8_t OSABI) { |
| 287 MCELFObjectTargetWriter *MOTW = new PPCELFObjectWriter(Is64Bit, OSABI); | 278 MCELFObjectTargetWriter *MOTW = new PPCELFObjectWriter(Is64Bit, OSABI); |
| 288 return createELFObjectWriter(MOTW, OS, /*IsLittleEndian=*/false); | 279 return createELFObjectWriter(MOTW, OS, /*IsLittleEndian=*/false); |
| 289 } | 280 } |
| OLD | NEW |