aboutsummaryrefslogtreecommitdiff
path: root/binutils/testsuite/binutils-all/mips/mips16-undecoded.s
blob: e17c45d67a68aa4378c5079f253095c0c562836b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
	.text
	.module	mips3
	.set	mips16
	.globl	foo
	.ent	foo
foo:
	# Individual major opcodes.
	addiu	$2, $sp, 0x4011
	.half	0xf008, 0x0211
	.half	0xf008, 0x0231
	.half	0xf008, 0x0251
	.half	0xf008, 0x0291

	addiu	$2, $pc, 0x4011
	.half	0xf008, 0x0a11
	.half	0xf008, 0x0a31
	.half	0xf008, 0x0a51
	.half	0xf008, 0x0a91

	b	. + 0x8026
	.half	0xf008, 0x1011
	.half	0xf008, 0x1031
	.half	0xf008, 0x1051
	.half	0xf008, 0x1091
	.half	0xf008, 0x1111
	.half	0xf008, 0x1211
	.half	0xf008, 0x1411

	beqz	$2, . + 0x8026
	.half	0xf008, 0x2211
	.half	0xf008, 0x2231
	.half	0xf008, 0x2251
	.half	0xf008, 0x2291

	bnez	$2, . + 0x8026
	.half	0xf008, 0x2a11
	.half	0xf008, 0x2a31
	.half	0xf008, 0x2a51
	.half	0xf008, 0x2a91

	addiu	$2, 0x4011
	.half	0xf008, 0x4a11
	.half	0xf008, 0x4a31
	.half	0xf008, 0x4a51
	.half	0xf008, 0x4a91

	slti	$2, 0x4011
	.half	0xf008, 0x5211
	.half	0xf008, 0x5231
	.half	0xf008, 0x5251
	.half	0xf008, 0x5291

	sltiu	$2, 0x4011
	.half	0xf008, 0x5a11
	.half	0xf008, 0x5a31
	.half	0xf008, 0x5a51
	.half	0xf008, 0x5a91

	li	$2, 0x4011
	.half	0xf008, 0x6a11
	.half	0xf008, 0x6a31
	.half	0xf008, 0x6a51
	.half	0xf008, 0x6a91

	cmpi	$2, 0x4011
	.half	0xf008, 0x7211
	.half	0xf008, 0x7231
	.half	0xf008, 0x7251
	.half	0xf008, 0x7291

	lw	$2, 0x4011($sp)
	.half	0xf008, 0x9211
	.half	0xf008, 0x9231
	.half	0xf008, 0x9251
	.half	0xf008, 0x9291

	lw	$2, 0x4011($pc)
	.half	0xf008, 0xb211
	.half	0xf008, 0xb231
	.half	0xf008, 0xb251
	.half	0xf008, 0xb291

	sw	$2, 0x4011($sp)
	.half	0xf008, 0xd211
	.half	0xf008, 0xd231
	.half	0xf008, 0xd251
	.half	0xf008, 0xd291

	# I8 major opcode.
	bteqz	. + 0x8026
	.half	0xf008, 0x6011
	.half	0xf008, 0x6031
	.half	0xf008, 0x6051
	.half	0xf008, 0x6091

	btnez	. + 0x8026
	.half	0xf008, 0x6111
	.half	0xf008, 0x6131
	.half	0xf008, 0x6151
	.half	0xf008, 0x6191

	sw	$ra, 0x4011($sp)
	.half	0xf008, 0x6211
	.half	0xf008, 0x6231
	.half	0xf008, 0x6251
	.half	0xf008, 0x6291

	addiu	$sp, 0x4011
	.half	0xf008, 0x6311
	.half	0xf008, 0x6331
	.half	0xf008, 0x6351
	.half	0xf008, 0x6391

	# SHIFT major opcode
	sll	$2, $3, 0x14
	.half	0xf500, 0x3260
	.half	0xf500, 0x3264
	.half	0xf500, 0x3268
	.half	0xf500, 0x3270
	.half	0xf501, 0x3260
	.half	0xf502, 0x3260
	.half	0xf504, 0x3260
	.half	0xf508, 0x3260
	.half	0xf510, 0x3260
	.half	0xf520, 0x3260

	dsll	$2, $3, 0x14
	.half	0xf500, 0x3261
	.half	0xf500, 0x3265
	.half	0xf500, 0x3269
	.half	0xf500, 0x3271
	.half	0xf501, 0x3261
	.half	0xf502, 0x3261
	.half	0xf504, 0x3261
	.half	0xf508, 0x3261
	.half	0xf510, 0x3261
	.half	0xf520, 0x3261

	srl	$2, $3, 0x14
	.half	0xf500, 0x3262
	.half	0xf500, 0x3266
	.half	0xf500, 0x326a
	.half	0xf500, 0x3272
	.half	0xf501, 0x3262
	.half	0xf502, 0x3262
	.half	0xf504, 0x3262
	.half	0xf508, 0x3262
	.half	0xf510, 0x3262
	.half	0xf520, 0x3262

	sra	$2, $3, 0x14
	.half	0xf500, 0x3263
	.half	0xf500, 0x3267
	.half	0xf500, 0x326b
	.half	0xf500, 0x3273
	.half	0xf501, 0x3263
	.half	0xf502, 0x3263
	.half	0xf504, 0x3263
	.half	0xf508, 0x3263
	.half	0xf510, 0x3263
	.half	0xf520, 0x3263

	# RR major opcode
	dsrl	$2, 0x14
	.half	0xf500, 0xe848
	.half	0xf500, 0xe948
	.half	0xf500, 0xea48
	.half	0xf500, 0xec48
	.half	0xf501, 0xe848
	.half	0xf502, 0xe848
	.half	0xf504, 0xe848
	.half	0xf508, 0xe848
	.half	0xf510, 0xe848
	.half	0xf520, 0xe848

	dsra	$2, 0x14
	.half	0xf500, 0xe853
	.half	0xf500, 0xe953
	.half	0xf500, 0xea53
	.half	0xf500, 0xec53
	.half	0xf501, 0xe853
	.half	0xf502, 0xe853
	.half	0xf504, 0xe853
	.half	0xf508, 0xe853
	.half	0xf510, 0xe853
	.half	0xf520, 0xe853

	# I64 major opcode.
	daddiu	$sp, 0x4011
	.half	0xf008, 0xfb11
	.half	0xf008, 0xfb31
	.half	0xf008, 0xfb51
	.half	0xf008, 0xfb91
	.end	foo

# Force some (non-delay-slot) zero bytes, to make 'objdump' print ...
	.align	4, 0
	.space	16