diff options
| author | George Rimar <grimar@accesssoftek.com> | 2018-02-20 10:17:57 +0000 |
|---|---|---|
| committer | George Rimar <grimar@accesssoftek.com> | 2018-02-20 10:17:57 +0000 |
| commit | da4f43a4b4987f4b207b3ecee6bf67a9f5761c81 (patch) | |
| tree | c11eb14e1b86924d37fc608556d42d8cfc956197 /llvm/test/MC | |
| parent | 65d2d5bad4ee0db2c824ebd7faec75df401c4056 (diff) | |
| download | bcm5719-llvm-da4f43a4b4987f4b207b3ecee6bf67a9f5761c81.tar.gz bcm5719-llvm-da4f43a4b4987f4b207b3ecee6bf67a9f5761c81.zip | |
[llvm-mc] - Produce R_X86_64_PLT32 for "call/jmp foo".
For instructions like call foo and jmp foo patch changes
relocation produced from R_X86_64_PC32 to R_X86_64_PLT32.
Relocation can be used as a marker for 32-bit PC-relative branches.
Linker will reduce PLT32 relocation to PC32 if function is defined locally.
Differential revision: https://reviews.llvm.org/D43383
llvm-svn: 325569
Diffstat (limited to 'llvm/test/MC')
| -rw-r--r-- | llvm/test/MC/ELF/basic-elf-64.s | 18 | ||||
| -rw-r--r-- | llvm/test/MC/ELF/ifunc-reloc.s | 2 | ||||
| -rw-r--r-- | llvm/test/MC/ELF/weak-diff.s | 2 | ||||
| -rw-r--r-- | llvm/test/MC/ELF/weak-relocation.s | 2 | ||||
| -rw-r--r-- | llvm/test/MC/ELF/weakref-reloc.s | 2 |
5 files changed, 14 insertions, 12 deletions
diff --git a/llvm/test/MC/ELF/basic-elf-64.s b/llvm/test/MC/ELF/basic-elf-64.s index 01f020bd64b..ae0903ec8cd 100644 --- a/llvm/test/MC/ELF/basic-elf-64.s +++ b/llvm/test/MC/ELF/basic-elf-64.s @@ -13,6 +13,7 @@ main: # @main callq puts xorl %eax, %eax addq $8, %rsp + call foo@GOTPCREL ret .Ltmp0: .size main, .Ltmp0-main @@ -44,14 +45,15 @@ main: # @main // CHECK: Name: .rela.text -// CHECK: Relocations [ -// CHECK: Section {{.*}} .rela.text { -// CHECK: 0x5 R_X86_64_32 .rodata.str1.1 0x0 -// CHECK: 0xA R_X86_64_PC32 puts 0xFFFFFFFFFFFFFFFC -// CHECK: 0xF R_X86_64_32 .rodata.str1.1 0x6 -// CHECK: 0x14 R_X86_64_PC32 puts 0xFFFFFFFFFFFFFFFC -// CHECK: } -// CHECK: ] +// CHECK: Relocations [ +// CHECK: Section {{.*}} .rela.text { +// CHECK-NEXT: 0x5 R_X86_64_32 .rodata.str1.1 0x0 +// CHECK-NEXT: 0xA R_X86_64_PLT32 puts 0xFFFFFFFFFFFFFFFC +// CHECK-NEXT: 0xF R_X86_64_32 .rodata.str1.1 0x6 +// CHECK-NEXT: 0x14 R_X86_64_PLT32 puts 0xFFFFFFFFFFFFFFFC +// CHECK-NEXT: 0x1F R_X86_64_GOTPCREL foo 0xFFFFFFFFFFFFFFFC +// CHECK-NEXT: } +// CHECK-NEXT: ] // CHECK: Symbol { // CHECK: Binding: Local diff --git a/llvm/test/MC/ELF/ifunc-reloc.s b/llvm/test/MC/ELF/ifunc-reloc.s index 6f1d79b22c4..b4917371b0f 100644 --- a/llvm/test/MC/ELF/ifunc-reloc.s +++ b/llvm/test/MC/ELF/ifunc-reloc.s @@ -11,6 +11,6 @@ alias: // CHECK: Relocations [ // CHECK-NEXT: Section {{.*}} .rela.text { -// CHECK-NEXT: 0x1 R_X86_64_PC32 sym 0xFFFFFFFFFFFFFFFC +// CHECK-NEXT: 0x1 R_X86_64_PLT32 sym 0xFFFFFFFFFFFFFFFC // CHECK-NEXT: } // CHECK-NEXT: ] diff --git a/llvm/test/MC/ELF/weak-diff.s b/llvm/test/MC/ELF/weak-diff.s index ded89b8f833..9785a2befb1 100644 --- a/llvm/test/MC/ELF/weak-diff.s +++ b/llvm/test/MC/ELF/weak-diff.s @@ -2,7 +2,7 @@ // CHECK: Relocations [ // CHECK-NEXT: Section ({{.*}}) .rela.text { -// CHECK-NEXT: 0x1D R_X86_64_PC32 f2 0xFFFFFFFFFFFFFFFC +// CHECK-NEXT: 0x1D R_X86_64_PLT32 f2 0xFFFFFFFFFFFFFFFC // CHECK-NEXT: } // CHECK-NEXT: ] diff --git a/llvm/test/MC/ELF/weak-relocation.s b/llvm/test/MC/ELF/weak-relocation.s index 19153aa50da..defaf4e6a38 100644 --- a/llvm/test/MC/ELF/weak-relocation.s +++ b/llvm/test/MC/ELF/weak-relocation.s @@ -9,6 +9,6 @@ bar: // CHECK: Relocations [ // CHECK-NEXT: Section ({{[0-9]+}}) .rela.text { -// CHECK-NEXT: 0x1 R_X86_64_PC32 foo 0xFFFFFFFFFFFFFFFC +// CHECK-NEXT: 0x1 R_X86_64_PLT32 foo 0xFFFFFFFFFFFFFFFC // CHECK-NEXT: } // CHECK-NEXT: ] diff --git a/llvm/test/MC/ELF/weakref-reloc.s b/llvm/test/MC/ELF/weakref-reloc.s index baf80060c43..997aea0477a 100644 --- a/llvm/test/MC/ELF/weakref-reloc.s +++ b/llvm/test/MC/ELF/weakref-reloc.s @@ -9,6 +9,6 @@ // CHECK: Relocations [ // CHECK-NEXT: Section ({{[0-9]+}}) {{[^ ]+}} { // CHECK-NEXT: 0x1 R_X86_64_PLT32 zed 0xFFFFFFFFFFFFFFFC -// CHECK-NEXT: 0x6 R_X86_64_PC32 foo 0xFFFFFFFFFFFFFFFC +// CHECK-NEXT: 0x6 R_X86_64_PLT32 foo 0xFFFFFFFFFFFFFFFC // CHECK-NEXT: } // CHECK-NEXT: ] |

