summaryrefslogtreecommitdiffstats
path: root/llvm/test/MC
diff options
context:
space:
mode:
authorGeorge Rimar <grimar@accesssoftek.com>2018-02-20 10:17:57 +0000
committerGeorge Rimar <grimar@accesssoftek.com>2018-02-20 10:17:57 +0000
commitda4f43a4b4987f4b207b3ecee6bf67a9f5761c81 (patch)
treec11eb14e1b86924d37fc608556d42d8cfc956197 /llvm/test/MC
parent65d2d5bad4ee0db2c824ebd7faec75df401c4056 (diff)
downloadbcm5719-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.s18
-rw-r--r--llvm/test/MC/ELF/ifunc-reloc.s2
-rw-r--r--llvm/test/MC/ELF/weak-diff.s2
-rw-r--r--llvm/test/MC/ELF/weak-relocation.s2
-rw-r--r--llvm/test/MC/ELF/weakref-reloc.s2
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: ]
OpenPOWER on IntegriCloud