diff options
author | Evan Cheng <evan.cheng@apple.com> | 2011-01-14 02:38:49 +0000 |
---|---|---|
committer | Evan Cheng <evan.cheng@apple.com> | 2011-01-14 02:38:49 +0000 |
commit | d4a5c05c97b8c70f062288116afdabcf4c532483 (patch) | |
tree | 0269c5d31863ba985192bbedf25d20c5590879d1 /llvm/lib/MC/ELFObjectWriter.cpp | |
parent | c38102889f56cc628a2d8f98ae34ec2d8a92c0d2 (diff) | |
download | bcm5719-llvm-d4a5c05c97b8c70f062288116afdabcf4c532483.tar.gz bcm5719-llvm-d4a5c05c97b8c70f062288116afdabcf4c532483.zip |
Completed :lower16: / :upper16: support for movw / movt pairs on Darwin.
- Fixed :upper16: fix up routine. It should be shifting down the top 16 bits first.
- Added support for Thumb2 :lower16: and :upper16: fix up.
- Added :upper16: and :lower16: relocation support to mach-o object writer.
llvm-svn: 123424
Diffstat (limited to 'llvm/lib/MC/ELFObjectWriter.cpp')
-rw-r--r-- | llvm/lib/MC/ELFObjectWriter.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/llvm/lib/MC/ELFObjectWriter.cpp b/llvm/lib/MC/ELFObjectWriter.cpp index d58cd48004b..9b344f77289 100644 --- a/llvm/lib/MC/ELFObjectWriter.cpp +++ b/llvm/lib/MC/ELFObjectWriter.cpp @@ -1508,6 +1508,14 @@ unsigned ARMELFObjectWriter::GetRelocType(const MCValue &Target, case ARM::fixup_arm_movw_lo16_pcrel: Type = ELF::R_ARM_MOVW_PREL_NC; break; + case ARM::fixup_t2_movt_hi16: + case ARM::fixup_t2_movt_hi16_pcrel: + Type = ELF::R_ARM_THM_MOVT_PREL; + break; + case ARM::fixup_t2_movw_lo16: + case ARM::fixup_t2_movw_lo16_pcrel: + Type = ELF::R_ARM_THM_MOVW_PREL_NC; + break; } } else { switch ((unsigned)Fixup.getKind()) { @@ -1555,6 +1563,12 @@ unsigned ARMELFObjectWriter::GetRelocType(const MCValue &Target, case ARM::fixup_arm_movw_lo16: Type = ELF::R_ARM_MOVW_ABS_NC; break; + case ARM::fixup_t2_movt_hi16: + Type = ELF::R_ARM_THM_MOVT_ABS; + break; + case ARM::fixup_t2_movw_lo16: + Type = ELF::R_ARM_THM_MOVW_ABS_NC; + break; } } |