1# Source file used to test microMIPS instruction size overrides (#1).
2
3	.text
4foo:
5# Smoke-test a trivial case.
6	nop
7	nop16
8	nop32
9
10# Test ALU operations.
11	addu	$2, $4
12	addu16	$2, $4
13	addu32	$2, $4
14	addu	$12, $14
15	addu32	$12, $14
16	add.ps	$f2, $f4
17	add32.ps $f2, $f4
18	addiusp	256
19	addiusp16 256
20
21# Test jumps and branches.
22	jalr	$4
23	jalr16	$4
24	jalr32	$4
25	jalr	$24
26	jalr16	$24
27	jalr32	$24
28	jalr	$31,$5
29	jalr16	$31,$5
30	jalr32	$31,$5
31	jalr	$31,$25
32	jalr16	$31,$25
33	jalr32	$31,$25
34	jalr	$30,$26
35	jalr32	$30,$26
36	b	bar
37	b16	bar
38	b32	bar
39	beqz	$7, bar
40	beqz16	$7, bar
41	beqz32	$7, bar
42	beqz	$27, bar
43	beqz32	$27, bar
44
45# Test branch delay slots.
46	.set	noreorder
47	bltzal	$2, bar
48	 addu	$16, $17
49	bltzal	$2, bar
50	 addu16	$16, $17
51	bltzal	$2, bar
52	 addu32	$16, $17
53	bltzals	$2, bar
54	 addu	$16, $17
55	bltzals	$2, bar
56	 addu16	$16, $17
57	bltzals	$2, bar
58	 addu32	$16, $17
59	bltzal	$2, bar
60	 add.ps	$f2, $f4
61	bltzal	$2, bar
62	 add32.ps $f2, $f4
63	bltzals	$2, bar
64	 add.ps	$f2, $f4
65	bltzals	$2, bar
66	 add32.ps $f2, $f4
67	bltzal	$2, bar
68	 addiusp 256
69	bltzal	$2, bar
70	 addiusp16 256
71	bltzals	$2, bar
72	 addiusp 256
73	bltzals	$2, bar
74	 addiusp16 256
75	.set	reorder
76
77# Test macro delay slots.
78	.set	noreorder
79	bltzall	$2, bar
80	 addu	$16, $17
81	bltzall	$2, bar
82	 addu16	$16, $17
83	bltzall	$2, bar
84	 addu32	$16, $17
85	bltzall	$2, bar
86	 add.ps	$f2, $f4
87	bltzall	$2, bar
88	 add32.ps $f2, $f4
89	bltzall	$2, bar
90	 addiusp 256
91	bltzall	$2, bar
92	 addiusp16 256
93	.set	reorder
94
95# Test shift instructions to complement 64-bit tests.
96	sll	$2, $3, 5
97	sll16	$2, $3, 5
98	sll32	$2, $3, 5
99	sll	$2, $3, 13
100	sll32	$2, $3, 13
101	sll	$10, $11, 5
102	sll32	$10, $11, 5
103
104# Test 64-bit instructions.
105	dsll	$2, $3, 5
106	dsll32	$2, $3, 5			# No way to force 32-bit DSLL.
107	dsll3232 $2, $3, 5
108	dsll	$2, $3, 13
109	dsll32	$2, $3, 13			# No way to force 32-bit DSLL.
110	dsll3232 $2, $3, 13
111	dsll	$10, $11, 5
112	dsll32	$10, $11, 5			# No way to force 32-bit DSLL.
113	dsll3232 $10, $11, 5
114
115# Force at least 8 (non-delay-slot) zero bytes, to make 'objdump' print ...
116	.align	2
117	.space	8
118