2001-10-24 Chris Demetriou <cgd@broadcom.com>
[external/binutils.git] / gas / testsuite / gas / mips / mips-gp32-fp32-pic.s
1
2         .sdata
3 shared: .word   11
4
5         .data
6 unshared:
7         .word   1
8         .word   2
9         .word   3
10         .word   4
11
12         .text
13         .ent    func
14 func:
15         .set noreorder
16         .cpload $25             # 0000 lui      gp,hi(_gp_disp)
17                                 # 0004 addiu    gp,gp,lo(_gp_disp)
18                                 # 0008 addu     gp,gp,t9
19         .set reorder
20         .cprestore 8            # 000c sw       gp,8(sp)
21         .cpadd $4               # 0010 addu     a0,a0,gp
22         li      $4, 0x12345678  # 0014 lui      a0,0x1234
23                                 # 0018 ori      a0,a0,0x5678
24         la      $4, shared      # 001c lw       a0,got(.sdata)(gp)
25                                 # 0020 nop
26                                 # 0024 addiu    a0,a0,lo(shared)
27         la      $4, unshared    # 0028 lw       a0,got(.data)(gp)
28                                 # 002c nop
29                                 # 0030 addiu    a0,a0,lo(unshared)
30         la      $4, end         # 0034 lw       a0,got(.text)(gp)
31                                 # 0038 nop
32                                 # 003c addiu    a0,a0,lo(end)
33         j       end             # 0040 b        end
34                                 # 0044 nop
35         jal     end             # 0048 lw       t9,got(.text)(gp)
36                                 # 004c nop
37                                 # 0050 addiu    t9,t9,lo(end)
38                                 # 0054 jalr     t9
39                                 # 0058 nop
40                                 # 005c lw       gp,8(sp)
41         lw      $4, shared      # 0060 lw       a0,got(.sdata)(gp)
42                                 # 0064 nop
43                                 # 0068 addiu    a0,a0,lo(shared)
44                                 # 006c lw       a0,(a0)
45         lw      $4, unshared    # 0070 lw       a0,got(.data)(gp)
46                                 # 0074 nop
47                                 # 0078 addiu    a0,a0,lo(unshared)
48                                 # 007c lw       a0,(a0)
49         lw      $4, end         # 0080 lw       a0,got(.text)(gp)
50                                 # 0084 nop
51                                 # 0088 addiu    a0,a0,lo(end)
52                                 # 008c lw       a0,(a0)
53         ld      $4, shared      # 0090 lw       at,got(.sdata)(gp)
54                                 # 0094 nop
55                                 # 0098 lw       a0,lo(shared)(at)
56                                 # 009c lw       a1,lo(shared)+4(at)
57         ld      $4, unshared    # 00a0 lw       at,got(.data)(gp)
58                                 # 00a4 nop
59                                 # 00a8 lw       a0,lo(unshared)(at)
60                                 # 00ac lw       a1,lo(unshared)+4(at)
61         ld      $4, end         # 00b0 lw       at,got(.text)(gp)
62                                 # 00b4 nop
63                                 # 00b8 lw       a0,lo(end)(at)
64                                 # 00bc lw       a1,lo(end)+4(at)
65         sw      $4, shared      # 00c0 lw       at,got(.sdata)(gp)
66                                 # 00c4 nop
67                                 # 00c8 addiu    at,at,lo(shared)
68                                 # 00cc sw       a0,0(at)
69         sw      $4, unshared    # 00d0 lw       at,got(.data)(gp)
70                                 # 00d4 nop
71                                 # 00d8 addiu    at,at,lo(unshared)
72                                 # 00dc sw       a0,0(at)
73         sd      $4, shared      # 00e0 lw       at,got(.sdata)(gp)
74                                 # 00e4 nop
75                                 # 00e8 sw       a0,lo(shared)(at)
76                                 # 00ec sw       a1,lo(shared)+4(at)
77         sd      $4, unshared    # 00f0 lw       at,got(.data)(gp)
78                                 # 00f4 nop
79                                 # 00f8 sw       a0,lo(unshared)(at)
80                                 # 00fc sw       a1,lo(unshared)+4(at)
81         ulh     $4, unshared    # 0100 lw       at,got(.data)(gp)
82                                 # 0104 nop
83                                 # 0108 addiu    at,at,lo(unshared)
84                                 # 010c lb       a0,0(at)
85                                 # 0110 lbu      at,1(at)
86                                 # 0114 sll      a0,a0,8
87                                 # 0118 or       a0,a0,at
88         ush     $4, unshared    # 011c lw       at,got(.data)(gp)
89                                 # 0120 nop
90                                 # 0124 addiu    at,at,lo(unshared)
91                                 # 0128 sb       a0,0(at)
92                                 # 012c srl      a0,a0,8
93                                 # 0130 sb       a0,1(at)
94                                 # 0134 lbu      at,0(at)
95                                 # 0138 sll      a0,a0,8
96                                 # 013c or       a0,a0,at
97         ulw     $4, unshared    # 0140 lw       at,got(.data)(gp)
98                                 # 0144 nop
99                                 # 0148 addiu    at,at,lo(unshared)
100                                 # 014c lwl      a0,0(at)
101                                 # 0150 lwr      a0,3(at)
102         usw     $4, unshared    # 0154 lw       at,got(.data)(gp)
103                                 # 0158 nop
104                                 # 015c addiu    at,at,lo(unshared)
105                                 # 0160 swl      a0,0(at)
106                                 # 0164 swr      a0,3(at)
107         li.d    $4, 1.0         # 0168 lui      a0,0x3ff0
108                                 # 016c move     a1,zero
109         li.d    $4, 1.9         # 0170 lw       at,got(.rodata)(gp)
110                                 # 0174 lw       a0,lo(F1.9)(at)
111                                 # 0178 lw       a1,lo(F1.9)+4(at)
112         li.d    $f0, 1.0        # 017c lui      at,0x3ff0
113                                 # 0180 mtc1     at,$f1
114                                 # 0184 mtc1     zero,$f0
115         li.d    $f0, 1.9        # 0188 lw       at,got(.rodata)(gp)
116                                 # 018c ldc1     $f0,lo(L1.9)(at)
117         seq     $4, $5, -100    # 0190 addiu    a0,a1,100
118                                 # 0194 sltiu    a0,a0,1
119         sne     $4, $5, -100    # 0198 addiu    a0,a1,100
120                                 # 019c sltu     a0,zero,a0
121         move    $4, $5          # 01a0 move     a0,a1
122
123 # Not available in 32-bit mode
124 #       dla     $4, shared
125 #       dla     $4, unshared
126 #       uld     $4, unshared
127 #       usd     $4, unshared
128
129 # Should produce warnings given -mgp32
130 #       bgt     $4, 0x7fffffff, end
131 #       bgtu    $4, 0xffffffff, end
132 #       ble     $4, 0x7fffffff, end
133 #       bleu    $4, 0xffffffff, end
134
135 # Should produce warnings given -mfp32
136 #       add.d   $f1, $f2, $f3
137
138         .end    func
139
140 end:
141
142 # Force at least 8 (non-delay-slot) zero bytes, to make 'objdump' print ...
143       .space  8