[ELF][MIPS] Add test case to check number of redundant entries in the local part...
authorSimon Atanasyan <simon@atanasyan.com>
Thu, 17 Mar 2016 12:36:00 +0000 (12:36 +0000)
committerSimon Atanasyan <simon@atanasyan.com>
Thu, 17 Mar 2016 12:36:00 +0000 (12:36 +0000)
llvm-svn: 263711

lld/test/ELF/mips-got-redundant.s [new file with mode: 0644]

diff --git a/lld/test/ELF/mips-got-redundant.s b/lld/test/ELF/mips-got-redundant.s
new file mode 100644 (file)
index 0000000..5a3d6f9
--- /dev/null
@@ -0,0 +1,56 @@
+# Check number of redundant entries in the local part of MIPS GOT.
+
+# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux %s -o %t.o
+# RUN: ld.lld %t.o -shared -o %t.so
+# RUN: llvm-readobj -mips-plt-got %t.so | FileCheck %s
+
+# REQUIRES: mips
+
+# CHECK:      Local entries [
+# CHECK-NEXT:   Entry {
+# CHECK-NEXT:     Address: 0x20008
+# CHECK-NEXT:     Access: -32744
+# CHECK-NEXT:     Initial: 0x30000
+#                          ^-- loc1
+# CHECK-NEXT:   }
+# CHECK-NEXT:   Entry {
+# CHECK-NEXT:     Address: 0x2000C
+# CHECK-NEXT:     Access: -32740
+# CHECK-NEXT:     Initial: 0x40000
+#                          ^-- loc2, loc3, loc4
+# CHECK-NEXT:   }
+# CHECK-NEXT:   Entry {
+# CHECK-NEXT:     Address: 0x20010
+# CHECK-NEXT:     Access: -32736
+# CHECK-NEXT:     Initial: 0x0
+# CHECK-NEXT:   }
+# CHECK-NEXT:   Entry {
+# CHECK-NEXT:     Address: 0x20014
+# CHECK-NEXT:     Access: -32732
+# CHECK-NEXT:     Initial: 0x0
+# CHECK-NEXT:   }
+# CHECK-NEXT: ]
+
+  .text
+  .globl  foo
+foo:
+  lw      $t0, %got(loc1)($gp)
+  addi    $t0, $t0, %lo(loc1)
+  lw      $t0, %got(loc2)($gp)
+  addi    $t0, $t0, %lo(loc2)
+  lw      $t0, %got(loc3)($gp)
+  addi    $t0, $t0, %lo(loc3)
+  lw      $t0, %got(loc4)($gp)
+  addi    $t0, $t0, %lo(loc4)
+
+  .section .data.1,"aw",%progbits
+loc1:
+  .space 0x10000
+loc2:
+  .word 0
+loc3:
+  .word 0
+
+  .section .data.2,"aw",%progbits
+loc4:
+  .word 0