diff options
| author | Rafael Espindola <rafael.espindola@gmail.com> | 2015-03-18 17:33:40 +0000 |
|---|---|---|
| committer | Rafael Espindola <rafael.espindola@gmail.com> | 2015-03-18 17:33:40 +0000 |
| commit | 38438bae21aee9bc24276d31f5b3eede81ac1a1d (patch) | |
| tree | 4763114b19e4d90a317a9cbf386b7eb0e2e6d3f1 /llvm | |
| parent | 5d7e8fcd5297169b461f2465470f620b2dd9f9c9 (diff) | |
| download | bcm5719-llvm-38438bae21aee9bc24276d31f5b3eede81ac1a1d.tar.gz bcm5719-llvm-38438bae21aee9bc24276d31f5b3eede81ac1a1d.zip | |
Handle X86::reloc_riprel_4byte in 32 bits mode.
We can get there with .code64.
Fixes pr22349.
llvm-svn: 232651
Diffstat (limited to 'llvm')
| -rw-r--r-- | llvm/lib/Target/X86/MCTargetDesc/X86ELFObjectWriter.cpp | 1 | ||||
| -rw-r--r-- | llvm/test/MC/ELF/relocation-386.s | 4 |
2 files changed, 5 insertions, 0 deletions
diff --git a/llvm/lib/Target/X86/MCTargetDesc/X86ELFObjectWriter.cpp b/llvm/lib/Target/X86/MCTargetDesc/X86ELFObjectWriter.cpp index 569b811e5f4..172887a48ec 100644 --- a/llvm/lib/Target/X86/MCTargetDesc/X86ELFObjectWriter.cpp +++ b/llvm/lib/Target/X86/MCTargetDesc/X86ELFObjectWriter.cpp @@ -191,6 +191,7 @@ unsigned X86ELFObjectWriter::GetRelocType(const MCValue &Target, } break; + case X86::reloc_riprel_4byte: case X86::reloc_signed_4byte: case FK_PCRel_4: case FK_Data_4: diff --git a/llvm/test/MC/ELF/relocation-386.s b/llvm/test/MC/ELF/relocation-386.s index 83c524b9d07..39abcedba5e 100644 --- a/llvm/test/MC/ELF/relocation-386.s +++ b/llvm/test/MC/ELF/relocation-386.s @@ -65,6 +65,7 @@ // CHECK-NEXT: 0xA3 R_386_GOTOFF und_symbol 0x0 // Relocation 29 (zed@PLT) is of type R_386_PLT32 and uses the symbol // CHECK-NEXT: 0xA9 R_386_PLT32 zed 0x0 +// CHECK-NEXT: 0xAF R_386_PC32 tr_start 0x0 // CHECK-NEXT: } // CHECK-NEXT: ] @@ -133,6 +134,9 @@ bar2: leal 1 + und_symbol@GOTOFF, %edi movl zed@PLT(%eax), %eax + .code64 + jmpq *tr_start(%rip) + .section zedsec,"awT",@progbits zed: .long 0 |

