diff options
Diffstat (limited to 'llvm/lib')
-rw-r--r-- | llvm/lib/CodeGen/ELFCodeEmitter.cpp | 2 | ||||
-rw-r--r-- | llvm/lib/Target/X86/X86ELFWriterInfo.cpp | 5 | ||||
-rw-r--r-- | llvm/lib/Target/X86/X86ELFWriterInfo.h | 2 |
3 files changed, 5 insertions, 4 deletions
diff --git a/llvm/lib/CodeGen/ELFCodeEmitter.cpp b/llvm/lib/CodeGen/ELFCodeEmitter.cpp index 6e6ba8ec6ac..6e502465942 100644 --- a/llvm/lib/CodeGen/ELFCodeEmitter.cpp +++ b/llvm/lib/CodeGen/ELFCodeEmitter.cpp @@ -185,7 +185,7 @@ void ELFCodeEmitter::emitJumpTables(MachineJumpTableInfo *MJTI) { // Each MBB entry in the Jump table section has a relocation entry // against the current text section. for (unsigned mi = 0, me = MBBs.size(); mi != me; ++mi) { - unsigned MachineRelTy = TEW->getJumpTableMachineRelocationTy(); + unsigned MachineRelTy = TEW->getAbsoluteLabelMachineRelTy(); MachineRelocation MR = MachineRelocation::getBB(JTSection.size(), MachineRelTy, diff --git a/llvm/lib/Target/X86/X86ELFWriterInfo.cpp b/llvm/lib/Target/X86/X86ELFWriterInfo.cpp index 4002e265304..4e4b6f1d917 100644 --- a/llvm/lib/Target/X86/X86ELFWriterInfo.cpp +++ b/llvm/lib/Target/X86/X86ELFWriterInfo.cpp @@ -102,7 +102,8 @@ unsigned X86ELFWriterInfo::getRelocationTySize(unsigned RelTy) const { return 0; } -unsigned X86ELFWriterInfo::getJumpTableMachineRelocationTy() const { - return X86::reloc_absolute_dword; +unsigned X86ELFWriterInfo::getAbsoluteLabelMachineRelTy() const { + return is64Bit ? + X86::reloc_absolute_dword : X86::reloc_absolute_word; } diff --git a/llvm/lib/Target/X86/X86ELFWriterInfo.h b/llvm/lib/Target/X86/X86ELFWriterInfo.h index f372658f706..7782a5b12fb 100644 --- a/llvm/lib/Target/X86/X86ELFWriterInfo.h +++ b/llvm/lib/Target/X86/X86ELFWriterInfo.h @@ -58,7 +58,7 @@ namespace llvm { /// getJumpTableRelocationTy - Returns the machine relocation type used /// to reference a jumptable. - virtual unsigned getJumpTableMachineRelocationTy() const; + virtual unsigned getAbsoluteLabelMachineRelTy() const; }; } // end llvm namespace |