MC: correct IMAGE_REL_ARM_MOV32T relocation emission
authorSaleem Abdulrasool <compnerd@compnerd.org>
Wed, 21 May 2014 23:17:56 +0000 (23:17 +0000)
committerSaleem Abdulrasool <compnerd@compnerd.org>
Wed, 21 May 2014 23:17:56 +0000 (23:17 +0000)
commitcba7ac7bda58e03d452f7e8ad73978744c101727
treef644098b3ff2f30cd9a4efb71bad44a22ceef99a
parent159ccc8f51f7cb090058cfd0dcb64453f5681606
MC: correct IMAGE_REL_ARM_MOV32T relocation emission

This corrects the emission of IMAGE_REL_ARM_MOV32T relocations.  Previously, we
were avoiding the high portion of the relocation too early.  If there was a
section-relative relocation with an offset greater than 16-bits (65535), you
would end up truncating the high order bits of the offset.  Allow the current
relocation representation to flow through out the MC layer to the object writer.
Use the new ability to restrict recorded relocations to avoid emitting the
relocation into the final object.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@209337 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/ARM/MCTargetDesc/ARMMCCodeEmitter.cpp
lib/Target/ARM/MCTargetDesc/ARMWinCOFFObjectWriter.cpp
test/MC/ARM/Windows/mov32t-range.s [new file with mode: 0644]