245 lines
7.3 KiB
Text
245 lines
7.3 KiB
Text
|
.vu
|
||
|
main: NOP IADDIU VI01, VI00, 0
|
||
|
NOP IADDIU VI02, VI00, 22
|
||
|
NOP NOP
|
||
|
NOP BAL VI15, RotMatrix
|
||
|
NOP NOP
|
||
|
NOP IADDIU VI01, VI00, 26
|
||
|
NOP IADDIU VI02, VI00, 22
|
||
|
NOP IADDIU VI03, VI00, 30
|
||
|
NOP NOP
|
||
|
NOP BAL VI15, MulMatrix
|
||
|
NOP NOP
|
||
|
NOP IADDIU VI01, VI00, 8
|
||
|
NOP IADDIU VI02, VI00, 22
|
||
|
NOP IADDIU VI03, VI00, 12
|
||
|
NOP NOP
|
||
|
NOP BAL VI15, MulMatrix
|
||
|
NOP NOP
|
||
|
NOP IADDIU VI04, VI00, 30
|
||
|
NOP NOP
|
||
|
NOP NOP
|
||
|
NOP NOP
|
||
|
NOP LQI.xyzw VF04, (VI04++)
|
||
|
NOP LQI.xyzw VF05, (VI04++)
|
||
|
NOP LQI.xyzw VF06, (VI04++)
|
||
|
NOP LQI.xyzw VF07, (VI04++)
|
||
|
NOP IADDIU VI04, VI00, 4
|
||
|
NOP NOP
|
||
|
NOP NOP
|
||
|
NOP NOP
|
||
|
NOP LQI.xyzw VF08, (VI04++)
|
||
|
NOP LQI.xyzw VF09, (VI04++)
|
||
|
NOP LQI.xyzw VF10, (VI04++)
|
||
|
NOP LQI.xyzw VF11, (VI04++)
|
||
|
NOP IADDIU VI04, VI00, 12
|
||
|
NOP NOP
|
||
|
NOP NOP
|
||
|
NOP NOP
|
||
|
NOP LQI.xyzw VF12, (VI04++)
|
||
|
NOP LQI.xyzw VF13, (VI04++)
|
||
|
NOP LQI.xyzw VF14, (VI04++)
|
||
|
NOP LQI.xyzw VF15, (VI04++)
|
||
|
NOP IADDIU VI04, VI00, 17
|
||
|
NOP NOP
|
||
|
NOP NOP
|
||
|
NOP NOP
|
||
|
NOP LQI.xyzw VF01, (VI04++)
|
||
|
NOP IADDIU VI01, VI00, 0x7fff
|
||
|
NOP IADDIU VI03, VI00, 1
|
||
|
NOP IADDIU VI09, VI00, 0
|
||
|
NOP NOP
|
||
|
NOP[e] NOP
|
||
|
NOP NOP
|
||
|
LOOPE: NOP IBNE VI09, VI00, CONT
|
||
|
NOP XTOP VI05
|
||
|
NOP IADDIU VI12, VI00, 500
|
||
|
CONT: NOP NOP
|
||
|
NOP NOP
|
||
|
NOP ILW.x VI11, 0(VI05)
|
||
|
NOP IADDIU VI08, VI05, 1
|
||
|
NOP NOP
|
||
|
NOP NOP
|
||
|
NOP IAND VI11, VI11, VI01
|
||
|
NOP NOP
|
||
|
NOP NOP
|
||
|
NOP NOP
|
||
|
NOP IADD VI06, VI08, VI11
|
||
|
NOP NOP
|
||
|
NOP NOP
|
||
|
NOP NOP
|
||
|
NOP IADD VI07, VI06, VI11
|
||
|
NOP NOP
|
||
|
NOP NOP
|
||
|
NOP NOP
|
||
|
NOP IADDIU VI10, VI12, 0
|
||
|
NOP IADDI VI13, VI12, -1
|
||
|
START: NOP MOVE.w VF26, VF00
|
||
|
NOP LQI.xyzw VF25, (VI07++)
|
||
|
NOP LQI.xyzw VF30, (VI06++)
|
||
|
NOP LQI.xyzw VF02, (VI08++)
|
||
|
NOP NOP
|
||
|
MULAx.xyz ACC, VF12, VF25x NOP
|
||
|
MADDAy.xyz ACC, VF13, VF25y NOP
|
||
|
MADDz.xyz VF26, VF14, VF25z NOP
|
||
|
MULAx.xyzw ACC, VF04, VF30x NOP
|
||
|
MADDAy.xyzw ACC, VF05, VF30y NOP
|
||
|
MADDAz.xyzw ACC, VF06, VF30z NOP
|
||
|
MADDw.xyzw VF31, VF07, VF30w NOP
|
||
|
MAXx.xyzw VF26, VF26, VF00x NOP
|
||
|
NOP NOP
|
||
|
NOP NOP
|
||
|
LOOP: MULw.xyzw VF29, VF31, VF00w DIV Q, VF00w, VF31w
|
||
|
MULAx.xyzw ACC, VF08, VF26x LQI.xyzw VF25, (VI07++)
|
||
|
MADDAy.xyzw ACC, VF09, VF26y LQI.xyzw VF30, (VI06++)
|
||
|
MADDAz.xyzw ACC, VF10, VF26z NOP
|
||
|
MADDw.xyzw VF24, VF11, VF26w IADDI VI11, VI11, -1
|
||
|
MULAx.xyz ACC, VF12, VF25x IADDIU VI12, VI12, 2
|
||
|
MADDAy.xyz ACC, VF13, VF25y SQ.xyzw VF23, 0(VI13)
|
||
|
MULq.xyzw VF28, VF29, Q IADDIU VI13, VI13, 2
|
||
|
MUL.xyzw VF24, VF24, VF02 NOP
|
||
|
MADDz.xyz VF26, VF14, VF25z LQI.xyzw VF02, (VI08++)
|
||
|
MULAx.xyzw ACC, VF04, VF30x NOP
|
||
|
FTOI4.xyzw VF27, VF28 NOP
|
||
|
MINI.xyzw VF24, VF24, VF01 NOP
|
||
|
MADDAy.xyzw ACC, VF05, VF30y NOP
|
||
|
MADDAz.xyzw ACC, VF06, VF30z NOP
|
||
|
MADDw.xyzw VF31, VF07, VF30w SQ.xyzw VF27, 0(VI12)
|
||
|
MAXx.xyzw VF26, VF26, VF00x NOP
|
||
|
FTOI0.xyzw VF23, VF24 IBNE VI11, VI00, LOOP
|
||
|
NOP NOP
|
||
|
MULw.xyzw VF29, VF31, VF00w DIV Q, VF00w, VF31w
|
||
|
MULAx.xyzw ACC, VF08, VF26x IADDIU VI12, VI12, 2
|
||
|
MADDAy.xyzw ACC, VF09, VF26y SQ.xyzw VF23, 0(VI13)
|
||
|
MADDAz.xyzw ACC, VF10, VF26z IADDIU VI13, VI13, 2
|
||
|
MADDw.xyzw VF24, VF11, VF26w LQ.xyzw VF20, 0(VI05)
|
||
|
NOP NOP
|
||
|
NOP NOP
|
||
|
MULq.xyzw VF28, VF29, Q NOP
|
||
|
MUL.xyzw VF24, VF24, VF02 SQ.xyzw VF20, 0(VI10)
|
||
|
NOP NOP
|
||
|
NOP NOP
|
||
|
FTOI4.xyzw VF27, VF28 NOP
|
||
|
MINI.xyzw VF24, VF24, VF01 NOP
|
||
|
NOP NOP
|
||
|
NOP NOP
|
||
|
NOP SQ.xyzw VF27, 0(VI12)
|
||
|
FTOI0.xyzw VF23, VF24 NOP
|
||
|
NOP NOP
|
||
|
NOP NOP
|
||
|
NOP NOP
|
||
|
NOP SQ.xyzw VF23, 0(VI13)
|
||
|
NOP NOP
|
||
|
NOP NOP
|
||
|
NOP NOP
|
||
|
NOP XGKICK VI10
|
||
|
NOP ISUB VI09, VI03, VI09
|
||
|
NOP NOP
|
||
|
NOP[e] NOP
|
||
|
NOP NOP
|
||
|
NOP B LOOPE
|
||
|
NOP NOP
|
||
|
MulMatrix: NOP LQI.xyzw VF08, (VI02++)
|
||
|
NOP LQI.xyzw VF04, (VI01++)
|
||
|
NOP LQI.xyzw VF05, (VI01++)
|
||
|
NOP LQI.xyzw VF06, (VI01++)
|
||
|
NOP LQI.xyzw VF07, (VI01++)
|
||
|
MULAx.xyzw ACC, VF04, VF08x LQI.xyzw VF09, (VI02++)
|
||
|
MADDAy.xyzw ACC, VF05, VF08y NOP
|
||
|
MADDAz.xyzw ACC, VF06, VF08z NOP
|
||
|
MADDw.xyzw VF12, VF07, VF08w NOP
|
||
|
MULAx.xyzw ACC, VF04, VF09x LQI.xyzw VF10, (VI02++)
|
||
|
MADDAy.xyzw ACC, VF05, VF09y NOP
|
||
|
MADDAz.xyzw ACC, VF06, VF09z NOP
|
||
|
MADDw.xyzw VF13, VF07, VF09w SQI.xyzw VF12, (VI03++)
|
||
|
MULAx.xyzw ACC, VF04, VF10x LQI.xyzw VF11, (VI02++)
|
||
|
MADDAy.xyzw ACC, VF05, VF10y NOP
|
||
|
MADDAz.xyzw ACC, VF06, VF10z NOP
|
||
|
MADDw.xyzw VF14, VF07, VF10w SQI.xyzw VF13, (VI03++)
|
||
|
MULAx.xyzw ACC, VF04, VF11x NOP
|
||
|
MADDAy.xyzw ACC, VF05, VF11y NOP
|
||
|
MADDAz.xyzw ACC, VF06, VF11z NOP
|
||
|
MADDw.xyzw VF15, VF07, VF11w SQI.xyzw VF14, (VI03++)
|
||
|
NOP NOP
|
||
|
NOP NOP
|
||
|
NOP NOP
|
||
|
NOP SQI.xyzw VF15, (VI03++)
|
||
|
NOP NOP
|
||
|
NOP JR VI15
|
||
|
NOP NOP
|
||
|
RotMatrix: MULx.xyzw VF04, VF00, VF00x LQI.xyzw VF01, (VI01++)
|
||
|
MULx.xyzw VF05, VF00, VF00x LQI.xyzw VF02, (VI01++)
|
||
|
MULx.xyzw VF06, VF00, VF00x LQI.xyzw VF03, (VI01++)
|
||
|
NOP LOI 1.5707963
|
||
|
ADDw.x VF04, VF04, VF00w ESIN P, VF01x
|
||
|
NOP NOP
|
||
|
NOP NOP
|
||
|
ADDi.xyzw VF02, VF02, I NOP
|
||
|
NOP WAITP
|
||
|
NOP MFP.z VF05z, P
|
||
|
NOP MFP.y VF06y, P
|
||
|
NOP ESIN P, VF02x
|
||
|
NOP NOP
|
||
|
NOP NOP
|
||
|
MULz.xyzw VF06, VF06, VF00z NOP
|
||
|
NOP WAITP
|
||
|
NOP MFP.y VF05y, P
|
||
|
NOP MFP.z VF06z, P
|
||
|
MULx.xyzw VF07, VF00, VF00x ESIN P, VF01y
|
||
|
MULx.xyzw VF08, VF00, VF00x NOP
|
||
|
MULx.xyzw VF09, VF00, VF00x NOP
|
||
|
NOP NOP
|
||
|
NOP NOP
|
||
|
ADDw.y VF08, VF08, VF00w NOP
|
||
|
NOP WAITP
|
||
|
NOP MFP.z VF07z, P
|
||
|
NOP MFP.x VF09x, P
|
||
|
NOP ESIN P, VF02y
|
||
|
NOP NOP
|
||
|
MULz.xyzw VF07, VF07, VF00z NOP
|
||
|
NOP WAITP
|
||
|
NOP MFP.x VF07x, P
|
||
|
NOP MFP.z VF09z, P
|
||
|
MULx.xyzw VF10, VF00, VF00x ESIN P, VF01z
|
||
|
MULx.xyzw VF11, VF00, VF00x NOP
|
||
|
MULx.xyzw VF12, VF00, VF00x NOP
|
||
|
MULAx.xyz ACC, VF04, VF07x NOP
|
||
|
MADDAy.xyz ACC, VF05, VF07y NOP
|
||
|
MADDz.xyz VF07, VF06, VF07z NOP
|
||
|
ADDw.z VF12, VF12, VF00w NOP
|
||
|
MULAx.xyz ACC, VF04, VF08x NOP
|
||
|
MADDAy.xyz ACC, VF05, VF08y NOP
|
||
|
MADDz.xyz VF08, VF06, VF08z NOP
|
||
|
MULAx.xyz ACC, VF04, VF09x NOP
|
||
|
MADDAy.xyz ACC, VF05, VF09y NOP
|
||
|
MADDz.xyz VF09, VF06, VF09z NOP
|
||
|
NOP WAITP
|
||
|
NOP MFP.y VF10y, P
|
||
|
NOP MFP.x VF11x, P
|
||
|
NOP ESIN P, VF02z
|
||
|
NOP NOP
|
||
|
NOP NOP
|
||
|
MULz.xyzw VF11, VF11, VF00z NOP
|
||
|
NOP WAITP
|
||
|
NOP MFP.x VF10x, P
|
||
|
NOP MFP.y VF11y, P
|
||
|
NOP NOP
|
||
|
NOP NOP
|
||
|
MULAx.xyz ACC, VF07, VF10x NOP
|
||
|
MADDAy.xyz ACC, VF08, VF10y NOP
|
||
|
MADDz.xyz VF10, VF09, VF10z NOP
|
||
|
MULAx.xyz ACC, VF07, VF11x NOP
|
||
|
MADDAy.xyz ACC, VF08, VF11y NOP
|
||
|
MADDz.xyz VF11, VF09, VF11z NOP
|
||
|
MULAx.xyz ACC, VF07, VF12x NOP
|
||
|
MADDAy.xyz ACC, VF08, VF12y NOP
|
||
|
MADDz.xyz VF12, VF09, VF12z NOP
|
||
|
NOP NOP
|
||
|
NOP SQI.xyz VF10, (VI02++)
|
||
|
NOP SQI.xyz VF11, (VI02++)
|
||
|
NOP SQI.xyz VF12, (VI02++)
|
||
|
NOP SQI.xyz VF03, (VI02++)
|
||
|
NOP NOP
|
||
|
NOP JR VI15
|
||
|
NOP NOP
|