xref: /netbsd-src/external/gpl3/gdb/dist/sim/testsuite/aarch64/fstur.s (revision 4b169a6ba595ae283ca507b26b15fdff40495b1c)
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	.align 4
12fm1:
13	.word 3212836864
14fmax:
15	.word 2139095039
16ftmp:
17	.word 0
18
19dm1:
20	.word 0
21	.word -1074790400
22dmax:
23	.word 4294967295
24	.word 2146435071
25dtmp:
26	.word 0
27	.word 0
28
29ldm1:
30	.word	0
31	.word	0
32	.word	0
33	.word	-1073807360
34ldmax:
35	.word	4294967295
36	.word	4294967295
37	.word	4294967295
38	.word	2147418111
39ldtmp:
40	.word 0
41	.word 0
42	.word 0
43	.word 0
44
45	start
46	adrp x1, ftmp
47	add x1, x1, :lo12:ftmp
48
49	adrp x0, fm1
50	add x0, x0, :lo12:fm1
51	sub x5, x0, #255
52	sub x6, x1, #255
53	movi d2, #0
54	ldur s2, [x5, #255]
55	stur s2, [x6, #255]
56	ldr w3, [x0]
57	ldr w4, [x1]
58	cmp w3, w4
59	bne .Lfailure
60
61	adrp x0, fmax
62	add x0, x0, :lo12:fmax
63	add x5, x0, #256
64	add x6, x1, #256
65	movi d2, #0
66	ldur s2, [x5, #-256]
67	stur s2, [x6, #-256]
68	ldr w3, [x0]
69	ldr w4, [x1]
70	cmp w3, w4
71	bne .Lfailure
72
73	adrp x1, dtmp
74	add x1, x1, :lo12:dtmp
75
76	adrp x0, dm1
77	add x0, x0, :lo12:dm1
78	sub x5, x0, #255
79	sub x6, x1, #255
80	movi d2, #0
81	ldur d2, [x5, #255]
82	stur d2, [x6, #255]
83	ldr x3, [x0]
84	ldr x4, [x1]
85	cmp x3, x4
86	bne .Lfailure
87
88	adrp x0, dmax
89	add x0, x0, :lo12:dmax
90	add x5, x0, #256
91	add x6, x1, #256
92	movi d2, #0
93	ldur d2, [x5, #-256]
94	stur d2, [x6, #-256]
95	ldr x3, [x0]
96	ldr x4, [x1]
97	cmp x3, x4
98	bne .Lfailure
99
100	adrp x1, ldtmp
101	add x1, x1, :lo12:ldtmp
102
103	adrp x0, ldm1
104	add x0, x0, :lo12:ldm1
105	sub x5, x0, #255
106	sub x6, x1, #255
107	movi v2.2d, #0
108	ldur q2, [x5, #255]
109	stur q2, [x6, #255]
110	ldr x3, [x0]
111	ldr x4, [x1]
112	cmp x3, x4
113	bne .Lfailure
114	ldr x3, [x0, 8]
115	ldr x4, [x1, 8]
116	cmp x3, x4
117	bne .Lfailure
118
119	adrp x0, ldmax
120	add x0, x0, :lo12:ldmax
121	add x5, x0, #256
122	add x6, x1, #256
123	movi v2.2d, #0
124	ldur q2, [x5, #-256]
125	stur q2, [x6, #-256]
126	ldr x3, [x0]
127	ldr x4, [x1]
128	cmp x3, x4
129	bne .Lfailure
130	ldr x3, [x0, 8]
131	ldr x4, [x1, 8]
132	cmp x3, x4
133	bne .Lfailure
134
135	pass
136.Lfailure:
137	fail
138