]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - test/elf/Mips/hilo16-3.test
Vendor import of lld trunk r233088:
[FreeBSD/FreeBSD.git] / test / elf / Mips / hilo16-3.test
1 # REQUIRES: mips
2
3 # Check handling of HI16 and LO16 relocations for _gp_disp.
4 #
5 # R_MIPS_HI16: (AHL + GP - P) - (short)(AHL + GP - P)
6 # R_MIPS_LO16: AHL + GP - P + 4
7 #   where AHL = (AHI << 16) + ALO
8 #
9 # RUN: llvm-mc -triple=mipsel -filetype=obj -o=%t-obj %s
10 # RUN: lld -flavor gnu -target mipsel -shared -o %t-so %t-obj
11 # RUN: llvm-objdump -t -disassemble %t-so | FileCheck %s
12
13 # CHECK: Disassembly of section .text:
14 # CHECK: glob1:
15 # CHECK-NEXT: {{[0-9a-f]+}}: 01 00 08 3c  lui     $8, 1
16 # CHECK-NEXT: {{[0-9a-f]+}}: 01 8f 08 85  lh      $8, -28927($8)
17 # CHECK-NEXT: {{[0-9a-f]+}}: 01 00 08 3c  lui     $8, 1
18 # CHECK-NEXT: {{[0-9a-f]+}}: f7 8e 08 85  lh      $8, -28937($8)
19 # CHECK-NEXT: {{[0-9a-f]+}}: 01 00 08 3c  lui     $8, 1
20 # CHECK-NEXT: {{[0-9a-f]+}}: ef 90 08 85  lh      $8, -28433($8)
21 # CHECK-NEXT: {{[0-9a-f]+}}: 01 00 08 3c  lui     $8, 1
22 # CHECK-NEXT: {{[0-9a-f]+}}: e9 8c 08 85  lh      $8, -29463($8)
23 # CHECK-NEXT: {{[0-9a-f]+}}: 03 00 08 3c  lui     $8, 3
24 # CHECK-NEXT: {{[0-9a-f]+}}: df 8e 08 85  lh      $8, -28961($8)
25
26 # CHECK: SYMBOL TABLE:
27 # CHECK: {{[0-9a-f]+}}  g F  .text  00000028 glob1
28 # CHECK: {{[0-9a-f]+}}  g    *ABS*  00000000 _gp_disp
29
30     .global glob1
31 glob1:
32     lui     $t0,%hi(_gp_disp+0x1)
33     lh      $t0,%lo(_gp_disp+0x1)($t0)
34
35     lui     $t0,%hi(_gp_disp+(-0x1))
36     lh      $t0,%lo(_gp_disp+(-0x1))($t0)
37
38     lui     $t0,%hi(_gp_disp+0x1ff)
39     lh      $t0,%lo(_gp_disp+0x1ff)($t0)
40
41     lui     $t0,%hi(_gp_disp+(-0x1ff))
42     lh      $t0,%lo(_gp_disp+(-0x1ff))($t0)
43
44     lui     $t0,%hi(_gp_disp+0x1ffff)
45     lh      $t0,%lo(_gp_disp+0x1ffff)($t0)