aboutsummaryrefslogtreecommitdiffstats
path: root/tests/t_3206x/t_3206x.asm
blob: 5c5804d47c36a3d571d042d9f87a3ad852da8655 (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
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
		cpu	32060

                page	0

mv		macro	src,dest
		add.ATTRIBUTE 0,src,dest
                endm

neg		macro	src,dest
		sub.ATTRIBUTE 0,src,dest
                endm

not		macro	src,dest
		xor.ATTRIBUTE -1,src,dest
                endm

                not	a0,a1

zero		macro	dest
                xor.ATTRIBUTE dst,dst,dst
                endm

                mv	a1,a3
                mv.l2	a1,b3

        	nop
||      	nop
||      	nop
        	nop
                nop

	[b0]    nop
|| 	[!b0]	nop

		idle

                nop
                nop	7

	abs	a4,a7
        abs.l1	a4,a7
        abs	b4,a7
        abs.l1	b4,a7
	abs.l1x b4,a7
        abs	b3:b2,b11:b10
        abs	a7:a6,b11:b10

        add	a1,a3,a7:a6
        add	a1,b3,a7:a6
        add	b1,a3,a7:a6
	add	a7,a5:a4,a13:a12
        add     b7,a5:a4,a13:a12
	add	a5:a4,a7,a13:a12
        add     a5:a4,b7,a13:a12
        add	b9:b8,-3,b15:b14
        add	-3,b9:b8,b15:b14

	addab.d1  a4,a2,a4
        addah.d1  a4,a2,a4
        addaw.d2  b4,2,b4
	subab.d1  a4,a2,a4
        subah.d1  a4,a2,a4
        subaw.d2  b4,2,b4

        addk	15401,a1
        addk.s1 15401,a1

        add2	a1,b1,a2
        sub2	b1,a0,b2

        clr	a1,4,19,a2
        clr	b1,b3,b2

        cmpeq.l2 a1,b1,b2
        cmpeq.l1 -9,a1,a2
        cmpeq.l2 a1,b3:b2,b1
        cmpgt.l1 a1,b2,a2
        cmpgt.l1 a1,b1,a2
        cmpgt.l1 8,a1,a2
        cmpgt.l1 a1,b1,a2
        cmpgtu.l1 a1,a2,a3
        cmpgtu.l1 0ah,a1,a2
        cmpgtu.l1 0eh,a3:a2,a4
        cmplt.l1 a1,a2,a3
        cmplt.l1 9,a1,a2
        cmpltu.l1 a1,a2,a3
        cmpltu.l1 14,a1,a2
        cmpltu.l1 a1,a5:a4,a2

        ext.s1	a1,10,19,a2
        ext.s1	a1,a2,a3
        extu.s1	a1,10,19,a2
        extu.s1 a1,a2,a3

        ldw.d1	*a10,a1
        ldb.d1	*-a5[4],a7
        ldh.d1	*++a4[a1],a8
        ldw.d1	*a4++[1],a6
        ldw.d1	*++a4(4),a6
        ldb.d2	*+b14[36],b1

        lmbd	a1,a2,a3

        mpy.m1	a1,a2,a3
        mpyu.m1 a1,a2,a3
        mpyus.m1 a1,a2,a3
        mpy.m1 13,a1,a2
        mpysu.m1 13,a1,a2
        mpyh.m1 a1,a2,a3
        mpyhu.m1 a1,a2,a3
        mpyhsu.m1 a1,a2,a3
	mpyhl.m1 a1,a2,a3
        mpylh.m1 a1,a2,a3

	mvc.s2	a1,amr
        mvc	istp,b4

        mvk.s1	293,a1
        mvk.s2	125h,b1
        mvk.s1	0ff12h,a1
        mvkh.s1	0a329123h,a1
        mvklh	7a8h,a1

        norm	a1,a2
        norm	a1:a0,a2

        sadd.l1	a1,a2,a3
        sadd.l1 b2,a5:a4,a7:a6

        sat.l1	a1:a0,a2
        sat.l2	b1:b0,b5

        set.s1	a0,7,21,a1
        set.s2	b0,b1,b2

        shl.s1	a0,4,a1
        shl.s2	b0,b1,b2
        shl.s2	b1:b0,b2,b3:b2

        shr.s1	a0,8,a1
        shr.s2	b0,b1,b2
        shr.s2	b1:b0,b2,b3:b2

        shru.s1	a0,8,a1

        smpy.m1	a1,a2,a3
        smpyhl.m1 a1,a2,a3
        smpylh.m1 a1,a2,a3

        sshl.s1	a0,2,a1
        sshl.s1	a0,a1,a2

        ssub.l2	b1,b2,b3
        ssub.l1	a0,a1,a2

        stb.d1	a1,*a10
        sth.d1	a1,*+a10(4)
        stw.d1	a1,*++a10[1]
        sth.d1	a1,*a10--[a11]
        stb.d2	b1,*+b14[40]

        align   32
        mvk.s1	2c80h,a0
||      mvk.s2	0200h,b0
	mvkh.s1 01880000h,a0
||	mvkh.s2 00000000h,b0
	mvc.s2	a0,pdata_o
        stp.s2	b0
        nop	4
        mpy.m1	a1,a2,a3

        sub.l1	a1,a2,a3
        subu.l1	a1,a2,a5:a4
        subc.l1	a0,a1,a0

        align   32
        ifdef error
        add.s1  a0,a1,a2
||      shr.s1  a3,15,a4
        endif
        add.l1  a0,a1,a2
||      shr.s1  a3,15,a4

        align   32
        ifdef   error
        add.l1x a0,b1,a1
||      mpy.m1x a4,b4,a5
        endif
        add.l1x a0,b1,a1
||      mpy.m2x a4,b4,b2

        align   32
        ifdef   error
        ldw.d1  *a0,a1
||      ldw.d1  *a2,b2
        endif
        ldw.d1  *a0,a1
||      ldw.d2  *b0,b2

        align   32
        ifdef   error
        ldw.d1  *a4,a5
||      stw.d2  a6,*b4
        endif
        ldw.d1  *a4,b4
||      stw.d2  a6,*b4

        align   32
        ifdef   error
        add.l1  a5:a4,a1,a3:a2
||      shl.s1  a8,a9,a7:a6
        endif
        add.l1  a5:a4,a1,a3:a2
||      shl.s2  b8,b9,b7:b6

        align   32
        ifdef   error
        add.l1  a5:a4,a1,a3:a2
||      stw.d1  a8,*a9
        endif
        add.l1  a4,a1,a3:a2
||      stw.d1  a8,*a9

        align   32
        ifdef   error
        mpy.m1  a1,a1,a4
||      add.l1  a1,a1,a5
||      sub.d1  a1,a2,a3
        endif
        mpy.m1  a1,a1,a4
|| [a1] add.l1  a0,a1,a5
||      sub.d1  a1,a2,a3

        align   32
        ifdef   error
        add.l2  b5,b6,b7
||      sub.s2  b8,b9,b7
        endif
[!b0]   add.l2  b5,b6,b7
|| [b0] sub.s2  b8,b9,b7