all.s
2.21 KB
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
#include "rsp.h"
#include "all.h"
.base RSPBOOTBASE
proc_mb:
nop
nop /* Get MB info here */
nop
nop
lh mbtype, MBH_MBTYPE(rzero)
andi flag, mbtype, MBT_REQUANT
blez flag, dont_new_qmat
nop
do_new_qmat:
lh quant, MBH_QUANT(rzero)
jal new_qmat
nop
dont_new_qmat:
andi flag, mbtype, MBT_INTRA
bgtz flag, dont_mc
nop
andi flag, mbtype, MBT_FOR
blez flag, dont_for
#include "mc_io.h"
lh mc_in_mvx, MBH_MVFX(rzero)
lh mc_in_mvy, MBH_MVFY(rzero)
addi mc_in_dat, rzero, MB_DATA_FREF
addi mc_out_dat, rzero, MB_DATA_FREF
addi mc_in_blend, rzero, 0
jal mc
nop
andi flag, mbtype, MBT_BAK
blez flag, dont_bak
both:
lh mc_in_mvx, MBH_MVBX(rzero)
lh mc_in_mvy, MBH_MVBY(rzero)
addi mc_in_dat, rzero, MB_DATA_BREF
addi mc_out_dat, rzero, MB_DATA_FREF
addi mc_in_blend, rzero, 1
jal mc
nop
j dont_mc
nop
dont_for:
andi flag, mbtype, MBT_BAK
blez flag, dont_bak
lh mc_in_mvx, MBH_MVBX(rzero)
lh mc_in_mvy, MBH_MVBY(rzero)
addi mc_in_dat, rzero, MB_DATA_BREF
addi mc_out_dat, rzero, MB_DATA_FREF /* Put the output in the right place! */
addi mc_in_blend, rzero, 0
jal mc
nop
#include "mc_io.h"
dont_bak:
nop
dont_mc:
lh cbp, MBH_CBP(rzero)
nop
nop
nop
nop
blez cbp, skip_mb
nop
#include "idct_io.h"
addi idct_in_dat, rzero, MB_DATA
addi idct_out_dat, rzero, MB_DATA
addi idct_in_cbp, cbp, 0
jal iq
nop
addi idct_in_dat, rzero, MB_DATA
addi idct_out_dat, rzero, MB_DATA
addi idct_in_cbp, cbp, 0
jal idct
nop
#include "idct_io.h"
#include "mc_io.h"
addi mc_in_dat, rzero, MB_DATA
addi mc_out_dat, rzero, MB_DATA
addi mc_in_cbp, cbp, 0
jal mc_comb
nop
#include "mc_io.h"
skip_mb:
nop
nop
jal recon_sav
nop
nop
nop /* break here to output results */
nop
nop
j proc_mb
nop
#include "all_un.h"
new_qmat:
nop
ret
nop
iq:
nop
ret
nop
#include "idct_io.h"
#include "idct.s"
#include "idct_io.h"
#include "mc_io.h"
#include "mc.s"
#include "mc_io.h"
mc_comb:
nop
ret
nop
recon_sav:
nop
ret
nop