summaryrefslogtreecommitdiff
path: root/gas/testsuite/gas/mips/sb1-ext-mdmx.s
blob: 0cdf7b0d68ead4aacf0866ebc5f59e3cfbe4b23b (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
# Source file to test assembly of SB-1 MDMX subset instructions and extensions.
#
# SB-1 implements only the .ob MDMX instructions, and adds three additional
# MDMX-ish instructions (pabsdiff, pabsdiffc, pavg).

	.set noreorder
	.set noat

	.globl text_label .text
text_label:

	# The normal MDMX instructions:

	movf.l		$v1, $v12, $fcc5

	movn.l		$v1, $v12, $18

	movt.l		$v1, $v12, $fcc5

	movz.l		$v1, $v12, $18

	add.ob		$v1, $v12, 18
	add.ob		$v1, $v12, $v18
	add.ob		$v1, $v12, $v18[6]

	adda.ob		$v12, 18
	adda.ob		$v12, $v18
	adda.ob		$v12, $v18[6]

	addl.ob		$v12, 18
	addl.ob		$v12, $v18
	addl.ob		$v12, $v18[6]

	alni.ob		$v1, $v12, $v18, 6

	alnv.ob		$v1, $v12, $v18, $21

	and.ob		$v1, $v12, 18
	and.ob		$v1, $v12, $v18
	and.ob		$v1, $v12, $v18[6]

	c.eq.ob		$v12, 18
	c.eq.ob		$v12, $v18
	c.eq.ob		$v12, $v18[6]

	c.le.ob		$v12, 18
	c.le.ob		$v12, $v18
	c.le.ob		$v12, $v18[6]

	c.lt.ob		$v12, 18
	c.lt.ob		$v12, $v18
	c.lt.ob		$v12, $v18[6]

	max.ob		$v1, $v12, 18
	max.ob		$v1, $v12, $v18
	max.ob		$v1, $v12, $v18[6]

	min.ob		$v1, $v12, 18
	min.ob		$v1, $v12, $v18
	min.ob		$v1, $v12, $v18[6]

	mul.ob		$v1, $v12, 18
	mul.ob		$v1, $v12, $v18
	mul.ob		$v1, $v12, $v18[6]

	mula.ob		$v12, 18
	mula.ob		$v12, $v18
	mula.ob		$v12, $v18[6]

	mull.ob		$v12, 18
	mull.ob		$v12, $v18
	mull.ob		$v12, $v18[6]

	muls.ob		$v12, 18
	muls.ob		$v12, $v18
	muls.ob		$v12, $v18[6]

	mulsl.ob	$v12, 18
	mulsl.ob	$v12, $v18
	mulsl.ob	$v12, $v18[6]

	nor.ob		$v1, $v12, 18
	nor.ob		$v1, $v12, $v18
	nor.ob		$v1, $v12, $v18[6]

	or.ob		$v1, $v12, 18
	or.ob		$v1, $v12, $v18
	or.ob		$v1, $v12, $v18[6]

	pickf.ob	$v1, $v12, 18
	pickf.ob	$v1, $v12, $v18
	pickf.ob	$v1, $v12, $v18[6]

	pickt.ob	$v1, $v12, 18
	pickt.ob	$v1, $v12, $v18
	pickt.ob	$v1, $v12, $v18[6]

	rach.ob		$v1

	racl.ob		$v1

	racm.ob		$v1

	rnau.ob		$v1, 18
	rnau.ob		$v1, $v18
	rnau.ob		$v1, $v18[6]

	rneu.ob		$v1, 18
	rneu.ob		$v1, $v18
	rneu.ob		$v1, $v18[6]

	rzu.ob		$v1, 18
	rzu.ob		$v1, $v18
	rzu.ob		$v1, $v18[6]

	shfl.mixh.ob	$v1, $v12, $v18

	shfl.mixl.ob	$v1, $v12, $v18

	shfl.pach.ob	$v1, $v12, $v18

	shfl.upsl.ob	$v1, $v12, $v18

	sll.ob		$v1, $v12, 18
	sll.ob		$v1, $v12, $v18
	sll.ob		$v1, $v12, $v18[6]

	srl.ob		$v1, $v12, 18
	srl.ob		$v1, $v12, $v18
	srl.ob		$v1, $v12, $v18[6]

	sub.ob		$v1, $v12, 18
	sub.ob		$v1, $v12, $v18
	sub.ob		$v1, $v12, $v18[6]

	suba.ob		$v12, 18
	suba.ob		$v12, $v18
	suba.ob		$v12, $v18[6]

	subl.ob		$v12, 18
	subl.ob		$v12, $v18
	subl.ob		$v12, $v18[6]

	wach.ob		$v12

	wacl.ob		$v12, $v18

	xor.ob		$v1, $v12, 18
	xor.ob		$v1, $v12, $v18
	xor.ob		$v1, $v12, $v18[6]


	# The extensions:

	pabsdiff.ob	$v1, $v12, 18
	pabsdiff.ob	$v1, $v12, $v18
	pabsdiff.ob	$v1, $v12, $v18[6]

	pabsdiffc.ob	$v12, 18
	pabsdiffc.ob	$v12, $v18
	pabsdiffc.ob	$v12, $v18[6]

	pavg.ob		$v1, $v12, 18
	pavg.ob		$v1, $v12, $v18
	pavg.ob		$v1, $v12, $v18[6]


# Force at least 8 (non-delay-slot) zero bytes, to make 'objdump' print ...
      .space  8