mirror of
https://github.com/open-goal/jak-project
synced 2026-07-11 15:28:58 -04:00
[jak2] combined shadow work PR (#2632)
This PR is a combination of https://github.com/open-goal/jak-project/pull/2507 and some additional changes to port Shadow VU1 to OpenGL. As far as I can tell, it's working. --------- Co-authored-by: Hat Kid <6624576+Hat-Kid@users.noreply.github.com>
This commit is contained in:
@@ -0,0 +1,88 @@
|
||||
nop | sub.xyzw vf05, vf03, vf02
|
||||
nop | sub.xyzw vf06, vf04, vf02
|
||||
nop | sub.xyzw vf10, vf08, vf07
|
||||
nop | sub.xyzw vf11, vf09, vf07
|
||||
nop | sub.xyzw vf15, vf13, vf12
|
||||
nop | sub.xyzw vf16, vf14, vf12
|
||||
nop | sub.xyzw vf20, vf18, vf17
|
||||
nop | sub.xyzw vf21, vf19, vf17
|
||||
nop | opmula.xyz ACC, vf05, vf06
|
||||
nop | opmsub.xyz vf05, vf06, vf05
|
||||
nop | opmula.xyz ACC, vf10, vf11
|
||||
nop | opmsub.xyz vf10, vf11, vf10
|
||||
nop | opmula.xyz ACC, vf15, vf16
|
||||
nop | opmsub.xyz vf15, vf16, vf15
|
||||
nop | opmula.xyz ACC, vf20, vf21
|
||||
nop | opmsub.xyz vf20, vf21, vf20
|
||||
nop | mul.xyz vf05, vf05, vf01
|
||||
nop | mul.xyz vf10, vf10, vf01
|
||||
nop | mul.xyz vf15, vf15, vf01
|
||||
nop | mul.xyz vf20, vf20, vf01
|
||||
nop | addx.y vf05, vf05, vf05
|
||||
nop | addx.y vf10, vf10, vf10
|
||||
nop | addx.y vf15, vf15, vf15
|
||||
nop | addx.y vf20, vf20, vf20
|
||||
nop | addz.y vf22, vf05, vf05
|
||||
nop | addz.y vf23, vf10, vf10
|
||||
nop | addz.y vf24, vf15, vf15 :e
|
||||
nop | addz.y vf25, vf20, vf20
|
||||
nop | mul.xyzw vf27, vf20, Q
|
||||
div Q, vf13.x, vf17.x | sub.xyzw vf19, vf01, vf03
|
||||
move.xyzw vf23, vf07 | sub.xyzw vf20, vf01, vf04
|
||||
nop | sub.xyzw vf21, vf01, vf05
|
||||
move.xyzw vf25, vf09 | sub.xyzw vf22, vf01, vf06
|
||||
move.xyzw vf26, vf10 | sub.xyzw vf24, vf08, vf27
|
||||
nop | mul.xyzw vf11, vf03, vf02
|
||||
nop | mul.xyz vf15, vf19, vf02
|
||||
div Q, vf14.x, vf18.x | mul.xyzw vf12, vf04, vf02
|
||||
move.xyzw vf07, vf03 | mul.xyzw vf28, vf28, Q
|
||||
move.xyzw vf08, vf04 | mul.xyz vf16, vf20, vf02
|
||||
move.xyzw vf09, vf05 | addy.x vf11, vf11, vf11
|
||||
move.xyzw vf10, vf06 | addy.x vf15, vf15, vf15
|
||||
nop | sub.xyzw vf25, vf25, vf28
|
||||
nop | addy.x vf12, vf12, vf12
|
||||
nop | mul.xyzw vf29, vf29, Q
|
||||
nop | addy.x vf16, vf16, vf16
|
||||
nop | addz.x vf11, vf11, vf11
|
||||
nop | addz.x vf15, vf15, vf15
|
||||
nop | sub.xyzw vf26, vf26, vf29
|
||||
nop | addz.x vf12, vf12, vf12
|
||||
nop | addz.x vf16, vf16, vf16
|
||||
nop | addw.x vf11, vf11, vf11
|
||||
nop | mul.xyzw vf13, vf09, vf02
|
||||
nop | addw.x vf12, vf12, vf12
|
||||
nop | mul.xyz vf17, vf21, vf02
|
||||
nop | mul.xyzw vf14, vf10, vf02
|
||||
div Q, vf11.x, vf15.x | mul.xyz vf18, vf22, vf02
|
||||
nop | addy.x vf13, vf13, vf13
|
||||
nop | addy.x vf17, vf17, vf17
|
||||
nop | addy.x vf14, vf14, vf14
|
||||
nop | addy.x vf18, vf18, vf18
|
||||
nop | addz.x vf13, vf13, vf13
|
||||
nop | addz.x vf17, vf17, vf17
|
||||
div Q, vf12.x, vf16.x | addz.x vf14, vf14, vf14
|
||||
nop | mul.xyzw vf19, vf19, Q
|
||||
move.xyzw vf28, vf21 | addz.x vf18, vf18, vf18
|
||||
move.xyzw vf29, vf22 | addw.x vf13, vf13, vf13
|
||||
nop | addw.x vf14, vf14, vf14 :e
|
||||
nop | sub.xyzw vf07, vf07, vf19
|
||||
nop | mul.xyzw vf27, vf20, Q
|
||||
div Q, vf13.x, vf17.x | nop
|
||||
move.xyzw vf23, vf07 | nop
|
||||
nop | nop
|
||||
move.xyzw vf25, vf09 | nop
|
||||
move.xyzw vf26, vf10 | sub.xyzw vf24, vf08, vf27
|
||||
nop | nop
|
||||
nop | nop
|
||||
div Q, vf14.x, vf18.x | nop
|
||||
nop | mul.xyzw vf28, vf28, Q
|
||||
nop | nop
|
||||
nop | nop
|
||||
nop | nop
|
||||
nop | sub.xyzw vf25, vf25, vf28
|
||||
nop | nop
|
||||
nop | mul.xyzw vf29, vf29, Q
|
||||
nop | nop
|
||||
nop | nop
|
||||
nop | nop :e
|
||||
nop | sub.xyzw vf26, vf26, vf29
|
||||
@@ -0,0 +1,176 @@
|
||||
.word 0x80000030
|
||||
.word 0x1e2196c
|
||||
.word 0x80000030
|
||||
.word 0x1e221ac
|
||||
.word 0x80000030
|
||||
.word 0x1e742ac
|
||||
.word 0x80000030
|
||||
.word 0x1e74aec
|
||||
.word 0x80000030
|
||||
.word 0x1ec6bec
|
||||
.word 0x80000030
|
||||
.word 0x1ec742c
|
||||
.word 0x80000030
|
||||
.word 0x1f1952c
|
||||
.word 0x80000030
|
||||
.word 0x1f19d6c
|
||||
.word 0x80000030
|
||||
.word 0x1c62afe
|
||||
.word 0x80000030
|
||||
.word 0x1c5316e
|
||||
.word 0x80000030
|
||||
.word 0x1cb52fe
|
||||
.word 0x80000030
|
||||
.word 0x1ca5aae
|
||||
.word 0x80000030
|
||||
.word 0x1d07afe
|
||||
.word 0x80000030
|
||||
.word 0x1cf83ee
|
||||
.word 0x80000030
|
||||
.word 0x1d5a2fe
|
||||
.word 0x80000030
|
||||
.word 0x1d4ad2e
|
||||
.word 0x80000030
|
||||
.word 0x1c1296a
|
||||
.word 0x80000030
|
||||
.word 0x1c152aa
|
||||
.word 0x80000030
|
||||
.word 0x1c17bea
|
||||
.word 0x80000030
|
||||
.word 0x1c1a52a
|
||||
.word 0x80000030
|
||||
.word 0x852940
|
||||
.word 0x80000030
|
||||
.word 0x8a5280
|
||||
.word 0x80000030
|
||||
.word 0x8f7bc0
|
||||
.word 0x80000030
|
||||
.word 0x94a500
|
||||
.word 0x80000030
|
||||
.word 0x852d82
|
||||
.word 0x80000030
|
||||
.word 0x8a55c2
|
||||
.word 0x80000030
|
||||
.word 0x408f7e02
|
||||
.word 0x80000030
|
||||
.word 0x94a642
|
||||
.word 0x80000030
|
||||
.word 0x1e0a6dc
|
||||
.word 0x80116bbc
|
||||
.word 0x1e30cec
|
||||
.word 0x81f73b3c
|
||||
.word 0x1e40d2c
|
||||
.word 0x80000030
|
||||
.word 0x1e50d6c
|
||||
.word 0x81f94b3c
|
||||
.word 0x1e60dac
|
||||
.word 0x81fa533c
|
||||
.word 0x1fb462c
|
||||
.word 0x80000030
|
||||
.word 0x1e21aea
|
||||
.word 0x80000030
|
||||
.word 0x1c29bea
|
||||
.word 0x801273bc
|
||||
.word 0x1e2232a
|
||||
.word 0x81e71b3c
|
||||
.word 0x1e0e71c
|
||||
.word 0x81e8233c
|
||||
.word 0x1c2a42a
|
||||
.word 0x81e92b3c
|
||||
.word 0x10b5ac1
|
||||
.word 0x81ea333c
|
||||
.word 0x10f7bc1
|
||||
.word 0x80000030
|
||||
.word 0x1fcce6c
|
||||
.word 0x80000030
|
||||
.word 0x10c6301
|
||||
.word 0x80000030
|
||||
.word 0x1e0ef5c
|
||||
.word 0x80000030
|
||||
.word 0x1108401
|
||||
.word 0x80000030
|
||||
.word 0x10b5ac2
|
||||
.word 0x80000030
|
||||
.word 0x10f7bc2
|
||||
.word 0x80000030
|
||||
.word 0x1fdd6ac
|
||||
.word 0x80000030
|
||||
.word 0x10c6302
|
||||
.word 0x80000030
|
||||
.word 0x1108402
|
||||
.word 0x80000030
|
||||
.word 0x10b5ac3
|
||||
.word 0x80000030
|
||||
.word 0x1e24b6a
|
||||
.word 0x80000030
|
||||
.word 0x10c6303
|
||||
.word 0x80000030
|
||||
.word 0x1c2ac6a
|
||||
.word 0x80000030
|
||||
.word 0x1e253aa
|
||||
.word 0x800f5bbc
|
||||
.word 0x1c2b4aa
|
||||
.word 0x80000030
|
||||
.word 0x10d6b41
|
||||
.word 0x80000030
|
||||
.word 0x1118c41
|
||||
.word 0x80000030
|
||||
.word 0x10e7381
|
||||
.word 0x80000030
|
||||
.word 0x1129481
|
||||
.word 0x80000030
|
||||
.word 0x10d6b42
|
||||
.word 0x80000030
|
||||
.word 0x1118c42
|
||||
.word 0x801063bc
|
||||
.word 0x10e7382
|
||||
.word 0x80000030
|
||||
.word 0x1e09cdc
|
||||
.word 0x81fcab3c
|
||||
.word 0x1129482
|
||||
.word 0x81fdb33c
|
||||
.word 0x10d6b43
|
||||
.word 0x80000030
|
||||
.word 0x410e7383
|
||||
.word 0x80000030
|
||||
.word 0x1f339ec
|
||||
.word 0x80000030
|
||||
.word 0x1e0a6dc
|
||||
.word 0x80116bbc
|
||||
.word 0x2ff
|
||||
.word 0x81f73b3c
|
||||
.word 0x2ff
|
||||
.word 0x80000030
|
||||
.word 0x2ff
|
||||
.word 0x81f94b3c
|
||||
.word 0x2ff
|
||||
.word 0x81fa533c
|
||||
.word 0x1fb462c
|
||||
.word 0x80000030
|
||||
.word 0x2ff
|
||||
.word 0x80000030
|
||||
.word 0x2ff
|
||||
.word 0x801273bc
|
||||
.word 0x2ff
|
||||
.word 0x80000030
|
||||
.word 0x1e0e71c
|
||||
.word 0x80000030
|
||||
.word 0x2ff
|
||||
.word 0x80000030
|
||||
.word 0x2ff
|
||||
.word 0x80000030
|
||||
.word 0x2ff
|
||||
.word 0x80000030
|
||||
.word 0x1fcce6c
|
||||
.word 0x80000030
|
||||
.word 0x2ff
|
||||
.word 0x80000030
|
||||
.word 0x1e0ef5c
|
||||
.word 0x80000030
|
||||
.word 0x2ff
|
||||
.word 0x80000030
|
||||
.word 0x2ff
|
||||
.word 0x80000030
|
||||
.word 0x400002ff
|
||||
.word 0x80000030
|
||||
.word 0x1fdd6ac
|
||||
@@ -0,0 +1,799 @@
|
||||
b L1 | nop
|
||||
nop | nop
|
||||
b L2 | nop
|
||||
nop | nop
|
||||
b L13 | nop
|
||||
nop | nop
|
||||
b L21 | nop
|
||||
nop | nop
|
||||
nop | nop :e
|
||||
nop | nop
|
||||
L1:
|
||||
iaddiu vi01, vi00, 0x358 | nop
|
||||
iaddiu vi02, vi00, 0x364 | nop
|
||||
mfir.x vf01, vi01 | nop
|
||||
mfir.y vf01, vi02 | nop
|
||||
mfir.z vf01, vi01 | nop
|
||||
mfir.w vf01, vi02 | nop
|
||||
lq.xyzw vf02, 880(vi00) | nop
|
||||
lq.xyzw vf03, 882(vi00) | nop
|
||||
lq.xyzw vf04, 883(vi00) | nop
|
||||
lq.xyzw vf05, 884(vi00) | nop
|
||||
lq.xyzw vf12, 885(vi00) | nop :e
|
||||
lq.xyzw vf13, 881(vi00) | nop
|
||||
L2:
|
||||
iaddiu vi03, vi00, 0x158 | nop
|
||||
ilwr.x vi08, vi03 | nop
|
||||
mtir vi02, vf01.x | nop
|
||||
iaddi vi03, vi03, 0x1 | addw.z vf25, vf00, vf00
|
||||
lq.xyzw vf25, 888(vi00) | addw.z vf26, vf00, vf00
|
||||
lq.xyzw vf29, 889(vi00) | addw.z vf27, vf00, vf00
|
||||
lq.xyzw vf30, 891(vi00) | addw.z vf28, vf00, vf00
|
||||
lq.xyzw vf06, 0(vi00) | nop
|
||||
lq.xyzw vf07, 1(vi00) | nop
|
||||
lq.xyzw vf08, 2(vi00) | nop
|
||||
lq.xyzw vf09, 3(vi00) | nop
|
||||
mtir vi01, vf01.y | nop
|
||||
sq.xyzw vf25, 0(vi02) | nop
|
||||
sq.xyzw vf29, 1(vi02) | nop
|
||||
sq.xyzw vf30, 2(vi02) | nop
|
||||
sq.xyzw vf25, 0(vi01) | nop
|
||||
sq.xyzw vf29, 1(vi01) | nop
|
||||
sq.xyzw vf30, 2(vi01) | nop
|
||||
L3:
|
||||
lqi.xyzw vf16, vi03 | nop
|
||||
nop | nop
|
||||
nop | nop
|
||||
nop | nop
|
||||
mtir vi04, vf16.x | nop
|
||||
mtir vi05, vf16.y | nop
|
||||
mtir vi06, vf16.z | nop
|
||||
nop | nop
|
||||
lq.xyzw vf17, 4(vi04) | nop
|
||||
lq.xyzw vf18, 4(vi05) | nop
|
||||
lq.xyzw vf19, 4(vi06) | nop
|
||||
nop | mulaw.xyzw ACC, vf09, vf00
|
||||
move.xyzw vf15, vf17 | maddax.xyzw ACC, vf06, vf17
|
||||
nop | madday.xyzw ACC, vf07, vf17
|
||||
nop | maddz.xyzw vf17, vf08, vf17
|
||||
nop | mulaw.xyzw ACC, vf09, vf00
|
||||
nop | sub.xyzw vf29, vf18, vf15
|
||||
nop | sub.xyzw vf30, vf19, vf15
|
||||
div Q, vf12.x, vf17.w | maddax.xyzw ACC, vf06, vf18
|
||||
nop | mul.xyzw vf21, vf17, vf02
|
||||
nop | madday.xyzw ACC, vf07, vf18
|
||||
nop | maddz.xyzw vf18, vf08, vf18
|
||||
nop | mulaw.xyzw ACC, vf09, vf00
|
||||
nop | maddax.xyzw ACC, vf06, vf19
|
||||
nop | madday.xyzw ACC, vf07, vf19
|
||||
div Q, vf12.x, vf18.w | mul.xyz vf17, vf17, Q
|
||||
nop | maddz.xyzw vf19, vf08, vf19
|
||||
nop | mul.xyzw vf22, vf18, vf02
|
||||
nop | opmula.xyz ACC, vf29, vf30
|
||||
nop | add.xy vf25, vf17, vf03
|
||||
nop | mulw.z vf17, vf17, vf12
|
||||
nop | opmsub.xyz vf29, vf30, vf29
|
||||
div Q, vf12.x, vf19.w | mul.xyz vf18, vf18, Q
|
||||
nop | mul.xyzw vf23, vf19, vf02
|
||||
nop | mul.xyz vf29, vf29, vf15
|
||||
nop | add.xy vf26, vf18, vf03
|
||||
nop | add.xyzw vf17, vf17, vf05
|
||||
nop | mulw.z vf18, vf18, vf12
|
||||
nop | mul.xy vf25, vf25, vf04
|
||||
nop | mul.xyz vf19, vf19, Q
|
||||
nop | ftoi4.xyzw vf17, vf17
|
||||
fcset 0x0 | addy.x vf29, vf29, vf29
|
||||
nop | add.xyzw vf18, vf18, vf05
|
||||
nop | clipw.xyz vf21, vf21
|
||||
nop | mulw.z vf19, vf19, vf12
|
||||
sq.xyzw vf25, 4(vi02) | mul.xy vf26, vf26, vf04
|
||||
sq.xyzw vf17, 5(vi02) | addz.x vf29, vf29, vf29
|
||||
nop | ftoi4.xyzw vf18, vf18
|
||||
nop | add.xy vf27, vf19, vf03
|
||||
sq.xyzw vf26, 6(vi02) | add.xyzw vf19, vf19, vf05
|
||||
fsand vi01, 0x2 | clipw.xyz vf22, vf22
|
||||
sq.xyzw vf18, 7(vi02) | clipw.xyz vf23, vf23
|
||||
ibeq vi00, vi01, L4 | mul.xy vf27, vf27, vf04
|
||||
nop | nop
|
||||
b L5 | nop
|
||||
lq.xyzw vf31, 887(vi00) | nop
|
||||
L4:
|
||||
lq.xyzw vf31, 886(vi00) | nop
|
||||
L5:
|
||||
fcand vi01, 0x3ffff | ftoi4.xyzw vf19, vf19
|
||||
ibne vi00, vi01, L11 | nop
|
||||
iaddi vi08, vi08, -0x1 | nop
|
||||
sq.xyzw vf27, 8(vi02) | nop
|
||||
sq.xyzw vf31, 3(vi02) | nop
|
||||
sq.xyzw vf19, 9(vi02) | nop
|
||||
xgkick vi02 | nop
|
||||
mtir vi02, vf01.y | nop
|
||||
mr32.xyzw vf01, vf01 | nop
|
||||
L6:
|
||||
ibgtz vi08, L3 | nop
|
||||
nop | nop
|
||||
iaddiu vi03, vi00, 0x158 | nop
|
||||
ilwr.x vi08, vi03 | nop
|
||||
ilwr.y vi01, vi03 | nop
|
||||
iaddi vi03, vi03, 0x1 | nop
|
||||
L7:
|
||||
lqi.xyzw vf16, vi03 | nop
|
||||
nop | nop
|
||||
nop | nop
|
||||
mtir vi04, vf16.x | nop
|
||||
mtir vi05, vf16.y | nop
|
||||
mtir vi06, vf16.z | nop
|
||||
nop | nop
|
||||
lq.xyzw vf17, 174(vi04) | nop
|
||||
lq.xyzw vf18, 174(vi06) | nop
|
||||
lq.xyzw vf19, 174(vi05) | nop
|
||||
nop | mulaw.xyzw ACC, vf09, vf00
|
||||
move.xyzw vf15, vf17 | maddax.xyzw ACC, vf06, vf17
|
||||
nop | madday.xyzw ACC, vf07, vf17
|
||||
nop | maddz.xyzw vf17, vf08, vf17
|
||||
nop | mulaw.xyzw ACC, vf09, vf00
|
||||
nop | sub.xyzw vf29, vf18, vf15
|
||||
nop | sub.xyzw vf30, vf19, vf15
|
||||
div Q, vf12.x, vf17.w | maddax.xyzw ACC, vf06, vf18
|
||||
nop | mul.xyzw vf21, vf17, vf02
|
||||
nop | madday.xyzw ACC, vf07, vf18
|
||||
nop | maddz.xyzw vf18, vf08, vf18
|
||||
nop | mulaw.xyzw ACC, vf09, vf00
|
||||
nop | maddax.xyzw ACC, vf06, vf19
|
||||
nop | madday.xyzw ACC, vf07, vf19
|
||||
div Q, vf12.x, vf18.w | mul.xyz vf17, vf17, Q
|
||||
nop | maddz.xyzw vf19, vf08, vf19
|
||||
nop | mul.xyzw vf22, vf18, vf02
|
||||
nop | opmula.xyz ACC, vf29, vf30
|
||||
nop | add.xy vf25, vf17, vf03
|
||||
nop | mulw.z vf17, vf17, vf12
|
||||
nop | opmsub.xyz vf29, vf30, vf29
|
||||
div Q, vf12.x, vf19.w | mul.xyz vf18, vf18, Q
|
||||
nop | mul.xyzw vf23, vf19, vf02
|
||||
nop | mul.xyz vf29, vf29, vf15
|
||||
nop | add.xy vf26, vf18, vf03
|
||||
nop | add.xyzw vf17, vf17, vf05
|
||||
nop | mulw.z vf18, vf18, vf12
|
||||
nop | mul.xy vf25, vf25, vf04
|
||||
nop | mul.xyz vf19, vf19, Q
|
||||
nop | ftoi4.xyzw vf17, vf17
|
||||
fcset 0x0 | addy.x vf29, vf29, vf29
|
||||
nop | add.xyzw vf18, vf18, vf05
|
||||
nop | clipw.xyz vf21, vf21
|
||||
sq.xyzw vf25, 4(vi02) | mulw.z vf19, vf19, vf12
|
||||
sq.xyzw vf17, 5(vi02) | mul.xy vf26, vf26, vf04
|
||||
iaddi vi08, vi08, -0x1 | addz.x vf29, vf29, vf29
|
||||
nop | ftoi4.xyzw vf18, vf18
|
||||
nop | add.xy vf27, vf19, vf03
|
||||
sq.xyzw vf26, 6(vi02) | add.xyzw vf19, vf19, vf05
|
||||
fsand vi01, 0x2 | clipw.xyz vf22, vf22
|
||||
sq.xyzw vf18, 7(vi02) | clipw.xyz vf23, vf23
|
||||
ibeq vi00, vi01, L8 | mul.xy vf27, vf27, vf04
|
||||
nop | nop
|
||||
b L9 | nop
|
||||
lq.xyzw vf31, 887(vi00) | nop
|
||||
L8:
|
||||
lq.xyzw vf31, 886(vi00) | nop
|
||||
L9:
|
||||
fcand vi01, 0x3ffff | ftoi4.xyzw vf19, vf19
|
||||
ibne vi00, vi01, L12 | nop
|
||||
sq.xyzw vf27, 8(vi02) | nop
|
||||
sq.xyzw vf31, 3(vi02) | nop
|
||||
sq.xyzw vf19, 9(vi02) | nop
|
||||
xgkick vi02 | nop
|
||||
mtir vi02, vf01.y | nop
|
||||
mr32.xyzw vf01, vf01 | nop
|
||||
L10:
|
||||
ibgtz vi08, L7 | nop
|
||||
nop | nop
|
||||
nop | nop :e
|
||||
nop | nop
|
||||
L11:
|
||||
sq.xyzw vf21, 1000(vi00) | nop
|
||||
sq.xyzw vf22, 1003(vi00) | nop
|
||||
sq.xyzw vf23, 1006(vi00) | nop
|
||||
sq.xyzw vf31, 942(vi00) | nop
|
||||
mfir.x vf29, vi02 | nop
|
||||
mfir.y vf29, vi03 | nop
|
||||
mfir.z vf29, vi07 | nop
|
||||
bal vi15, L36 | nop
|
||||
mfir.w vf29, vi08 | nop
|
||||
mtir vi08, vf29.w | nop
|
||||
mtir vi03, vf29.y | nop
|
||||
mtir vi07, vf29.z | nop
|
||||
b L6 | nop
|
||||
mtir vi02, vf29.x | nop
|
||||
L12:
|
||||
sq.xyzw vf21, 1000(vi00) | nop
|
||||
sq.xyzw vf22, 1003(vi00) | nop
|
||||
sq.xyzw vf23, 1006(vi00) | nop
|
||||
sq.xyzw vf31, 942(vi00) | nop
|
||||
mfir.x vf29, vi02 | nop
|
||||
mfir.y vf29, vi03 | nop
|
||||
mfir.z vf29, vi07 | nop
|
||||
bal vi15, L36 | nop
|
||||
mfir.w vf29, vi08 | nop
|
||||
mtir vi08, vf29.w | nop
|
||||
mtir vi03, vf29.y | nop
|
||||
mtir vi07, vf29.z | nop
|
||||
b L10 | nop
|
||||
mtir vi02, vf29.x | nop
|
||||
L13:
|
||||
iaddiu vi03, vi00, 0x258 | nop
|
||||
ilwr.x vi08, vi03 | nop
|
||||
mtir vi02, vf01.x | nop
|
||||
iaddi vi03, vi03, 0x1 | addw.z vf25, vf00, vf00
|
||||
lq.xyzw vf25, 888(vi00) | addw.z vf26, vf00, vf00
|
||||
lq.xyzw vf29, 889(vi00) | addw.z vf27, vf00, vf00
|
||||
lq.xyzw vf30, 892(vi00) | nop
|
||||
lq.xyzw vf06, 0(vi00) | nop
|
||||
lq.xyzw vf07, 1(vi00) | nop
|
||||
lq.xyzw vf08, 2(vi00) | nop
|
||||
lq.xyzw vf09, 3(vi00) | nop
|
||||
mtir vi01, vf01.y | nop
|
||||
sq.xyzw vf25, 0(vi02) | nop
|
||||
sq.xyzw vf29, 1(vi02) | nop
|
||||
sq.xyzw vf30, 2(vi02) | nop
|
||||
sq.xyzw vf25, 0(vi01) | nop
|
||||
sq.xyzw vf29, 1(vi01) | nop
|
||||
sq.xyzw vf30, 2(vi01) | nop
|
||||
L14:
|
||||
lqi.xyzw vf16, vi03 | nop
|
||||
nop | nop
|
||||
nop | nop
|
||||
nop | nop
|
||||
mtir vi06, vf16.z | nop
|
||||
mtir vi04, vf16.x | nop
|
||||
mtir vi05, vf16.y | nop
|
||||
nop | nop
|
||||
ibeq vi00, vi06, L15 | nop
|
||||
nop | nop
|
||||
lq.xyzw vf17, 4(vi04) | nop
|
||||
lq.xyzw vf18, 4(vi05) | nop
|
||||
lq.xyzw vf19, 174(vi05) | nop
|
||||
b L16 | nop
|
||||
lq.xyzw vf20, 174(vi04) | nop
|
||||
L15:
|
||||
lq.xyzw vf17, 4(vi05) | nop
|
||||
lq.xyzw vf18, 4(vi04) | nop
|
||||
lq.xyzw vf19, 174(vi04) | nop
|
||||
lq.xyzw vf20, 174(vi05) | nop
|
||||
L16:
|
||||
move.xyzw vf15, vf17 | mulaw.xyzw ACC, vf09, vf00
|
||||
nop | maddax.xyzw ACC, vf06, vf17
|
||||
nop | madday.xyzw ACC, vf07, vf17
|
||||
nop | maddz.xyzw vf17, vf08, vf17
|
||||
nop | mulaw.xyzw ACC, vf09, vf00
|
||||
nop | sub.xyzw vf29, vf18, vf15
|
||||
nop | sub.xyzw vf30, vf19, vf15
|
||||
div Q, vf12.x, vf17.w | maddax.xyzw ACC, vf06, vf18
|
||||
nop | mul.xyzw vf21, vf17, vf02
|
||||
nop | madday.xyzw ACC, vf07, vf18
|
||||
nop | maddz.xyzw vf18, vf08, vf18
|
||||
nop | mulaw.xyzw ACC, vf09, vf00
|
||||
nop | maddax.xyzw ACC, vf06, vf19
|
||||
nop | madday.xyzw ACC, vf07, vf19
|
||||
div Q, vf12.x, vf18.w | mul.xyz vf17, vf17, Q
|
||||
nop | maddz.xyzw vf19, vf08, vf19
|
||||
nop | mulaw.xyzw ACC, vf09, vf00
|
||||
nop | maddax.xyzw ACC, vf06, vf20
|
||||
nop | madday.xyzw ACC, vf07, vf20
|
||||
nop | maddz.xyzw vf20, vf08, vf20
|
||||
nop | mul.xyzw vf22, vf18, vf02
|
||||
div Q, vf12.x, vf19.w | mul.xyz vf18, vf18, Q
|
||||
nop | add.xy vf25, vf17, vf03
|
||||
nop | mulw.z vf17, vf17, vf12
|
||||
nop | opmula.xyz ACC, vf29, vf30
|
||||
nop | opmsub.xyz vf29, vf30, vf29
|
||||
nop | mul.xyzw vf23, vf19, vf02
|
||||
nop | mul.xyz vf29, vf29, vf15
|
||||
div Q, vf12.x, vf20.w | mul.xyz vf19, vf19, Q
|
||||
nop | add.xyzw vf17, vf17, vf05
|
||||
nop | mul.xyzw vf24, vf20, vf02
|
||||
nop | mul.xy vf25, vf25, vf04
|
||||
nop | nop
|
||||
nop | ftoi4.xyzw vf17, vf17
|
||||
nop | add.xy vf26, vf18, vf03
|
||||
nop | mul.xyz vf20, vf20, Q
|
||||
nop | mulw.z vf18, vf18, vf12
|
||||
nop | addy.x vf29, vf29, vf29
|
||||
sq.xyzw vf25, 4(vi02) | nop
|
||||
sq.xyzw vf17, 5(vi02) | nop
|
||||
nop | add.xyzw vf18, vf18, vf05
|
||||
nop | clipw.xyz vf21, vf21
|
||||
nop | mul.xy vf26, vf26, vf04
|
||||
nop | addz.x vf29, vf29, vf29
|
||||
nop | ftoi4.xyzw vf18, vf18
|
||||
nop | add.xy vf27, vf19, vf03
|
||||
sq.xyzw vf26, 6(vi02) | mulw.z vf19, vf19, vf12
|
||||
fsand vi01, 0x2 | clipw.xyz vf22, vf22
|
||||
sq.xyzw vf18, 7(vi02) | clipw.xyz vf23, vf23
|
||||
nop | clipw.xyz vf24, vf24
|
||||
nop | add.xy vf28, vf20, vf03
|
||||
nop | mulw.z vf20, vf20, vf12
|
||||
nop | mul.xy vf27, vf27, vf04
|
||||
nop | add.xyzw vf19, vf19, vf05
|
||||
nop | nop
|
||||
ibeq vi00, vi01, L17 | mul.xy vf28, vf28, vf04
|
||||
nop | add.xyzw vf20, vf20, vf05
|
||||
b L18 | nop
|
||||
lq.xyzw vf31, 887(vi00) | nop
|
||||
L17:
|
||||
lq.xyzw vf31, 886(vi00) | nop
|
||||
L18:
|
||||
fcand vi01, 0xffffff | ftoi4.xyzw vf19, vf19
|
||||
ibne vi00, vi01, L20 | nop
|
||||
iaddi vi08, vi08, -0x1 | nop
|
||||
sq.xyzw vf27, 8(vi02) | ftoi4.xyzw vf20, vf20
|
||||
sq.xyzw vf31, 3(vi02) | nop
|
||||
sq.xyzw vf19, 9(vi02) | nop
|
||||
sq.xyzw vf28, 10(vi02) | nop
|
||||
sq.xyzw vf20, 11(vi02) | nop
|
||||
xgkick vi02 | nop
|
||||
mtir vi02, vf01.y | nop
|
||||
mr32.xyzw vf01, vf01 | nop
|
||||
L19:
|
||||
ibgtz vi08, L14 | nop
|
||||
nop | nop
|
||||
nop | nop :e
|
||||
nop | nop
|
||||
L20:
|
||||
sq.xyzw vf21, 1000(vi00) | nop
|
||||
sq.xyzw vf22, 1003(vi00) | nop
|
||||
sq.xyzw vf23, 1006(vi00) | nop
|
||||
sq.xyzw vf24, 1009(vi00) | nop
|
||||
sq.xyzw vf31, 942(vi00) | nop
|
||||
mfir.x vf29, vi02 | nop
|
||||
mfir.y vf29, vi03 | nop
|
||||
mfir.z vf29, vi07 | nop
|
||||
bal vi15, L37 | nop
|
||||
mfir.w vf29, vi08 | nop
|
||||
mtir vi08, vf29.w | nop
|
||||
mtir vi03, vf29.y | nop
|
||||
mtir vi07, vf29.z | nop
|
||||
b L19 | nop
|
||||
mtir vi02, vf29.x | nop
|
||||
L21:
|
||||
iaddiu vi03, vi00, 0x158 | nop
|
||||
ilwr.x vi08, vi03 | nop
|
||||
mtir vi02, vf01.x | nop
|
||||
iaddi vi03, vi03, 0x1 | addw.z vf25, vf00, vf00
|
||||
lq.xyzw vf25, 888(vi00) | addw.z vf26, vf00, vf00
|
||||
lq.xyzw vf29, 889(vi00) | addw.z vf27, vf00, vf00
|
||||
lq.xyzw vf30, 891(vi00) | addw.z vf28, vf00, vf00
|
||||
lq.xyzw vf06, 0(vi00) | nop
|
||||
lq.xyzw vf07, 1(vi00) | nop
|
||||
lq.xyzw vf08, 2(vi00) | nop
|
||||
lq.xyzw vf09, 3(vi00) | nop
|
||||
mtir vi01, vf01.y | nop
|
||||
sq.xyzw vf25, 0(vi02) | nop
|
||||
sq.xyzw vf29, 1(vi02) | nop
|
||||
sq.xyzw vf30, 2(vi02) | nop
|
||||
sq.xyzw vf25, 0(vi01) | nop
|
||||
sq.xyzw vf29, 1(vi01) | nop
|
||||
sq.xyzw vf30, 2(vi01) | nop
|
||||
L22:
|
||||
lqi.xyzw vf16, vi03 | nop
|
||||
nop | nop
|
||||
nop | nop
|
||||
nop | nop
|
||||
mtir vi01, vf16.w | nop
|
||||
mtir vi04, vf16.x | nop
|
||||
mtir vi05, vf16.y | nop
|
||||
mtir vi06, vf16.z | nop
|
||||
ibeq vi00, vi01, L23 | nop
|
||||
lq.xyzw vf17, 4(vi04) | nop
|
||||
lq.xyzw vf18, 4(vi05) | nop
|
||||
b L24 | nop
|
||||
lq.xyzw vf19, 4(vi06) | nop
|
||||
L23:
|
||||
lq.xyzw vf19, 4(vi05) | nop
|
||||
lq.xyzw vf18, 4(vi06) | nop
|
||||
L24:
|
||||
nop | mulaw.xyzw ACC, vf09, vf00
|
||||
move.xyzw vf15, vf17 | maddax.xyzw ACC, vf06, vf17
|
||||
nop | madday.xyzw ACC, vf07, vf17
|
||||
nop | sub.xyzw vf29, vf18, vf17
|
||||
nop | sub.xyzw vf30, vf19, vf17
|
||||
nop | maddz.xyzw vf17, vf08, vf17
|
||||
nop | mulaw.xyzw ACC, vf09, vf00
|
||||
div Q, vf12.x, vf17.w | maddax.xyzw ACC, vf06, vf18
|
||||
nop | madday.xyzw ACC, vf07, vf18
|
||||
nop | mul.xyzw vf21, vf17, vf02
|
||||
nop | maddz.xyzw vf18, vf08, vf18
|
||||
nop | mulaw.xyzw ACC, vf09, vf00
|
||||
nop | maddax.xyzw ACC, vf06, vf19
|
||||
nop | madday.xyzw ACC, vf07, vf19
|
||||
div Q, vf12.x, vf18.w | mul.xyz vf17, vf17, Q
|
||||
nop | maddz.xyzw vf19, vf08, vf19
|
||||
nop | mul.xyzw vf22, vf18, vf02
|
||||
nop | opmula.xyz ACC, vf29, vf30
|
||||
nop | opmsub.xyz vf29, vf30, vf29
|
||||
nop | add.xy vf25, vf17, vf03
|
||||
nop | mulw.z vf17, vf17, vf12
|
||||
div Q, vf12.x, vf19.w | mul.xyz vf18, vf18, Q
|
||||
nop | mul.xyzw vf23, vf19, vf02
|
||||
nop | mul.xyz vf29, vf29, vf15
|
||||
nop | add.xyzw vf17, vf17, vf05
|
||||
nop | mul.xy vf25, vf25, vf04
|
||||
nop | nop
|
||||
nop | ftoi4.xyzw vf17, vf17
|
||||
nop | add.xy vf26, vf18, vf03
|
||||
nop | mulw.z vf18, vf18, vf12
|
||||
fcset 0x0 | addy.x vf29, vf29, vf29
|
||||
nop | mul.xyz vf19, vf19, Q
|
||||
sq.xyzw vf25, 4(vi02) | nop
|
||||
sq.xyzw vf17, 5(vi02) | add.xyzw vf18, vf18, vf05
|
||||
nop | clipw.xyz vf21, vf21
|
||||
nop | mul.xy vf26, vf26, vf04
|
||||
nop | addz.x vf29, vf29, vf29
|
||||
nop | ftoi4.xyzw vf18, vf18
|
||||
nop | add.xy vf27, vf19, vf03
|
||||
sq.xyzw vf26, 6(vi02) | mulw.z vf19, vf19, vf12
|
||||
fsand vi01, 0x2 | clipw.xyz vf22, vf22
|
||||
sq.xyzw vf18, 7(vi02) | clipw.xyz vf23, vf23
|
||||
ibeq vi00, vi01, L25 | mul.xy vf27, vf27, vf04
|
||||
nop | add.xyzw vf19, vf19, vf05
|
||||
b L26 | nop
|
||||
lq.xyzw vf31, 887(vi00) | nop
|
||||
L25:
|
||||
lq.xyzw vf31, 886(vi00) | nop
|
||||
L26:
|
||||
fcand vi01, 0x3ffff | ftoi4.xyzw vf19, vf19
|
||||
ibne vi00, vi01, L34 | nop
|
||||
iaddi vi08, vi08, -0x1 | nop
|
||||
sq.xyzw vf27, 8(vi02) | nop
|
||||
sq.xyzw vf31, 3(vi02) | nop
|
||||
sq.xyzw vf19, 9(vi02) | nop
|
||||
xgkick vi02 | nop
|
||||
mtir vi02, vf01.y | nop
|
||||
mr32.xyzw vf01, vf01 | nop
|
||||
L27:
|
||||
ibgtz vi08, L22 | nop
|
||||
nop | nop
|
||||
iaddiu vi03, vi00, 0x158 | nop
|
||||
ilwr.x vi08, vi03 | nop
|
||||
ilwr.y vi01, vi03 | nop
|
||||
iaddi vi03, vi03, 0x1 | nop
|
||||
L28:
|
||||
lqi.xyzw vf16, vi03 | nop
|
||||
nop | nop
|
||||
nop | nop
|
||||
mtir vi01, vf16.w | nop
|
||||
mtir vi04, vf16.x | nop
|
||||
mtir vi05, vf16.y | nop
|
||||
mtir vi06, vf16.z | nop
|
||||
ibne vi00, vi01, L29 | nop
|
||||
lq.xyzw vf17, 174(vi04) | nop
|
||||
lq.xyzw vf18, 174(vi05) | nop
|
||||
b L30 | nop
|
||||
lq.xyzw vf19, 174(vi06) | nop
|
||||
L29:
|
||||
lq.xyzw vf19, 174(vi05) | nop
|
||||
lq.xyzw vf18, 174(vi06) | nop
|
||||
L30:
|
||||
nop | mulaw.xyzw ACC, vf09, vf00
|
||||
move.xyzw vf15, vf17 | maddax.xyzw ACC, vf06, vf17
|
||||
nop | madday.xyzw ACC, vf07, vf17
|
||||
nop | maddz.xyzw vf17, vf08, vf17
|
||||
nop | mulaw.xyzw ACC, vf09, vf00
|
||||
nop | sub.xyzw vf29, vf18, vf15
|
||||
nop | sub.xyzw vf30, vf19, vf15
|
||||
div Q, vf12.x, vf17.w | maddax.xyzw ACC, vf06, vf18
|
||||
nop | mul.xyzw vf21, vf17, vf02
|
||||
nop | madday.xyzw ACC, vf07, vf18
|
||||
nop | maddz.xyzw vf18, vf08, vf18
|
||||
nop | mulaw.xyzw ACC, vf09, vf00
|
||||
nop | maddax.xyzw ACC, vf06, vf19
|
||||
nop | madday.xyzw ACC, vf07, vf19
|
||||
div Q, vf12.x, vf18.w | mul.xyz vf17, vf17, Q
|
||||
nop | maddz.xyzw vf19, vf08, vf19
|
||||
nop | mul.xyzw vf22, vf18, vf02
|
||||
nop | opmula.xyz ACC, vf29, vf30
|
||||
nop | opmsub.xyz vf29, vf30, vf29
|
||||
nop | add.xy vf25, vf17, vf03
|
||||
nop | mulw.z vf17, vf17, vf12
|
||||
div Q, vf12.x, vf19.w | mul.xyz vf18, vf18, Q
|
||||
nop | mul.xyzw vf23, vf19, vf02
|
||||
nop | mul.xyz vf29, vf29, vf15
|
||||
nop | add.xyzw vf17, vf17, vf05
|
||||
nop | mul.xy vf25, vf25, vf04
|
||||
nop | nop
|
||||
nop | add.xy vf26, vf18, vf03
|
||||
nop | ftoi4.xyzw vf17, vf17
|
||||
nop | mulw.z vf18, vf18, vf12
|
||||
fcset 0x0 | addy.x vf29, vf29, vf29
|
||||
nop | mul.xyz vf19, vf19, Q
|
||||
sq.xyzw vf25, 4(vi02) | nop
|
||||
sq.xyzw vf17, 5(vi02) | add.xyzw vf18, vf18, vf05
|
||||
nop | clipw.xyz vf21, vf21
|
||||
nop | mul.xy vf26, vf26, vf04
|
||||
nop | addz.x vf29, vf29, vf29
|
||||
nop | ftoi4.xyzw vf18, vf18
|
||||
nop | add.xy vf27, vf19, vf03
|
||||
sq.xyzw vf26, 6(vi02) | mulw.z vf19, vf19, vf12
|
||||
fsand vi01, 0x2 | clipw.xyz vf22, vf22
|
||||
sq.xyzw vf18, 7(vi02) | clipw.xyz vf23, vf23
|
||||
ibeq vi00, vi01, L31 | mul.xy vf27, vf27, vf04
|
||||
nop | add.xyzw vf19, vf19, vf05
|
||||
b L32 | nop
|
||||
lq.xyzw vf31, 887(vi00) | nop
|
||||
L31:
|
||||
lq.xyzw vf31, 886(vi00) | nop
|
||||
L32:
|
||||
fcand vi01, 0x3ffff | ftoi4.xyzw vf19, vf19
|
||||
ibne vi00, vi01, L35 | nop
|
||||
iaddi vi08, vi08, -0x1 | nop
|
||||
sq.xyzw vf27, 8(vi02) | nop
|
||||
sq.xyzw vf31, 3(vi02) | nop
|
||||
sq.xyzw vf19, 9(vi02) | nop
|
||||
xgkick vi02 | nop
|
||||
mtir vi02, vf01.y | nop
|
||||
mr32.xyzw vf01, vf01 | nop
|
||||
L33:
|
||||
ibgtz vi08, L28 | nop
|
||||
nop | nop
|
||||
nop | nop :e
|
||||
nop | nop
|
||||
L34:
|
||||
sq.xyzw vf21, 1000(vi00) | nop
|
||||
sq.xyzw vf22, 1003(vi00) | nop
|
||||
sq.xyzw vf23, 1006(vi00) | nop
|
||||
sq.xyzw vf31, 942(vi00) | nop
|
||||
mfir.x vf29, vi02 | nop
|
||||
mfir.y vf29, vi03 | nop
|
||||
mfir.z vf29, vi07 | nop
|
||||
bal vi15, L36 | nop
|
||||
mfir.w vf29, vi08 | nop
|
||||
mtir vi08, vf29.w | nop
|
||||
mtir vi03, vf29.y | nop
|
||||
mtir vi07, vf29.z | nop
|
||||
b L27 | nop
|
||||
mtir vi02, vf29.x | nop
|
||||
L35:
|
||||
sq.xyzw vf21, 1000(vi00) | nop
|
||||
sq.xyzw vf22, 1003(vi00) | nop
|
||||
sq.xyzw vf23, 1006(vi00) | nop
|
||||
sq.xyzw vf31, 942(vi00) | nop
|
||||
mfir.x vf29, vi02 | nop
|
||||
mfir.y vf29, vi03 | nop
|
||||
mfir.z vf29, vi07 | nop
|
||||
bal vi15, L36 | nop
|
||||
mfir.w vf29, vi08 | nop
|
||||
mtir vi08, vf29.w | nop
|
||||
mtir vi03, vf29.y | nop
|
||||
mtir vi07, vf29.z | nop
|
||||
b L33 | nop
|
||||
mtir vi02, vf29.x | nop
|
||||
L36:
|
||||
sq.xyzw vf00, 893(vi00) | nop
|
||||
sq.xyzw vf00, 900(vi00) | nop
|
||||
sq.xyzw vf00, 907(vi00) | nop
|
||||
sq.xyzw vf00, 914(vi00) | nop
|
||||
sq.xyzw vf00, 921(vi00) | nop
|
||||
sq.xyzw vf00, 928(vi00) | nop
|
||||
iaddiu vi01, vi00, 0x2d3 | nop
|
||||
isw.z vi01, 893(vi00) | nop
|
||||
iaddiu vi01, vi00, 0x2d5 | nop
|
||||
isw.z vi01, 900(vi00) | nop
|
||||
iaddiu vi01, vi00, 0x2d7 | nop
|
||||
isw.z vi01, 907(vi00) | nop
|
||||
iaddiu vi01, vi00, 0x2d9 | nop
|
||||
isw.z vi01, 914(vi00) | nop
|
||||
iaddiu vi01, vi00, 0x2db | nop
|
||||
isw.z vi01, 921(vi00) | nop
|
||||
iaddiu vi01, vi00, 0x2dd | nop
|
||||
isw.z vi01, 928(vi00) | nop
|
||||
iaddiu vi03, vi00, 0x3b0 | nop
|
||||
iaddiu vi04, vi00, 0x3af | nop
|
||||
mfir.x vf31, vi15 | nop
|
||||
iaddi vi05, vi00, 0x0 | nop
|
||||
bal vi15, L38 | nop
|
||||
iaddiu vi07, vi00, 0x3e8 | nop
|
||||
bal vi15, L38 | nop
|
||||
iaddiu vi07, vi00, 0x3eb | nop
|
||||
bal vi15, L38 | nop
|
||||
iaddiu vi07, vi00, 0x3ee | nop
|
||||
b L47 | nop
|
||||
nop | nop
|
||||
L37:
|
||||
sq.xyzw vf00, 893(vi00) | nop
|
||||
sq.xyzw vf00, 900(vi00) | nop
|
||||
sq.xyzw vf00, 907(vi00) | nop
|
||||
sq.xyzw vf00, 914(vi00) | nop
|
||||
sq.xyzw vf00, 921(vi00) | nop
|
||||
sq.xyzw vf00, 928(vi00) | nop
|
||||
iaddiu vi01, vi00, 0x2d3 | nop
|
||||
isw.z vi01, 893(vi00) | nop
|
||||
iaddiu vi01, vi00, 0x2d5 | nop
|
||||
isw.z vi01, 900(vi00) | nop
|
||||
iaddiu vi01, vi00, 0x2d7 | nop
|
||||
isw.z vi01, 907(vi00) | nop
|
||||
iaddiu vi01, vi00, 0x2d9 | nop
|
||||
isw.z vi01, 914(vi00) | nop
|
||||
iaddiu vi01, vi00, 0x2db | nop
|
||||
isw.z vi01, 921(vi00) | nop
|
||||
iaddiu vi01, vi00, 0x2dd | nop
|
||||
isw.z vi01, 928(vi00) | nop
|
||||
iaddiu vi03, vi00, 0x3b0 | nop
|
||||
iaddiu vi04, vi00, 0x3af | nop
|
||||
mfir.x vf31, vi15 | nop
|
||||
iaddi vi05, vi00, 0x0 | nop
|
||||
bal vi15, L38 | nop
|
||||
iaddiu vi07, vi00, 0x3e8 | nop
|
||||
bal vi15, L38 | nop
|
||||
iaddiu vi07, vi00, 0x3eb | nop
|
||||
bal vi15, L38 | nop
|
||||
iaddiu vi07, vi00, 0x3ee | nop
|
||||
bal vi15, L38 | nop
|
||||
iaddiu vi07, vi00, 0x3f1 | nop
|
||||
b L47 | nop
|
||||
nop | nop
|
||||
L38:
|
||||
iaddiu vi09, vi00, 0x37d | nop
|
||||
L39:
|
||||
iaddi vi10, vi00, 0x0 | nop
|
||||
L40:
|
||||
isubiu vi01, vi09, 0x3a7 | nop
|
||||
ilwr.y vi08, vi09 | nop
|
||||
ibgez vi01, L44 | nop
|
||||
ilwr.z vi06, vi09 | nop
|
||||
lq.xyzw vf15, 0(vi07) | nop
|
||||
lq.xyzw vf14, 0(vi08) | nop
|
||||
ibne vi00, vi08, L41 | nop
|
||||
iswr.y vi07, vi09 | nop
|
||||
jalr vi11, vi06 | nop
|
||||
iswr.x vi07, vi09 | nop
|
||||
nop | nop
|
||||
nop | nop
|
||||
nop | nop
|
||||
fsand vi02, 0x2 | nop
|
||||
ibne vi00, vi02, L45 | nop
|
||||
nop | nop
|
||||
b L40 | nop
|
||||
iaddi vi09, vi09, 0x7 | nop
|
||||
L41:
|
||||
jalr vi11, vi06 | nop
|
||||
nop | nop
|
||||
nop | nop
|
||||
nop | nop
|
||||
fsand vi01, 0x2 | nop
|
||||
fsand vi02, 0x2 | nop
|
||||
ibne vi00, vi01, L43 | nop
|
||||
nop | nop
|
||||
ibne vi00, vi02, L42 | nop
|
||||
nop | nop
|
||||
b L40 | nop
|
||||
iaddi vi09, vi09, 0x7 | nop
|
||||
L42:
|
||||
bal vi11, L52 | nop
|
||||
iaddi vi07, vi09, 0x1 | nop
|
||||
sq.xyzw vf16, 1(vi09) | nop
|
||||
b L40 | nop
|
||||
iaddi vi09, vi09, 0x7 | nop
|
||||
L43:
|
||||
ibne vi00, vi02, L45 | nop
|
||||
nop | nop
|
||||
bal vi11, L53 | nop
|
||||
nop | nop
|
||||
sq.xyzw vf16, 4(vi09) | nop
|
||||
iaddi vi09, vi09, 0x7 | nop
|
||||
isw.x vi09, 935(vi10) | nop
|
||||
isw.y vi07, 935(vi10) | nop
|
||||
iaddi vi10, vi10, 0x1 | nop
|
||||
b L40 | nop
|
||||
iaddi vi07, vi09, -0x3 | nop
|
||||
L44:
|
||||
lq.xyzw vf14, 0(vi07) | nop
|
||||
iaddi vi05, vi05, 0x1 | nop
|
||||
div Q, vf00.w, vf14.w | nop
|
||||
nop | mul.xyzw vf14, vf14, vf13
|
||||
iaddi vi03, vi03, 0x2 | nop
|
||||
waitq | subw.w vf14, vf00, vf00
|
||||
nop | mul.xyz vf14, vf14, Q
|
||||
nop | add.xy vf26, vf14, vf03
|
||||
nop | mulw.z vf14, vf14, vf12
|
||||
nop | add.xyzw vf14, vf14, vf05
|
||||
nop | mul.xy vf26, vf26, vf04
|
||||
sq.xyzw vf26, -2(vi03) | ftoi4.xyzw vf14, vf14
|
||||
sq.xyzw vf14, -1(vi03) | nop
|
||||
L45:
|
||||
iblez vi10, L46 | nop
|
||||
nop | nop
|
||||
ilw.x vi09, 934(vi10) | nop
|
||||
ilw.y vi07, 934(vi10) | nop
|
||||
b L40 | nop
|
||||
iaddi vi10, vi10, -0x1 | nop
|
||||
L46:
|
||||
jr vi15 | nop
|
||||
nop | nop
|
||||
L47:
|
||||
iaddiu vi09, vi00, 0x37d | nop
|
||||
L48:
|
||||
ilwr.x vi08, vi09 | nop
|
||||
ilwr.y vi07, vi09 | nop
|
||||
ilwr.z vi06, vi09 | nop
|
||||
nop | nop
|
||||
ibeq vi00, vi08, L50 | nop
|
||||
lq.xyzw vf14, 0(vi07) | nop
|
||||
ibeq vi07, vi08, L50 | nop
|
||||
lq.xyzw vf15, 0(vi08) | nop
|
||||
jalr vi11, vi06 | nop
|
||||
nop | nop
|
||||
nop | nop
|
||||
nop | nop
|
||||
fsand vi01, 0x2 | nop
|
||||
fsand vi02, 0x2 | nop
|
||||
ibeq vi02, vi01, L50 | nop
|
||||
nop | nop
|
||||
ibeq vi00, vi01, L49 | nop
|
||||
nop | nop
|
||||
bal vi11, L53 | nop
|
||||
nop | nop
|
||||
sq.xyzw vf16, 4(vi09) | nop
|
||||
iaddi vi07, vi09, 0x4 | nop
|
||||
ior vi12, vi09, vi00 | nop
|
||||
bal vi15, L39 | nop
|
||||
iaddi vi09, vi09, 0x7 | nop
|
||||
b L50 | nop
|
||||
ior vi09, vi12, vi00 | nop
|
||||
L49:
|
||||
bal vi11, L52 | nop
|
||||
nop | nop
|
||||
sq.xyzw vf16, 1(vi09) | nop
|
||||
iaddi vi07, vi09, 0x1 | nop
|
||||
ior vi12, vi09, vi00 | nop
|
||||
bal vi15, L39 | nop
|
||||
iaddi vi09, vi09, 0x7 | nop
|
||||
ior vi09, vi12, vi00 | nop
|
||||
L50:
|
||||
isubiu vi01, vi09, 0x3a0 | nop
|
||||
iswr.x vi00, vi09 | nop
|
||||
iswr.y vi00, vi09 | nop
|
||||
ibltz vi01, L48 | nop
|
||||
iaddi vi09, vi09, 0x7 | nop
|
||||
ibeq vi00, vi05, L51 | nop
|
||||
mtir vi15, vf31.x | nop
|
||||
iaddiu vi05, vi05, 0x4000 | nop
|
||||
iaddiu vi05, vi05, 0x4000 | nop
|
||||
iswr.x vi05, vi04 | nop
|
||||
iaddiu vi01, vi00, 0x3ac | nop
|
||||
xgkick vi01 | nop
|
||||
lq.xyzw vf30, 888(vi00) | nop
|
||||
lq.xyzw vf31, 890(vi00) | nop
|
||||
iaddiu vi01, vi00, 0x3fe | nop
|
||||
isubiu vi02, vi00, 0x7fff | nop
|
||||
sq.xyzw vf30, 0(vi01) | nop
|
||||
iswr.x vi02, vi01 | nop
|
||||
sq.xyzw vf31, 1(vi01) | nop
|
||||
nop | nop
|
||||
xgkick vi01 | nop
|
||||
L51:
|
||||
nop | nop
|
||||
jr vi15 | nop
|
||||
nop | nop
|
||||
jr vi11 | addx.w vf30, vf14, vf14
|
||||
nop | addx.w vf31, vf15, vf15
|
||||
jr vi11 | subx.w vf30, vf14, vf14
|
||||
nop | subx.w vf31, vf15, vf15
|
||||
jr vi11 | addy.w vf30, vf14, vf14
|
||||
nop | addy.w vf31, vf15, vf15
|
||||
jr vi11 | suby.w vf30, vf14, vf14
|
||||
nop | suby.w vf31, vf15, vf15
|
||||
jr vi11 | addz.w vf30, vf14, vf14
|
||||
nop | addz.w vf31, vf15, vf15
|
||||
jr vi11 | subz.w vf30, vf14, vf14
|
||||
nop | subz.w vf31, vf15, vf15
|
||||
L52:
|
||||
nop | subw.w vf31, vf30, vf31
|
||||
div Q, vf30.w, vf31.w | sub.xyzw vf16, vf15, vf14
|
||||
waitq | mul.xyzw vf16, vf16, Q
|
||||
jr vi11 | add.xyzw vf16, vf14, vf16
|
||||
nop | nop
|
||||
L53:
|
||||
nop | subw.w vf30, vf30, vf31
|
||||
div Q, vf31.w, vf30.w | sub.xyzw vf16, vf14, vf15
|
||||
waitq | mul.xyzw vf16, vf16, Q
|
||||
jr vi11 | sub.xyzw vf16, vf15, vf16
|
||||
nop | nop
|
||||
lq. vf00, 0(vi00) | addx. vf00, vf00, vf00
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user