xref: /netbsd-src/external/gpl3/gdb/dist/sim/testsuite/sh/pswap.s (revision 4b169a6ba595ae283ca507b26b15fdff40495b1c)
1# sh testcase for pswap
2# mach: shdsp
3# as(shdsp):	-defsym sim_cpu=1 -dsp
4
5	.include "testutils.inc"
6
7	start
8
9pswapx:
10	set_grs_a5a5
11	lds	r0, a0
12	pcopy	a0, a1
13	lds	r0, x0
14	lds	r0, x1
15	lds	r0, y0
16	lds	r0, y1
17	pcopy	x0, m0
18	pcopy	y1, m1
19
20	set_greg	0xa5a57777, r0
21	lds	r0, x0
22	pswap	x0, y0
23	assert_sreg	0x7777a5a5, y0
24
25	set_greg	0xa5a5a5a5, r0
26	test_grs_a5a5
27	assert_sreg	0xa5a57777, x0
28	assert_sreg	0xa5a5a5a5, x1
29	assert_sreg	0xa5a5a5a5, y1
30	assert_sreg	0xa5a5a5a5, a0
31	assert_sreg2	0xa5a5a5a5, a1
32	assert_sreg2	0xa5a5a5a5, m0
33	assert_sreg2	0xa5a5a5a5, m1
34
35pswapy:
36	set_grs_a5a5
37	lds	r0, a0
38	pcopy	a0, a1
39	lds	r0, x0
40	lds	r0, x1
41	lds	r0, y0
42	lds	r0, y1
43	pcopy	x0, m0
44	pcopy	y1, m1
45
46	set_greg	0xa5a57777, r0
47	lds	r0, y0
48	pswap	y0, x0
49	assert_sreg	0x7777a5a5, x0
50
51	set_greg	0xa5a5a5a5, r0
52	test_grs_a5a5
53	assert_sreg	0xa5a57777, y0
54	assert_sreg	0xa5a5a5a5, x1
55	assert_sreg	0xa5a5a5a5, y1
56	assert_sreg	0xa5a5a5a5, a0
57	assert_sreg2	0xa5a5a5a5, a1
58	assert_sreg2	0xa5a5a5a5, m0
59	assert_sreg2	0xa5a5a5a5, m1
60
61pswapa:
62	set_grs_a5a5
63	lds	r0, a0
64	pcopy	a0, a1
65	lds	r0, x0
66	lds	r0, x1
67	lds	r0, y0
68	lds	r0, y1
69	pcopy	x0, m0
70	pcopy	y1, m1
71
72	set_greg	0xa5a57777, r0
73	lds	r0, a0
74	pcopy	a0, a1
75	pswap	a1, y0
76	assert_sreg	0x7777a5a5, y0
77
78	set_greg	0xa5a5a5a5, r0
79	test_grs_a5a5
80	assert_sreg	0xa5a57777, a0
81	assert_sreg2	0xa5a57777, a1
82	assert_sreg	0xa5a5a5a5, x0
83	assert_sreg	0xa5a5a5a5, x1
84	assert_sreg	0xa5a5a5a5, y1
85	assert_sreg2	0xa5a5a5a5, m0
86	assert_sreg2	0xa5a5a5a5, m1
87
88pswapm:
89	set_grs_a5a5
90	lds	r0, a0
91	pcopy	a0, a1
92	lds	r0, x0
93	lds	r0, x1
94	lds	r0, y0
95	lds	r0, y1
96	pcopy	x0, m0
97	pcopy	y1, m1
98
99	set_greg	0xa5a57777, r0
100	lds	r0, a0
101	pcopy	a0, m1
102	pswap	m1, y0
103	assert_sreg	0x7777a5a5, y0
104
105	set_greg	0xa5a5a5a5, r0
106	test_grs_a5a5
107	assert_sreg	0xa5a57777, a0
108	assert_sreg2	0xa5a57777, m1
109	assert_sreg	0xa5a5a5a5, x0
110	assert_sreg	0xa5a5a5a5, x1
111	assert_sreg	0xa5a5a5a5, y1
112	assert_sreg2	0xa5a5a5a5, a1
113	assert_sreg2	0xa5a5a5a5, m0
114
115
116dct_pswapx:
117	set_grs_a5a5
118	lds	r0, a0
119	pcopy	a0, a1
120	lds	r0, x0
121	lds	r0, x1
122	lds	r0, y0
123	lds	r0, y1
124	pcopy	x0, m0
125	pcopy	y1, m1
126
127	set_greg	0xa5a57777, r0
128	lds	r0, x0
129	set_dcfalse
130	dct	pswap	x0, y0
131	assert_sreg	0xa5a5a5a5, y0
132	set_dctrue
133	dct	pswap	x0, y0
134	assert_sreg	0x7777a5a5, y0
135
136	set_greg	0xa5a5a5a5, r0
137	test_grs_a5a5
138	assert_sreg	0xa5a57777, x0
139	assert_sreg	0xa5a5a5a5, x1
140	assert_sreg	0xa5a5a5a5, y1
141	assert_sreg	0xa5a5a5a5, a0
142	assert_sreg2	0xa5a5a5a5, a1
143	assert_sreg2	0xa5a5a5a5, m0
144	assert_sreg2	0xa5a5a5a5, m1
145
146dcf_pswapy:
147	set_grs_a5a5
148	lds	r0, a0
149	pcopy	a0, a1
150	lds	r0, x0
151	lds	r0, x1
152	lds	r0, y0
153	lds	r0, y1
154	pcopy	x0, m0
155	pcopy	y1, m1
156
157	set_greg	0xa5a57777, r0
158	lds	r0, x0
159	set_dctrue
160	dcf	pswap	x0, y0
161	assert_sreg	0xa5a5a5a5, y0
162	set_dcfalse
163	dcf	pswap	x0, y0
164	assert_sreg	0x7777a5a5, y0
165
166	set_greg	0xa5a5a5a5, r0
167	test_grs_a5a5
168	assert_sreg	0xa5a57777, x0
169	assert_sreg	0xa5a5a5a5, x1
170	assert_sreg	0xa5a5a5a5, y1
171	assert_sreg	0xa5a5a5a5, a0
172	assert_sreg2	0xa5a5a5a5, a1
173	assert_sreg2	0xa5a5a5a5, m0
174	assert_sreg2	0xa5a5a5a5, m1
175
176	pass
177	exit 0
178