1# Test the mips16 instruction set.
2
3	.set	mips16
4
5	.macro	ldst op, reg, base
6	\op	\reg,0(\base)
7	\op	\reg,1(\base)
8	\op	\reg,2(\base)
9	\op	\reg,3(\base)
10	\op	\reg,4(\base)
11	\op	\reg,8(\base)
12	\op	\reg,16(\base)
13	\op	\reg,32(\base)
14	\op	\reg,64(\base)
15	\op	\reg,128(\base)
16	\op	\reg,256(\base)
17	\op	\reg,512(\base)
18	\op	\reg,1024(\base)
19	\op	\reg,2048(\base)
20	\op	\reg,-1(\base)
21	\op	\reg,-2(\base)
22	\op	\reg,-3(\base)
23	\op	\reg,-4(\base)
24	\op	\reg,-8(\base)
25	\op	\reg,-16(\base)
26	\op	\reg,-32(\base)
27	\op	\reg,-64(\base)
28	\op	\reg,-128(\base)
29	\op	\reg,-256(\base)
30	\op	\reg,-512(\base)
31	\op	\reg,-1024(\base)
32	\op	\reg,-2048(\base)
33	.endm
34
35	.p2align 3
36data1:
37	.word	0
38insns1:
39	ldst	ld, $2, $3
40	ld	$2,data1
41	ld	$2,data2
42	ld	$2,bar
43	ld	$2,quux
44	ldst	ld, $2, $sp
45	ldst	lwu, $2, $3
46	ldst	lw, $2, $3
47	lw	$2,data1
48	lw	$2,data2
49	lw	$2,bar
50	lw	$2,quux
51	ldst	lw, $2, $sp
52	ldst	lh, $2, $3
53	ldst	lhu, $2, $3
54	ldst	lb, $2, $3
55	ldst	lbu, $2, $3
56	ldst	sd, $2, $3
57	ldst	sd, $2, $sp
58	ldst	sd, $31, $sp
59	ldst	sw, $2, $3
60	ldst	sw, $2, $sp
61	ldst	sw, $31, $sp
62	ldst	sh, $2, $3
63	ldst	sb, $2, $3
64
65	li	$2,0
66	li	$2,1
67	li	$2,256
68
69	move	$2,$30
70	move	$20,$2
71
72	daddu	$2,$3,0
73	daddu	$2,$3,1
74	daddu	$2,$3,-1
75	daddu	$2,$3,16
76	daddu	$2,$3,-16
77	daddu	$2,$3,$4
78	daddu	$2,0
79	daddu	$2,1
80	daddu	$2,-1
81	daddu	$2,32
82	daddu	$2,-32
83	daddu	$2,128
84	daddu	$2,-128
85	dla	$2,data1
86	dla	$2,data2
87	dla	$2,bar
88	dla	$2,quux
89	daddu	$sp,0
90	daddu	$sp,1
91	daddu	$sp,-1
92	daddu	$sp,256
93	daddu	$sp,-256
94	daddu	$2,$sp,0
95	daddu	$2,$sp,1
96	daddu	$2,$sp,-1
97	daddu	$2,$sp,32
98	daddu	$2,$sp,-32
99	daddu	$2,$sp,128
100	daddu	$2,$sp,-128
101
102	addu	$2,$3,0
103	addu	$2,$3,1
104	addu	$2,$3,-1
105	addu	$2,$3,16
106	addu	$2,$3,-16
107	addu	$2,$3,$4
108	addu	$2,0
109	addu	$2,1
110	addu	$2,-1
111	addu	$2,32
112	addu	$2,-32
113	addu	$2,128
114	addu	$2,-128
115	la	$2,data1
116	la	$2,data2
117	la	$2,bar
118	la	$2,quux
119	addu	$sp,0
120	addu	$sp,1
121	addu	$sp,-1
122	addu	$sp,256
123	addu	$sp,-256
124	addu	$2,$sp,0
125	addu	$2,$sp,1
126	addu	$2,$sp,-1
127	addu	$2,$sp,32
128	addu	$2,$sp,-32
129	addu	$2,$sp,128
130	addu	$2,$sp,-128
131
132data2:
133	.word	0
134insns2:
135	dsubu	$2,$3,$4
136	subu	$2,$3,$4
137	neg	$2,$3
138
139	and	$2,$3
140	or	$2,$3
141	xor	$2,$3
142	not	$2,$3
143
144	slt	$2,0
145	slt	$2,1
146	slt	$2,-1
147	slt	$2,255
148	slt	$2,256
149	slt	$2,$3
150	sltu	$2,0
151	sltu	$2,1
152	sltu	$2,-1
153	sltu	$2,255
154	sltu	$2,256
155	sltu	$2,$3
156	cmp	$2,0
157	cmp	$2,1
158	cmp	$2,255
159	cmp	$2,256
160	cmp	$2,$3
161
162	dsll	$2,$3,0
163	dsll	$2,$3,1
164	dsll	$2,$3,8
165	dsll	$2,$3,9
166	dsll	$2,$3,63
167	dsll	$2,$3
168	dsrl	$2,0
169	dsrl	$2,1
170	dsrl	$2,8
171	dsrl	$2,9
172	dsrl	$2,63
173	dsrl	$2,$3
174	dsra	$2,0
175	dsra	$2,1
176	dsra	$2,8
177	dsra	$2,9
178	dsra	$2,63
179	dsra	$2,$3
180
181	mflo	$2
182	mfhi	$3
183
184	sll	$2,$3,0
185	sll	$2,$3,1
186	sll	$2,$3,8
187	sll	$2,$3,9
188	sll	$2,$3,31
189	sll	$2,$3
190	srl	$2,$3,0
191	srl	$2,$3,1
192	srl	$2,$3,8
193	srl	$2,$3,9
194	srl	$2,$3,31
195	srl	$2,$3
196	sra	$2,$3,0
197	sra	$2,$3,1
198	sra	$2,$3,8
199	sra	$2,$3,9
200	sra	$2,$3,31
201	sra	$2,$3
202
203	dmult	$2,$3
204	dmultu	$2,$3
205	ddiv	$2,$3
206	ddivu	$2,$3
207
208	mult	$2,$3
209	multu	$2,$3
210	div	$2,$3
211	divu	$2,$3
212
213	jr	$2
214	jr	$31
215	jalr	$31,$2
216
217	beqz	$2,insns1
218	beqz	$2,insns2
219	beqz	$2,bar
220	beqz	$2,quux
221	bnez	$2,insns1
222	bnez	$2,insns2
223	bnez	$2,bar
224	bnez	$2,quux
225	bteqz	insns1
226	bteqz	insns2
227	bteqz	bar
228	bteqz	quux
229	btnez	insns1
230	btnez	insns2
231	btnez	bar
232	btnez	quux
233	b	insns1
234	b	insns2
235	b	bar
236	b	quux
237
238	break	0
239	break	1
240	break	63
241
242	jal	extern
243
244	entry
245	entry	$4
246	entry	$4-$6,$16
247	entry	$16-$17,$31
248	entry	$31
249	exit
250	exit	$16
251	exit	$16-$17,$31
252	exit	$31
253
254	.p2align 3
255bar:
256
257	.skip	200
258quux:
259