2206ae566594b8e6ea8ea636aa6a40b4f98def67
[external/binutils.git] / sim / testsuite / sim / aarch64 / fstur.s
1 # mach: aarch64
2
3 # Check the FP store unscaled offset instructions: fsturs, fsturd, fsturq.
4 # Check the values -1, and XXX_MAX, which tests all bits.
5 # Check with offsets -256 and 255, which tests all bits.
6 # Also tests the FP load unscaled offset instructions: fldurs, fldurd, fldurq.
7
8 .include "testutils.inc"
9
10         .data
11 fm1:
12         .word 3212836864
13 fmax:
14         .word 2139095039
15 ftmp:
16         .word 0
17
18 dm1:
19         .word 0
20         .word -1074790400
21 dmax:
22         .word 4294967295
23         .word 2146435071
24 dtmp:
25         .word 0
26         .word 0
27
28 ldm1:
29         .word   0
30         .word   0
31         .word   0
32         .word   -1073807360
33 ldmax:
34         .word   4294967295
35         .word   4294967295
36         .word   4294967295
37         .word   2147418111
38 ldtmp:
39         .word 0
40         .word 0
41         .word 0
42         .word 0
43
44         start
45         adrp x1, ftmp
46         add x1, x1, :lo12:ftmp
47
48         adrp x0, fm1
49         add x0, x0, :lo12:fm1
50         sub x5, x0, #255
51         sub x6, x1, #255
52         movi d2, #0
53         ldur s2, [x5, #255]
54         stur s2, [x6, #255]
55         ldr w3, [x0]
56         ldr w4, [x1]
57         cmp w3, w4
58         bne .Lfailure
59
60         adrp x0, fmax
61         add x0, x0, :lo12:fmax
62         add x5, x0, #256
63         add x6, x1, #256
64         movi d2, #0
65         ldur s2, [x5, #-256]
66         stur s2, [x6, #-256]
67         ldr w3, [x0]
68         ldr w4, [x1]
69         cmp w3, w4
70         bne .Lfailure
71
72         adrp x1, dtmp
73         add x1, x1, :lo12:dtmp
74
75         adrp x0, dm1
76         add x0, x0, :lo12:dm1
77         sub x5, x0, #255
78         sub x6, x1, #255
79         movi d2, #0
80         ldur d2, [x5, #255]
81         stur d2, [x6, #255]
82         ldr x3, [x0]
83         ldr x4, [x1]
84         cmp x3, x4
85         bne .Lfailure
86
87         adrp x0, dmax
88         add x0, x0, :lo12:dmax
89         add x5, x0, #256
90         add x6, x1, #256
91         movi d2, #0
92         ldur d2, [x5, #-256]
93         stur d2, [x6, #-256]
94         ldr x3, [x0]
95         ldr x4, [x1]
96         cmp x3, x4
97         bne .Lfailure
98
99         adrp x1, ldtmp
100         add x1, x1, :lo12:ldtmp
101
102         adrp x0, ldm1
103         add x0, x0, :lo12:ldm1
104         sub x5, x0, #255
105         sub x6, x1, #255
106         movi v2.2d, #0
107         ldur q2, [x5, #255]
108         stur q2, [x6, #255]
109         ldr x3, [x0]
110         ldr x4, [x1]
111         cmp x3, x4
112         bne .Lfailure
113         ldr x3, [x0, 8]
114         ldr x4, [x1, 8]
115         cmp x3, x4
116         bne .Lfailure
117
118         adrp x0, ldmax
119         add x0, x0, :lo12:ldmax
120         add x5, x0, #256
121         add x6, x1, #256
122         movi v2.2d, #0
123         ldur q2, [x5, #-256]
124         stur q2, [x6, #-256]
125         ldr x3, [x0]
126         ldr x4, [x1]
127         cmp x3, x4
128         bne .Lfailure
129         ldr x3, [x0, 8]
130         ldr x4, [x1, 8]
131         cmp x3, x4
132         bne .Lfailure
133
134         pass
135 .Lfailure:
136         fail