File: mips16-insn-t.s

package info (click to toggle)
binutils 2.34-2
  • links: PTS, VCS
  • area: main
  • in suites: bullseye, sid
  • size: 328,380 kB
  • sloc: ansic: 1,180,155; asm: 665,310; cpp: 130,540; exp: 69,822; makefile: 57,183; sh: 22,559; yacc: 14,469; lisp: 13,785; perl: 2,112; ada: 1,681; lex: 1,650; pascal: 1,446; cs: 879; sed: 195; python: 154; xml: 95; awk: 25
file content (187 lines) | stat: -rw-r--r-- 3,565 bytes parent folder | download | duplicates (17)
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
	.set		mips16
	.set		noreorder
foo:
	addiu.t		$16, $29, 0	# ADDIUSP
	addu.t		$16, $29, 0

	.align		2
	addiu.t		$16, $pc, 0	# ADDIUPC
	addu.t		$16, $pc, 0
	la.t		$16, . - 1

	b.t		. + 2		# B

	jal.t		0		# JAL(X)
	 nop
	jalx.t		0
	 nop

	beqz.t		$16, . + 2	# BEQZ

	bnez.t		$16, . + 2	# BNEZ

	sll.t		$16, $16, 8	# SHIFT		# SLL
	dsll.t		$16, $16, 8			# DSLL
	srl.t		$16, $16, 8			# SRL
	sra.t		$16, $16, 8			# SRA

	ld.t		$16, 0($16)	# LD

	addiu.t		$16, $16, 0	# RRI-A		# ADDIU
	addu.t		$16, $16, 0
	daddiu.t	$16, $16, 0			# DADDIU
	daddu.t		$16, $16, 0

	addiu.t		$16, 0		# ADDIU8
	addu.t		$16, 0

	slti.t		$16, 0		# SLTI
	slt.t		$16, 0

	sltiu.t		$16, 0		# SLTIU
	sltu.t		$16, 0

	bteqz.t		. + 2		# I8		# BTEQZ
	btnez.t		. + 2				# BTNEZ
	sw.t		$31, 0($29)			# SWRASP
	addiu.t		$29, 0				# ADJSP
	addiu.t		$29, $29, 0
	addu.t		$29, 0
	addu.t		$29, $29, 0
	restore.t	128				# SVRS	     # RESTORE
	save.t		128						# SAVE
	nop.t						# MOV32R
	move.t		$0, $16
	move.t		$16, $0				# MOVR32

	li.t		$16, 0		# LI

	cmpi.t		$16, 0		# CMPI
	cmp.t		$16, 0

	sd.t		$16, 0($16)	# SD

	lb.t		$16, 0($16)	# LB

	lh.t		$16, 0($16)	# LH

	lw.t		$16, 0($29)	# LWSP

	lw.t		$16, 0($16)	# LW

	lbu.t		$16, 0($16)	# LBU

	lhu.t		$16, 0($16)	# LHU

	.align	2
	lw.t		$16, 0($pc)	# LWPC
	lw.t		$16, . - 3

	lwu.t		$16, 0($16)	# LWU

	sb.t		$16, 0($16)	# SB

	sh.t		$16, 0($16)	# SH

	sw.t		$16, 0($29)	# SWSP

	sw.t		$16, 0($16)	# SW

	daddu.t		$16, $16, $16	# RRR		# DADDU
	addu.t		$16, $16, $16			# ADDU
	dsubu.t		$16, $16, $16			# DSUBU
	subu.t		$16, $16, $16			# SUBU

	jr.t		$16		# RR		# J(AL)R(C)	# JR rx
	 nop
	j.t		$16
	 nop
	jr.t		$31						# JR ra
	 nop
	j.t		$31
	 nop
	jalr.t		$16						# JALR
	 nop
	jalr.t		$31, $16
	 nop
	jal.t		$16
	 nop
	jal.t		$31, $16
	 nop
	jrc.t		$16					       # JRC rx
	jrc.t		$31					       # JRC ra
	jalrc.t		$16						# JALRC
	jalrc.t		$31, $16
	sdbbp.t		0				# SDBBP
	slt.t		$16, $16			# SLT
	sltu.t		$16, $16			# SLTU
	sllv.t		$16, $16			# SLLV
	sll.t		$16, $16
	break.t		0				# BREAK
	srlv.t		$16, $16			# SRLV
	srl.t		$16, $16
	srav.t		$16, $16			# SRAV
	sra.t		$16, $16
	dsrl.t		$16, 8				# DSRL
	entry.t						# ENTRY/EXIT
	entry.t		$31
	exit.t		$f0
	exit.t
	cmp.t		$16, $16			# CMP
	neg.t		$16, $16			# NEG
	and.t		$16, $16			# AND
	or.t		$16, $16			# OR
	xor.t		$16, $16			# XOR
	not.t		$16, $16			# NOT
	mfhi.t		$16				# MFHI
	zeb.t		$16				# CNVT		# ZEB
	zeh.t		$16						# ZEH
	zew.t		$16						# ZEW
	seb.t		$16						# SEB
	seh.t		$16						# SEH
	sew.t		$16						# SEW
	mflo.t		$16				# MFLO
	dsra.t		$16, 8				# DSRA
	dsllv.t		$16, $16			# DSLLV
	dsll.t		$16, $16
	dsrlv.t		$16, $16			# DSRLV
	dsrl.t		$16, $16
	dsrav.t		$16, $16			# DSRAV
	dsra.t		$16, $16
	mult.t		$16, $16			# MULT
	multu.t		$16, $16			# MULTU
	div.t		$0, $16, $16			# DIV
	rem.t		$0, $16, $16
	divu.t		$0, $16, $16			# DIVU
	remu.t		$0, $16, $16
	dmult.t		$16, $16			# DMULT
	dmultu.t	$16, $16			# DMULTU
	ddiv.t		$0, $16, $16			# DDIV
	drem.t		$0, $16, $16
	ddivu.t		$0, $16, $16			# DDIVU
	dremu.t		$0, $16, $16

	extend.t	0		# EXTEND

	ld.t		$16, 0($29)	# I64		# LDSP
	sd.t		$16, 0($29)			# SDSP
	sd.t		$31, 0($29)			# SDRASP
	daddiu.t	$29, 0				# DADJSP
	daddiu.t	$29, $29, 0
	daddu.t		$29, 0
	daddu.t		$29, $29, 0
	.align		3
	ld.t		$16, 0($pc)			# LDPC
	ld.t		$16, . - 3
	daddiu.t	$16, 0				# DADDIU5
	daddu.t		$16, 0
	.align		2
	daddiu.t	$16, $pc, 0			# DADDIUPC
	daddu.t		$16, $pc, 0
	dla.t		$16, . - 1
	daddiu.t	$16, $sp, 0			# DADDIUSP
	daddu.t		$16, $sp, 0

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