diff options
author | Chris Lattner <sabre@nondot.org> | 2010-07-07 22:35:13 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2010-07-07 22:35:13 +0000 |
commit | 05ea2a4791a685c23100324b5abd6e0530ed9c25 (patch) | |
tree | ec215c49f3cccf21a658425f9be644afe52b9bf8 | |
parent | ac5881295c28926c0849b051f4ba50ca6d8a4a79 (diff) | |
download | bcm5719-llvm-05ea2a4791a685c23100324b5abd6e0530ed9c25.tar.gz bcm5719-llvm-05ea2a4791a685c23100324b5abd6e0530ed9c25.zip |
finish up support for callw: PR7195
llvm-svn: 107826
-rw-r--r-- | llvm/lib/MC/MachObjectWriter.cpp | 2 | ||||
-rw-r--r-- | llvm/lib/Target/X86/X86MCCodeEmitter.cpp | 2 |
2 files changed, 3 insertions, 1 deletions
diff --git a/llvm/lib/MC/MachObjectWriter.cpp b/llvm/lib/MC/MachObjectWriter.cpp index fbe068b58ec..7ca09511bde 100644 --- a/llvm/lib/MC/MachObjectWriter.cpp +++ b/llvm/lib/MC/MachObjectWriter.cpp @@ -33,6 +33,7 @@ static unsigned getFixupKindLog2Size(unsigned Kind) { default: llvm_unreachable("invalid fixup kind!"); case X86::reloc_pcrel_1byte: case FK_Data_1: return 0; + case X86::reloc_pcrel_2byte: case FK_Data_2: return 1; case X86::reloc_pcrel_4byte: case X86::reloc_riprel_4byte: @@ -47,6 +48,7 @@ static bool isFixupKindPCRel(unsigned Kind) { default: return false; case X86::reloc_pcrel_1byte: + case X86::reloc_pcrel_2byte: case X86::reloc_pcrel_4byte: case X86::reloc_riprel_4byte: case X86::reloc_riprel_4byte_movq_load: diff --git a/llvm/lib/Target/X86/X86MCCodeEmitter.cpp b/llvm/lib/Target/X86/X86MCCodeEmitter.cpp index 24c48fdd979..af1b4069936 100644 --- a/llvm/lib/Target/X86/X86MCCodeEmitter.cpp +++ b/llvm/lib/Target/X86/X86MCCodeEmitter.cpp @@ -201,7 +201,7 @@ EmitImmediate(const MCOperand &DispOp, unsigned Size, MCFixupKind FixupKind, FixupKind == MCFixupKind(X86::reloc_riprel_4byte_movq_load)) ImmOffset -= 4; if (FixupKind == MCFixupKind(X86::reloc_pcrel_2byte)) - ImmOffset -= 4;// FIXME: This should be 2, but 'as' produces an offset of 4. + ImmOffset -= 2; if (FixupKind == MCFixupKind(X86::reloc_pcrel_1byte)) ImmOffset -= 1; |