]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - test/elf/Mips/plt-entry-r6.test
Vendor import of lld trunk r233088:
[FreeBSD/FreeBSD.git] / test / elf / Mips / plt-entry-r6.test
1 # REQUIRES: mips
2
3 # Check generation of PLT entries in case of R6 target ABI.
4
5 # Build shared library
6 # RUN: yaml2obj -format=elf -docnum 1 %s > %t-so.o
7 # RUN: lld -flavor gnu -target mipsel -shared -o %t.so %t-so.o
8
9 # Build executable
10 # RUN: yaml2obj -format=elf -docnum 2 %s > %t-o.o
11 # RUN: lld -flavor gnu -target mipsel -e T0 -o %t.exe %t-o.o %t.so
12 # RUN: llvm-objdump -d %t.exe | FileCheck %s
13
14 # CHECK:      Disassembly of section .plt:
15 # CHECK-NEXT: .plt:
16 # CHECK-NEXT:   400160:   40 00 1c 3c   lui     $gp, 64
17 # CHECK-NEXT:   400164:   00 20 99 8f   lw      $25, 8192($gp)
18 # CHECK-NEXT:   400168:   00 20 9c 27   addiu   $gp, $gp, 8192
19 # CHECK-NEXT:   40016c:   23 c0 1c 03   subu    $24, $24, $gp
20 # CHECK-NEXT:   400170:   21 78 e0 03   move    $15, $ra
21 # CHECK-NEXT:   400174:   82 c0 18 00   srl     $24, $24, 2
22 # CHECK-NEXT:   400178:   09 f8 20 03   jalr    $25
23 # CHECK-NEXT:   40017c:   fe ff 18 27   addiu   $24, $24, -2
24 # CHECK-NEXT:   400180:   40 00 0f 3c   lui     $15, 64
25 # CHECK-NEXT:   400184:   08 20 f9 8d   lw      $25, 8200($15)
26 # CHECK-NEXT:   400188:   09 00 20 03   jr      $25
27 # CHECK-NEXT:   40018c:   08 20 f8 25   addiu   $24, $15, 8200
28
29 # so.o
30 ---
31 FileHeader:
32   Class:   ELFCLASS32
33   Data:    ELFDATA2LSB
34   Type:    ET_REL
35   Machine: EM_MIPS
36   Flags:   [EF_MIPS_PIC, EF_MIPS_CPIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32R6]
37
38 Sections:
39   - Name:         .text
40     Type:         SHT_PROGBITS
41     Size:         0x0C
42     AddressAlign: 16
43     Flags:        [SHF_EXECINSTR, SHF_ALLOC]
44
45 Symbols:
46   Global:
47     - Name:    T1
48       Section: .text
49       Type:    STT_FUNC
50       Value:   0x0
51       Size:    4
52
53 # o.o
54 ---
55 FileHeader:
56   Class:   ELFCLASS32
57   Data:    ELFDATA2LSB
58   Type:    ET_REL
59   Machine: EM_MIPS
60   Flags:   [EF_MIPS_CPIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32R6]
61
62 Sections:
63 - Name:         .text
64   Type:         SHT_PROGBITS
65   Content:      "0000000C00000000"
66   AddressAlign: 16
67   Flags:        [SHF_EXECINSTR, SHF_ALLOC]
68
69 - Name:         .data
70   Type:         SHT_PROGBITS
71   Size:         0x08
72   AddressAlign: 16
73   Flags:        [SHF_WRITE, SHF_ALLOC]
74
75 - Name:         .rel.text
76   Type:         SHT_REL
77   Info:         .text
78   AddressAlign: 4
79   Relocations:
80     - Offset: 0x0
81       Symbol: T1
82       Type:   R_MIPS_26
83
84 - Name:         .rel.data
85   Type:         SHT_REL
86   Info:         .data
87   AddressAlign: 4
88   Relocations:
89     - Offset: 0x00
90       Symbol: T1
91       Type:   R_MIPS_HI16
92     - Offset: 0x00
93       Symbol: T1
94       Type:   R_MIPS_LO16
95
96 Symbols:
97   Global:
98     - Name:    T0
99       Section: .text
100       Type:    STT_FUNC
101       Value:   0x0
102       Size:    0x8
103     - Name:    D0
104       Section: .data
105       Type:    STT_OBJECT
106       Value:   0x0
107       Size:    8
108     - Name:    T1
109 ...