[x86] Fix signed relocations for i64i32imm operands
authorDavid Woodhouse <dwmw2@infradead.org>
Thu, 30 Jan 2014 22:20:41 +0000 (22:20 +0000)
committerDavid Woodhouse <dwmw2@infradead.org>
Thu, 30 Jan 2014 22:20:41 +0000 (22:20 +0000)
commit93f81d9b33bf5f01c113b1558962a5112b987092
treef657e60d87fa49884d00e5c89594aead726a3863
parentfe7fa28084172f73aa0a29a65bf09152dc47a3ac
[x86] Fix signed relocations for i64i32imm operands

These should end up (in ELF) as R_X86_64_32S relocs, not R_X86_64_32.
Kill the horrid and incomplete special case and FIXME in
EncodeInstruction() and set things up so it can infer the signedness
from the ImmType just like it can the size and whether it's PC-relative.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@200495 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/MCTargetDesc/X86BaseInfo.h
lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp
lib/Target/X86/X86InstrArithmetic.td
lib/Target/X86/X86InstrFormats.td
lib/Target/X86/X86InstrInfo.td
test/MC/X86/x86_64-signed-reloc.s [new file with mode: 0644]