[WinEH] Avoid infinite loop in BranchFolding for multiple single block funclets
[oota-llvm.git] / test / MC / Mips / elf-tls.s
1 // RUN: llvm-mc -filetype=obj -triple mipsel-unknown-linux %s -o - | llvm-readobj -r | FileCheck %s
2
3 // Check that the appropriate relocations were created.
4
5 // CHECK: Relocations [
6 // CHECK:   Section {{.*}} .rel.text {
7 // CHECK:     R_MIPS_TLS_LDM
8 // CHECK:     R_MIPS_TLS_DTPREL_HI16
9 // CHECK:     R_MIPS_TLS_DTPREL_LO16
10 // CHECK:   }
11 // CHECK: ]
12
13         .text
14         .abicalls
15         .section        .mdebug.abi32,"",@progbits
16         .file   "/home/espindola/llvm/llvm/test/MC/Mips/elf-tls.ll"
17         .text
18         .globl  f1
19         .align  2
20         .type   f1,@function
21         .set    nomips16
22         .ent    f1
23 f1:                                     # @f1
24         .frame  $sp,24,$ra
25         .mask   0x80000000,-4
26         .fmask  0x00000000,0
27         .set    noreorder
28         .set    nomacro
29         .set    noat
30 # BB#0:                                 # %entry
31         lui     $2, %hi(_gp_disp)
32         addiu   $2, $2, %lo(_gp_disp)
33         addiu   $sp, $sp, -24
34         sw      $ra, 20($sp)            # 4-byte Folded Spill
35         addu    $gp, $2, $25
36         lw      $25, %call16(__tls_get_addr)($gp)
37         jalr    $25
38         addiu   $4, $gp, %tlsgd(t1)
39         lw      $2, 0($2)
40         lw      $ra, 20($sp)            # 4-byte Folded Reload
41         jr      $ra
42         addiu   $sp, $sp, 24
43         .set    at
44         .set    macro
45         .set    reorder
46         .end    f1
47 $tmp0:
48         .size   f1, ($tmp0)-f1
49
50         .globl  f2
51         .align  2
52         .type   f2,@function
53         .set    nomips16
54         .ent    f2
55 f2:                                     # @f2
56         .frame  $sp,24,$ra
57         .mask   0x80000000,-4
58         .fmask  0x00000000,0
59         .set    noreorder
60         .set    nomacro
61         .set    noat
62 # BB#0:                                 # %entry
63         lui     $2, %hi(_gp_disp)
64         addiu   $2, $2, %lo(_gp_disp)
65         addiu   $sp, $sp, -24
66         sw      $ra, 20($sp)            # 4-byte Folded Spill
67         addu    $gp, $2, $25
68         lw      $25, %call16(__tls_get_addr)($gp)
69         jalr    $25
70         addiu   $4, $gp, %tlsgd(t2)
71         lw      $2, 0($2)
72         lw      $ra, 20($sp)            # 4-byte Folded Reload
73         jr      $ra
74         addiu   $sp, $sp, 24
75         .set    at
76         .set    macro
77         .set    reorder
78         .end    f2
79 $tmp1:
80         .size   f2, ($tmp1)-f2
81
82         .globl  f3
83         .align  2
84         .type   f3,@function
85         .set    nomips16
86         .ent    f3
87 f3:                                     # @f3
88         .frame  $sp,24,$ra
89         .mask   0x80000000,-4
90         .fmask  0x00000000,0
91         .set    noreorder
92         .set    nomacro
93         .set    noat
94 # BB#0:                                 # %entry
95         lui     $2, %hi(_gp_disp)
96         addiu   $2, $2, %lo(_gp_disp)
97         addiu   $sp, $sp, -24
98         sw      $ra, 20($sp)            # 4-byte Folded Spill
99         addu    $gp, $2, $25
100         lw      $25, %call16(__tls_get_addr)($gp)
101         jalr    $25
102         addiu   $4, $gp, %tlsldm(f3.i)
103         lui     $1, %dtprel_hi(f3.i)
104         addu    $1, $1, $2
105         lw      $2, %dtprel_lo(f3.i)($1)
106         addiu   $2, $2, 1
107         sw      $2, %dtprel_lo(f3.i)($1)
108         lw      $ra, 20($sp)            # 4-byte Folded Reload
109         jr      $ra
110         addiu   $sp, $sp, 24
111         .set    at
112         .set    macro
113         .set    reorder
114         .end    f3
115 $tmp2:
116         .size   f3, ($tmp2)-f3
117
118         .type   t1,@object              # @t1
119         .section        .tbss,"awT",@nobits
120         .globl  t1
121         .align  2
122 t1:
123         .4byte  0                       # 0x0
124         .size   t1, 4
125
126         .type   f3.i,@object            # @f3.i
127         .section        .tdata,"awT",@progbits
128         .align  2
129 f3.i:
130         .4byte  1                       # 0x1
131         .size   f3.i, 4
132
133
134         .text