[llvm] r207109 - AArch64/ARM64: support relocated ADR instruction
Tim Northover
tnorthover at apple.com
Thu Apr 24 05:56:31 PDT 2014
Author: tnorthover
Date: Thu Apr 24 07:56:30 2014
New Revision: 207109
URL: http://llvm.org/viewvc/llvm-project?rev=207109&view=rev
Log:
AArch64/ARM64: support relocated ADR instruction
Modified:
llvm/trunk/lib/Target/ARM64/MCTargetDesc/ARM64ELFObjectWriter.cpp
llvm/trunk/test/MC/AArch64/elf-reloc-pcreladdressing.s
Modified: llvm/trunk/lib/Target/ARM64/MCTargetDesc/ARM64ELFObjectWriter.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM64/MCTargetDesc/ARM64ELFObjectWriter.cpp?rev=207109&r1=207108&r2=207109&view=diff
==============================================================================
--- llvm/trunk/lib/Target/ARM64/MCTargetDesc/ARM64ELFObjectWriter.cpp (original)
+++ llvm/trunk/lib/Target/ARM64/MCTargetDesc/ARM64ELFObjectWriter.cpp Thu Apr 24 07:56:30 2014
@@ -67,7 +67,8 @@ unsigned ARM64ELFObjectWriter::GetRelocT
case FK_Data_8:
return ELF::R_AARCH64_PREL64;
case ARM64::fixup_arm64_pcrel_adr_imm21:
- llvm_unreachable("No ELF relocations supported for ADR at the moment");
+ assert(SymLoc == ARM64MCExpr::VK_NONE && "unexpected ADR relocation");
+ return ELF::R_AARCH64_ADR_PREL_LO21;
case ARM64::fixup_arm64_pcrel_adrp_imm21:
if (SymLoc == ARM64MCExpr::VK_ABS && !IsNC)
return ELF::R_AARCH64_ADR_PREL_PG_HI21;
Modified: llvm/trunk/test/MC/AArch64/elf-reloc-pcreladdressing.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/AArch64/elf-reloc-pcreladdressing.s?rev=207109&r1=207108&r2=207109&view=diff
==============================================================================
--- llvm/trunk/test/MC/AArch64/elf-reloc-pcreladdressing.s (original)
+++ llvm/trunk/test/MC/AArch64/elf-reloc-pcreladdressing.s Thu Apr 24 07:56:30 2014
@@ -1,6 +1,9 @@
// RUN: llvm-mc -triple=aarch64-none-linux-gnu -filetype=obj %s -o - | \
// RUN: llvm-readobj -r | FileCheck -check-prefix=OBJ %s
+ // RUN: llvm-mc -triple=arm64-none-linux-gnu -filetype=obj %s -o - | \
+// RUN: llvm-readobj -r | FileCheck -check-prefix=OBJ %s
+
adr x2, some_label
adrp x5, some_label
More information about the llvm-commits
mailing list