diff options
author | Bruno Cardoso Lopes <bruno.cardoso@gmail.com> | 2009-07-18 20:52:11 +0000 |
---|---|---|
committer | Bruno Cardoso Lopes <bruno.cardoso@gmail.com> | 2009-07-18 20:52:11 +0000 |
commit | 617dd7baa6dfd3a7b5ee72ace37f6b6aeaa6006b (patch) | |
tree | 8163212cd30fad3f727b18b255eba3ce04d29899 | |
parent | f689fa185f8469f595222bff41b7e8f41bda2bef (diff) | |
download | external_llvm-617dd7baa6dfd3a7b5ee72ace37f6b6aeaa6006b.zip external_llvm-617dd7baa6dfd3a7b5ee72ace37f6b6aeaa6006b.tar.gz external_llvm-617dd7baa6dfd3a7b5ee72ace37f6b6aeaa6006b.tar.bz2 |
Use a better name for the label relocations while emitting them for Jump Tables
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76334 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/llvm/Target/TargetELFWriterInfo.h | 2 | ||||
-rw-r--r-- | lib/CodeGen/ELFCodeEmitter.cpp | 2 | ||||
-rw-r--r-- | lib/Target/X86/X86ELFWriterInfo.cpp | 5 | ||||
-rw-r--r-- | lib/Target/X86/X86ELFWriterInfo.h | 2 |
4 files changed, 6 insertions, 5 deletions
diff --git a/include/llvm/Target/TargetELFWriterInfo.h b/include/llvm/Target/TargetELFWriterInfo.h index dbcffe0..7eb5352 100644 --- a/include/llvm/Target/TargetELFWriterInfo.h +++ b/include/llvm/Target/TargetELFWriterInfo.h @@ -106,7 +106,7 @@ namespace llvm { /// getJumpTableRelocationTy - Returns the machine relocation type used /// to reference a jumptable. - virtual unsigned getJumpTableMachineRelocationTy() const = 0; + virtual unsigned getAbsoluteLabelMachineRelTy() const = 0; }; } // end llvm namespace diff --git a/lib/CodeGen/ELFCodeEmitter.cpp b/lib/CodeGen/ELFCodeEmitter.cpp index 6e6ba8e..6e50246 100644 --- a/lib/CodeGen/ELFCodeEmitter.cpp +++ b/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/lib/Target/X86/X86ELFWriterInfo.cpp b/lib/Target/X86/X86ELFWriterInfo.cpp index 4002e26..4e4b6f1 100644 --- a/lib/Target/X86/X86ELFWriterInfo.cpp +++ b/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/lib/Target/X86/X86ELFWriterInfo.h b/lib/Target/X86/X86ELFWriterInfo.h index f372658..7782a5b 100644 --- a/lib/Target/X86/X86ELFWriterInfo.h +++ b/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 |