diff options
Diffstat (limited to 'test/ELF/mips-32.s')
-rw-r--r-- | test/ELF/mips-32.s | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/test/ELF/mips-32.s b/test/ELF/mips-32.s new file mode 100644 index 000000000000..7875c48d64d7 --- /dev/null +++ b/test/ELF/mips-32.s @@ -0,0 +1,78 @@ +# Check R_MIPS_32 relocation calculation. + +# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux %s -o %t-be.o +# RUN: ld.lld -shared %t-be.o -o %t-be.so +# RUN: llvm-objdump -t -s %t-be.so \ +# RUN: | FileCheck -check-prefix=SYM -check-prefix=BE %s +# RUN: llvm-readobj -r -dynamic-table -mips-plt-got %t-be.so \ +# RUN: | FileCheck -check-prefix=REL %s + +# RUN: llvm-mc -filetype=obj -triple=mipsel-unknown-linux %s -o %t-el.o +# RUN: ld.lld -shared %t-el.o -o %t-el.so +# RUN: llvm-objdump -t -s %t-el.so \ +# RUN: | FileCheck -check-prefix=SYM -check-prefix=EL %s +# RUN: llvm-readobj -r -dynamic-table -mips-plt-got %t-el.so \ +# RUN: | FileCheck -check-prefix=REL %s + +# REQUIRES: mips + + .globl __start +__start: + nop + + .data + .type v1,@object + .size v1,4 +v1: + .word 0 + + .globl v2 + .type v2,@object + .size v2,8 +v2: + .word v2+4 # R_MIPS_32 target v2 addend 4 + .word v1 # R_MIPS_32 target v1 addend 0 + +# BE: Contents of section .data: +# BE-NEXT: 30000 00000000 00000004 00030000 +# ^-- v2+4 ^-- v1 + +# EL: Contents of section .data: +# EL-NEXT: 30000 00000000 04000000 00000300 +# ^-- v2+4 ^-- v1 + +# SYM: SYMBOL TABLE: +# SYM: 00030000 l .data 00000004 v1 +# SYM: 00030004 g .data 00000008 v2 + +# REL: Relocations [ +# REL-NEXT: Section (7) .rel.dyn { +# REL-NEXT: 0x30008 R_MIPS_REL32 - 0x0 +# REL-NEXT: 0x30004 R_MIPS_REL32 v2 0x0 +# REL-NEXT: } +# REL-NEXT: ] + +# REL: DynamicSection [ +# REL: Tag Type Name/Value +# REL: 0x00000012 RELSZ 16 (bytes) +# REL: 0x00000013 RELENT 8 (bytes) + +# REL: Primary GOT { +# REL-NEXT: Canonical gp value: +# REL-NEXT: Reserved entries [ +# REL: ] +# REL-NEXT: Local entries [ +# REL-NEXT: ] +# REL-NEXT: Global entries [ +# REL-NEXT: Entry { +# REL-NEXT: Address: +# REL-NEXT: Access: +# REL-NEXT: Initial: 0x30004 +# REL-NEXT: Value: 0x30004 +# REL-NEXT: Type: Object +# REL-NEXT: Section: .data +# REL-NEXT: Name: v2 +# REL-NEXT: } +# REL-NEXT: ] +# REL-NEXT: Number of TLS and multi-GOT entries: 0 +# REL-NEXT: } |