diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2010-11-28 14:17:56 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2010-11-28 14:17:56 +0000 |
commit | e04ed7e45f194f14a7b28bbf3f55694d8e2bcf80 (patch) | |
tree | 854092273f97215528c062e83ee8d5ef3ff4eff4 /lib/MC/ELFObjectWriter.cpp | |
parent | 9a08ca318e63912e4c19977abc1173f30866b704 (diff) |
Define generic 1, 2 and 4 byte pc relative relocations. They are common
and at least the 4 byte one will be needed to implement the .cfi_* directives.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120240 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/MC/ELFObjectWriter.cpp')
-rw-r--r-- | lib/MC/ELFObjectWriter.cpp | 26 |
1 files changed, 15 insertions, 11 deletions
diff --git a/lib/MC/ELFObjectWriter.cpp b/lib/MC/ELFObjectWriter.cpp index 3b649dbbd2..4b978368ec 100644 --- a/lib/MC/ELFObjectWriter.cpp +++ b/lib/MC/ELFObjectWriter.cpp @@ -31,7 +31,6 @@ #include "../Target/X86/X86FixupKinds.h" #include "../Target/ARM/ARMFixupKinds.h" -#include "../Target/MBlaze/MBlazeFixupKinds.h" #include <vector> using namespace llvm; @@ -371,8 +370,9 @@ namespace { switch (Kind) { default: return false; - case X86::reloc_pcrel_1byte: - case X86::reloc_pcrel_4byte: + case FK_PCRel_1: + case FK_PCRel_2: + case FK_PCRel_4: case X86::reloc_riprel_4byte: case X86::reloc_riprel_4byte_movq_load: return true; @@ -401,6 +401,9 @@ namespace { switch (Kind) { default: return false; + case FK_PCRel_1: + case FK_PCRel_2: + case FK_PCRel_4: case ARM::fixup_arm_pcrel_12: case ARM::fixup_arm_vfp_pcrel_12: case ARM::fixup_arm_branch: @@ -429,8 +432,9 @@ namespace { switch (Kind) { default: return false; - case MBlaze::reloc_pcrel_2byte: - case MBlaze::reloc_pcrel_4byte: + case FK_PCRel_1: + case FK_PCRel_2: + case FK_PCRel_4: return true; } } @@ -1509,10 +1513,10 @@ void MBlazeELFObjectWriter::RecordRelocation(const MCAssembler &Asm, switch ((unsigned)Fixup.getKind()) { default: llvm_unreachable("Unimplemented"); - case MBlaze::reloc_pcrel_4byte: + case FK_PCRel_4: Type = ELF::R_MICROBLAZE_64_PCREL; break; - case MBlaze::reloc_pcrel_2byte: + case FK_PCRel_2: Type = ELF::R_MICROBLAZE_32_PCREL; break; } @@ -1644,7 +1648,7 @@ void X86ELFObjectWriter::RecordRelocation(const MCAssembler &Asm, default: llvm_unreachable("invalid fixup kind!"); case FK_Data_8: Type = ELF::R_X86_64_64; break; case X86::reloc_signed_4byte: - case X86::reloc_pcrel_4byte: + case FK_PCRel_4: assert(isInt<32>(Target.getConstant())); switch (Modifier) { default: @@ -1670,7 +1674,7 @@ void X86ELFObjectWriter::RecordRelocation(const MCAssembler &Asm, Type = ELF::R_X86_64_32; break; case FK_Data_2: Type = ELF::R_X86_64_16; break; - case X86::reloc_pcrel_1byte: + case FK_PCRel_1: case FK_Data_1: Type = ELF::R_X86_64_8; break; } } @@ -1697,7 +1701,7 @@ void X86ELFObjectWriter::RecordRelocation(const MCAssembler &Asm, // FIXME: Should we avoid selecting reloc_signed_4byte in 32 bit mode // instead? case X86::reloc_signed_4byte: - case X86::reloc_pcrel_4byte: + case FK_PCRel_4: case FK_Data_4: switch (Modifier) { default: @@ -1735,7 +1739,7 @@ void X86ELFObjectWriter::RecordRelocation(const MCAssembler &Asm, } break; case FK_Data_2: Type = ELF::R_386_16; break; - case X86::reloc_pcrel_1byte: + case FK_PCRel_1: case FK_Data_1: Type = ELF::R_386_8; break; } } |