xref: /netbsd-src/external/gpl3/gdb/dist/sim/testsuite/sh/pshai.s (revision 4b169a6ba595ae283ca507b26b15fdff40495b1c)
1# sh testcase for psha <imm>
2# mach: shdsp
3# as(shdsp):	-defsym sim_cpu=1 -dsp
4
5	.include "testutils.inc"
6
7	start
8
9psha_imm:			! shift arithmetic, immediate operand
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_sreg 0x1, a0
21	psha	#0, a0
22	assert_sreg	0x1, a0
23	psha	#-0, a0
24	assert_sreg	0x1, a0
25
26	psha	#1, a0
27	assert_sreg	0x2, a0
28	psha	#-1, a0
29	assert_sreg	0x1, a0
30
31	psha	#2, a0
32	assert_sreg	0x4, a0
33	psha	#-2, a0
34	assert_sreg	0x1, a0
35
36	psha	#3, a0
37	assert_sreg	0x8, a0
38	psha	#-3, a0
39	assert_sreg	0x1, a0
40
41	psha	#4, a0
42	assert_sreg	0x10, a0
43	psha	#-4, a0
44	assert_sreg	0x1, a0
45
46	psha	#5, a0
47	assert_sreg	0x20, a0
48	psha	#-5, a0
49	assert_sreg	0x1, a0
50
51	psha	#6, a0
52	assert_sreg	0x40, a0
53	psha	#-6, a0
54	assert_sreg	0x1, a0
55
56	psha	#7, a0
57	assert_sreg	0x80, a0
58	psha	#-7, a0
59	assert_sreg	0x1, a0
60
61	psha	#8, a0
62	assert_sreg	0x100, a0
63	psha	#-8, a0
64	assert_sreg	0x1, a0
65
66	psha	#9, a0
67	assert_sreg	0x200, a0
68	psha	#-9, a0
69	assert_sreg	0x1, a0
70
71	psha	#10, a0
72	assert_sreg	0x400, a0
73	psha	#-10, a0
74	assert_sreg	0x1, a0
75
76	psha	#11, a0
77	assert_sreg	0x800, a0
78	psha	#-11, a0
79	assert_sreg	0x1, a0
80
81	psha	#12, a0
82	assert_sreg	0x1000, a0
83	psha	#-12, a0
84	assert_sreg	0x1, a0
85
86	psha	#13, a0
87	assert_sreg	0x2000, a0
88	psha	#-13, a0
89	assert_sreg	0x1, a0
90
91	psha	#14, a0
92	assert_sreg	0x4000, a0
93	psha	#-14, a0
94	assert_sreg	0x1, a0
95
96	psha	#15, a0
97	assert_sreg	0x8000, a0
98	psha	#-15, a0
99	assert_sreg	0x1, a0
100
101	psha	#16, a0
102	assert_sreg	0x10000, a0
103	psha	#-16, a0
104	assert_sreg	0x1, a0
105
106	psha	#17, a0
107	assert_sreg	0x20000, a0
108	psha	#-17, a0
109	assert_sreg	0x1, a0
110
111	psha	#18, a0
112	assert_sreg	0x40000, a0
113	psha	#-18, a0
114	assert_sreg	0x1, a0
115
116	psha	#19, a0
117	assert_sreg	0x80000, a0
118	psha	#-19, a0
119	assert_sreg	0x1, a0
120
121	psha	#20, a0
122	assert_sreg	0x100000, a0
123	psha	#-20, a0
124	assert_sreg	0x1, a0
125
126	psha	#21, a0
127	assert_sreg	0x200000, a0
128	psha	#-21, a0
129	assert_sreg	0x1, a0
130
131	psha	#22, a0
132	assert_sreg	0x400000, a0
133	psha	#-22, a0
134	assert_sreg	0x1, a0
135
136	psha	#23, a0
137	assert_sreg	0x800000, a0
138	psha	#-23, a0
139	assert_sreg	0x1, a0
140
141	psha	#24, a0
142	assert_sreg	0x1000000, a0
143	psha	#-24, a0
144	assert_sreg	0x1, a0
145
146	psha	#25, a0
147	assert_sreg	0x2000000, a0
148	psha	#-25, a0
149	assert_sreg	0x1, a0
150
151	psha	#26, a0
152	assert_sreg	0x4000000, a0
153	psha	#-26, a0
154	assert_sreg	0x1, a0
155
156	psha	#27, a0
157	assert_sreg	0x8000000, a0
158	psha	#-27, a0
159	assert_sreg	0x1, a0
160
161	psha	#28, a0
162	assert_sreg	0x10000000, a0
163	psha	#-28, a0
164	assert_sreg	0x1, a0
165
166	psha	#29, a0
167	assert_sreg	0x20000000, a0
168	psha	#-29, a0
169	assert_sreg	0x1, a0
170
171	psha	#30, a0
172	assert_sreg	0x40000000, a0
173	psha	#-30, a0
174	assert_sreg	0x1, a0
175
176	psha	#31, a0
177	assert_sreg	0x80000000, a0
178	psha	#-31, a0
179	assert_sreg	0xffffffff, a0
180
181	psha	#32, a0
182	assert_sreg	0x00000000, a0
183#	I don't grok what should happen here...
184#	psha	#-32, a0
185#	assert_sreg	0x0, a0
186
187	test_grs_a5a5
188	assert_sreg2	0xa5a5a5a5, a1
189	assert_sreg	0xa5a5a5a5, x0
190	assert_sreg	0xa5a5a5a5, x1
191	assert_sreg	0xa5a5a5a5, y0
192	assert_sreg	0xa5a5a5a5, y1
193	assert_sreg2	0xa5a5a5a5, m0
194	assert_sreg2	0xa5a5a5a5, m1
195
196
197	pass
198	exit 0
199
200