Add support for binary encoding of ARM 'adr' instructions referencing constant

pool entries (LEApcrel pseudo). Ongoing saga of rdar://8542291.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120635 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Jim Grosbach
2010-12-02 00:28:45 +00:00
parent 317bafb82c
commit dff84b0325
7 changed files with 65 additions and 41 deletions

View File

@@ -408,7 +408,7 @@ namespace {
case FK_PCRel_1:
case FK_PCRel_2:
case FK_PCRel_4:
case ARM::fixup_arm_pcrel_12:
case ARM::fixup_arm_ldst_pcrel_12:
case ARM::fixup_arm_pcrel_10:
case ARM::fixup_arm_branch:
return true;
@@ -1456,8 +1456,9 @@ unsigned ARMELFObjectWriter::GetRelocType(const MCValue &Target,
} else {
switch ((unsigned)Fixup.getKind()) {
default: llvm_unreachable("invalid fixup kind!");
case ARM::fixup_arm_pcrel_12:
case ARM::fixup_arm_ldst_pcrel_12:
case ARM::fixup_arm_pcrel_10:
case ARM::fixup_arm_adr_pcrel_12:
assert(0 && "Unimplemented"); break;
case ARM::fixup_arm_branch:
return ELF::R_ARM_CALL; break;