Un-ignored: the dev drive is the ground truth the restoration and emulator work constantly reference (DPL3/LIBDPL + VRENDER i860 renderer source, BT/RP live+dev game trees, VGL_LABS pod boot, scene/audio content). Kept in-repo for the pod-owner community. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
1531 lines
28 KiB
ArmAsm
1531 lines
28 KiB
ArmAsm
.file "matrix.c"
|
|
// PGC Rel 2.0a -opt 4
|
|
.text
|
|
.align 8
|
|
_sinCos:
|
|
.a1 = 80
|
|
.f1 = 32
|
|
addu -(.a1+.f1), sp, sp
|
|
st.l fp,(.f1-16)(sp)
|
|
addu (.f1-16), sp, fp
|
|
st.l r1, 4(fp)
|
|
fst.d f2, -8(fp)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
st.l r16, 48(fp)
|
|
st.l r17, 52(fp)
|
|
// lineno: 0
|
|
// lineno: 34
|
|
orh ha%_dpl_DegAngles, r0, r31
|
|
ld.l l%_dpl_DegAngles(r31), r28
|
|
|
|
bte 0x0000, r28, .B459
|
|
orh ha%.C00461, r0, r31
|
|
fld.l l%.C00461(r31), f16
|
|
|
|
|
|
br .B462
|
|
fmul.ss f8, f16, f2
|
|
// lineno: 37
|
|
.B459: //.B0000
|
|
fiadd.ss f8, f0, f2
|
|
.DB.B459459:
|
|
// lineno: 39
|
|
.B462: //.B0001
|
|
fmov.sd f2, f8
|
|
.DB.B462462:
|
|
|
|
|
|
|
|
call _sin
|
|
nop
|
|
fiadd.dd f8, f0, f16
|
|
ld.l 48(fp), r28
|
|
fmov.sd f2, f8
|
|
|
|
|
|
fmov.ds f16, f18
|
|
|
|
|
|
call _cos
|
|
fst.l f18, r0(r28)
|
|
fmov.ds f8, f16
|
|
ld.l 52(fp), r28
|
|
|
|
fst.l f16, r0(r28)
|
|
// lineno: 0
|
|
// lineno: 41
|
|
|
|
|
|
|
|
|
|
fld.d -8(fp), f2
|
|
adds .a1+16, fp, r31
|
|
ld.l 4(fp), r1
|
|
ld.l 0(fp), fp
|
|
bri r1
|
|
mov r31, sp
|
|
.align 8
|
|
__concatenate:
|
|
.a2 = 80
|
|
.f2 = 208
|
|
addu -(.a2+.f2), sp, sp
|
|
st.l fp,(.f2-16)(sp)
|
|
addu (.f2-16), sp, fp
|
|
st.l r1, 4(fp)
|
|
st.l r4, -176(fp)
|
|
st.l r5, -172(fp)
|
|
st.l r6, -168(fp)
|
|
st.l r7, -164(fp)
|
|
st.l r8, -160(fp)
|
|
st.l r9, -156(fp)
|
|
st.l r10, -152(fp)
|
|
st.l r11, -148(fp)
|
|
st.l r12, -144(fp)
|
|
st.l r13, -140(fp)
|
|
st.l r14, -136(fp)
|
|
st.l r15, -132(fp)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
st.l r16, 48(fp)
|
|
st.l r18, 56(fp)
|
|
// lineno: 0
|
|
// lineno: 59
|
|
ld.l 56(fp), r10
|
|
fld.l -76(fp), f8
|
|
addu 24, r10, r28
|
|
st.l r28, -92(fp)
|
|
addu 40, r10, r29
|
|
st.l r29, -96(fp)
|
|
addu 56, r10, r30
|
|
st.l r30, -100(fp)
|
|
addu 4, r10, r16
|
|
st.l r16, -104(fp)
|
|
addu 20, r10, r22
|
|
st.l r22, -108(fp)
|
|
addu 36, r10, r23
|
|
st.l r23, -112(fp)
|
|
addu 52, r10, r24
|
|
st.l r24, -116(fp)
|
|
addu 16, r10, r25
|
|
st.l r25, -120(fp)
|
|
addu 32, r10, r26
|
|
st.l r26, -124(fp)
|
|
addu 48, r10, r27
|
|
st.l r27, -128(fp)
|
|
addu 12, r10, r11
|
|
fld.l -80(fp), f9
|
|
fld.l -84(fp), f10
|
|
fld.l -88(fp), f11
|
|
addu 28, r10, r12
|
|
addu 44, r10, r13
|
|
addu 60, r10, r14
|
|
addu 8, r10, r15
|
|
adds -68, fp, r20
|
|
st.l r20, -72(fp)
|
|
adds 3, r0, r19
|
|
st.l r17, -4(fp)
|
|
adds -1, r0, r18
|
|
mov r17, r21
|
|
addu -12, r17, r4
|
|
addu -8, r17, r5
|
|
addu -4, r17, r6
|
|
adds -80, fp, r7
|
|
adds -76, fp, r8
|
|
adds -72, fp, r9
|
|
bla r18, r19,.B648
|
|
pfmul.dd f0, f0, f0
|
|
// lineno: 62
|
|
.B648: //.M0000
|
|
.align 8
|
|
d.pfadd.dd f0, f0, f0
|
|
nop
|
|
|
|
.PL1001:
|
|
d.fnop
|
|
ld.l -120(fp), r28
|
|
.DB.B648648:
|
|
d.fnop
|
|
fld.l 16(r4)++, f10
|
|
d.fnop
|
|
fld.l r0(r28), f16
|
|
d.fnop
|
|
fld.l r0(r21), f18
|
|
d.fnop
|
|
fld.l r0(r10), f19
|
|
d.pfmul.ss f16, f10, f0
|
|
ld.l -124(fp), r29
|
|
d.pfmul.ss f0, f0, f0
|
|
fld.l 16(r5)++, f9
|
|
d.pfmul.ss f19, f18, f0
|
|
fld.l r0(r29), f16
|
|
d.pfmul.ss f0, f0, f19
|
|
ld.l -128(fp), r30
|
|
d.pfmul.ss f0, f0, f0
|
|
fld.l 16(r6)++, f8
|
|
d.mi2p1.ss f19, f0, f30
|
|
fld.l r0(r30), f17
|
|
d.mm12msm.ss f16, f9, f0
|
|
ld.l -104(fp), r16
|
|
d.mm12msm.ss f0, f0, f0
|
|
ld.l -108(fp), r22
|
|
d.m12tpa.ss f17, f8, f21
|
|
ld.l -112(fp), r23
|
|
d.mi2p1.ss f21, f0, f30
|
|
ld.l -116(fp), r24
|
|
d.mm12msm.ss f0, f0, f0
|
|
ld.l -92(fp), r25
|
|
d.mm12msm.ss f0, f0, f17
|
|
ld.l -96(fp), r26
|
|
d.pfadd.ss f17, f30, f30
|
|
ld.l -100(fp), r27
|
|
d.pfadd.ss f0, f0, f0
|
|
addu 16, r21, r21
|
|
d.pfadd.ss f0, f0, f0
|
|
nop
|
|
d.pfadd.ss f0, f0, f30
|
|
fst.l f30, r0(r20)
|
|
d.fnop
|
|
addu 16, r20, r20
|
|
d.fnop
|
|
fld.l r0(r16), f21
|
|
d.fnop
|
|
fld.l r0(r22), f23
|
|
d.fnop
|
|
fld.l r0(r23), f22
|
|
d.pfmul.ss f18, f21, f0
|
|
fld.l r0(r24), f24
|
|
d.pfmul.ss f10, f23, f0
|
|
nop
|
|
d.pfmul.ss f9, f22, f0
|
|
nop
|
|
d.pfmul.ss f8, f24, f23
|
|
nop
|
|
d.mi2p1.ss f23, f0, f30
|
|
nop
|
|
d.mm12msm.ss f0, f0, f22
|
|
nop
|
|
d.mm12msm.ss f0, f0, f24
|
|
nop
|
|
d.pfadd.ss f22, f30, f30
|
|
nop
|
|
d.pfadd.ss f0, f0, f0
|
|
nop
|
|
d.pfadd.ss f0, f0, f0
|
|
nop
|
|
d.pfadd.ss f24, f30, f30
|
|
nop
|
|
d.pfadd.ss f0, f0, f0
|
|
nop
|
|
d.pfadd.ss f0, f0, f0
|
|
nop
|
|
d.pfadd.ss f0, f0, f30
|
|
fst.l f30, 16(r7)++
|
|
|
|
d.fnop
|
|
fld.l r0(r15), f26
|
|
d.fnop
|
|
fld.l r0(r25), f20
|
|
d.fnop
|
|
fld.l r0(r26), f27
|
|
d.pfmul.ss f18, f26, f0
|
|
fld.l r0(r27), f28
|
|
d.pfmul.ss f10, f20, f0
|
|
nop
|
|
d.pfmul.ss f9, f27, f0
|
|
nop
|
|
d.pfmul.ss f8, f28, f20
|
|
nop
|
|
d.mi2p1.ss f20, f0, f30
|
|
nop
|
|
d.mm12msm.ss f0, f0, f27
|
|
nop
|
|
d.mm12msm.ss f0, f0, f28
|
|
nop
|
|
d.pfadd.ss f27, f30, f30
|
|
nop
|
|
d.pfadd.ss f0, f0, f0
|
|
nop
|
|
d.pfadd.ss f0, f0, f0
|
|
nop
|
|
d.pfadd.ss f28, f30, f30
|
|
nop
|
|
d.pfadd.ss f0, f0, f0
|
|
nop
|
|
d.pfadd.ss f0, f0, f0
|
|
nop
|
|
d.pfadd.ss f0, f0, f30
|
|
fst.l f30, 16(r8)++
|
|
|
|
d.fnop
|
|
fld.l r0(r11), f26
|
|
d.fnop
|
|
fld.l r0(r12), f12
|
|
d.fnop
|
|
fld.l r0(r13), f25
|
|
d.pfmul.ss f18, f26, f0
|
|
fld.l r0(r14), f13
|
|
d.pfmul.ss f10, f12, f0
|
|
nop
|
|
d.pfmul.ss f9, f25, f0
|
|
nop
|
|
d.pfmul.ss f8, f13, f12
|
|
nop
|
|
d.mi2p1.ss f12, f0, f30
|
|
nop
|
|
d.mm12msm.ss f0, f0, f25
|
|
nop
|
|
d.mm12msm.ss f0, f0, f13
|
|
nop
|
|
d.pfadd.ss f25, f30, f30
|
|
nop
|
|
d.pfadd.ss f0, f0, f0
|
|
nop
|
|
d.pfadd.ss f0, f0, f0
|
|
nop
|
|
d.pfadd.ss f13, f30, f30
|
|
nop
|
|
d.pfadd.ss f0, f0, f0
|
|
nop
|
|
d.pfadd.ss f0, f0, f0
|
|
nop
|
|
d.pfadd.ss f0, f0, f30
|
|
fst.l f30, 16(r9)++
|
|
d.fnop
|
|
bla r18, r19, .PL1001
|
|
d.fnop
|
|
nop
|
|
.align 8
|
|
fnop
|
|
nop
|
|
fnop
|
|
nop
|
|
// lineno: 0
|
|
ld.l 48(fp), r16
|
|
adds -68, fp, r17
|
|
adds 64, r0, r18
|
|
fst.l f8, -76(fp)
|
|
fst.l f9, -80(fp)
|
|
fst.l f10, -84(fp)
|
|
fst.l f11, -88(fp)
|
|
st.l r20, -72(fp)
|
|
call _memcpy
|
|
st.l r21, -4(fp)
|
|
// lineno: 70
|
|
|
|
|
|
|
|
|
|
ld.l -176(fp), r4
|
|
ld.l -172(fp), r5
|
|
ld.l -168(fp), r6
|
|
ld.l -164(fp), r7
|
|
ld.l -160(fp), r8
|
|
ld.l -156(fp), r9
|
|
ld.l -152(fp), r10
|
|
ld.l -148(fp), r11
|
|
ld.l -144(fp), r12
|
|
ld.l -140(fp), r13
|
|
ld.l -136(fp), r14
|
|
ld.l -132(fp), r15
|
|
adds .a2+16, fp, r31
|
|
ld.l 4(fp), r1
|
|
ld.l 0(fp), fp
|
|
bri r1
|
|
mov r31, sp
|
|
.align 8
|
|
__rotX:
|
|
.a3 = 80
|
|
.f3 = 48
|
|
addu -(.a3+.f3), sp, sp
|
|
st.l fp,(.f3-16)(sp)
|
|
addu (.f3-16), sp, fp
|
|
st.l r1, 4(fp)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
st.l r16, 48(fp)
|
|
// lineno: 108
|
|
adds -8, fp, r16
|
|
call _sinCos
|
|
adds -4, fp, r17
|
|
ld.l 48(fp), r28
|
|
adds -8, fp, r29
|
|
fld.l 8(r28), f16
|
|
fld.l r0(r29), f17
|
|
fld.l 4(r28), f19
|
|
adds -4, fp, r30
|
|
fmul.ss f17, f16, f18
|
|
fld.l r0(r30), f20
|
|
fld.l 24(r28), f29
|
|
fld.l 20(r28), f9
|
|
fmul.ss f20, f19, f21
|
|
|
|
|
|
fsub.ss f21, f18, f22
|
|
fld.l 40(r28), f18
|
|
|
|
fst.l f22, 4(r28)
|
|
|
|
fld.l r0(r29), f23
|
|
fld.l r0(r30), f25
|
|
|
|
fmul.ss f23, f19, f24
|
|
fld.l 36(r28), f19
|
|
|
|
fmul.ss f16, f25, f26
|
|
|
|
|
|
fadd.ss f26, f24, f27
|
|
|
|
|
|
fst.l f27, 8(r28)
|
|
|
|
fld.l r0(r29), f28
|
|
fld.l r0(r30), f31
|
|
|
|
fmul.ss f28, f29, f30
|
|
|
|
|
|
fmul.ss f31, f9, f10
|
|
|
|
|
|
fsub.ss f10, f30, f11
|
|
fld.l 56(r28), f30
|
|
|
|
fst.l f11, 20(r28)
|
|
|
|
fld.l r0(r29), f12
|
|
fld.l r0(r30), f14
|
|
fst.l f30, -16(fp)
|
|
fmul.ss f12, f9, f13
|
|
fld.l 52(r28), f9
|
|
|
|
fmul.ss f29, f14, f15
|
|
|
|
|
|
fadd.ss f15, f13, f17
|
|
|
|
|
|
fst.l f17, 24(r28)
|
|
|
|
fld.l r0(r29), f20
|
|
fld.l r0(r30), f22
|
|
fst.l f9, -12(fp)
|
|
fmul.ss f20, f18, f21
|
|
|
|
|
|
fmul.ss f22, f19, f23
|
|
|
|
|
|
fsub.ss f23, f21, f25
|
|
|
|
|
|
fst.l f25, 36(r28)
|
|
|
|
fld.l r0(r29), f16
|
|
fld.l r0(r30), f26
|
|
|
|
fmul.ss f16, f19, f24
|
|
|
|
|
|
fmul.ss f18, f26, f27
|
|
|
|
|
|
fadd.ss f27, f24, f28
|
|
|
|
|
|
fst.l f28, 40(r28)
|
|
|
|
fld.l r0(r29), f31
|
|
fld.l r0(r30), f11
|
|
|
|
fmul.ss f31, f30, f10
|
|
|
|
|
|
fmul.ss f11, f9, f12
|
|
|
|
|
|
fsub.ss f12, f10, f14
|
|
|
|
|
|
fst.l f14, 52(r28)
|
|
|
|
fld.l r0(r29), f29
|
|
fld.l r0(r30), f15
|
|
|
|
fmul.ss f29, f9, f13
|
|
|
|
|
|
fmul.ss f30, f15, f17
|
|
|
|
|
|
fadd.ss f17, f13, f20
|
|
|
|
|
|
fst.l f20, 56(r28)
|
|
// lineno: 138
|
|
|
|
|
|
|
|
|
|
adds .a3+16, fp, r31
|
|
ld.l 4(fp), r1
|
|
ld.l 0(fp), fp
|
|
bri r1
|
|
mov r31, sp
|
|
.align 8
|
|
__rotY:
|
|
.a4 = 80
|
|
.f4 = 48
|
|
addu -(.a4+.f4), sp, sp
|
|
st.l fp,(.f4-16)(sp)
|
|
addu (.f4-16), sp, fp
|
|
st.l r1, 4(fp)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
st.l r16, 48(fp)
|
|
// lineno: 184
|
|
adds -8, fp, r16
|
|
call _sinCos
|
|
adds -4, fp, r17
|
|
ld.l 48(fp), r28
|
|
adds -4, fp, r29
|
|
fld.l r0(r28), f16
|
|
fld.l r0(r29), f17
|
|
fld.l 8(r28), f19
|
|
adds -8, fp, r30
|
|
fmul.ss f17, f16, f18
|
|
fld.l r0(r30), f20
|
|
fld.l 16(r28), f29
|
|
fld.l 24(r28), f9
|
|
fmul.ss f20, f19, f21
|
|
|
|
|
|
fadd.ss f21, f18, f22
|
|
fld.l 32(r28), f18
|
|
|
|
fst.l f22, r0(r28)
|
|
|
|
fld.l r0(r30), f23
|
|
fld.l r0(r29), f25
|
|
|
|
fmul.ss f23, f16, f24
|
|
fld.l 40(r28), f16
|
|
|
|
fmul.ss f19, f25, f26
|
|
|
|
|
|
fsub.ss f26, f24, f27
|
|
|
|
|
|
fst.l f27, 8(r28)
|
|
|
|
fld.l r0(r29), f28
|
|
fld.l r0(r30), f31
|
|
|
|
fmul.ss f28, f29, f30
|
|
|
|
|
|
fmul.ss f31, f9, f10
|
|
|
|
|
|
fadd.ss f10, f30, f11
|
|
fld.l 48(r28), f30
|
|
|
|
fst.l f11, 16(r28)
|
|
|
|
fld.l r0(r30), f12
|
|
fld.l r0(r29), f14
|
|
fst.l f30, -12(fp)
|
|
fmul.ss f12, f29, f13
|
|
fld.l 56(r28), f29
|
|
|
|
fmul.ss f9, f14, f15
|
|
|
|
|
|
fsub.ss f15, f13, f17
|
|
|
|
|
|
fst.l f17, 24(r28)
|
|
|
|
fld.l r0(r29), f20
|
|
fld.l r0(r30), f22
|
|
fst.l f29, -16(fp)
|
|
fmul.ss f20, f18, f21
|
|
|
|
|
|
fmul.ss f22, f16, f23
|
|
|
|
|
|
fadd.ss f23, f21, f25
|
|
|
|
|
|
fst.l f25, 32(r28)
|
|
|
|
fld.l r0(r30), f19
|
|
fld.l r0(r29), f26
|
|
|
|
fmul.ss f19, f18, f24
|
|
|
|
|
|
fmul.ss f16, f26, f27
|
|
|
|
|
|
fsub.ss f27, f24, f28
|
|
|
|
|
|
fst.l f28, 40(r28)
|
|
|
|
fld.l r0(r29), f31
|
|
fld.l r0(r30), f11
|
|
|
|
fmul.ss f31, f30, f10
|
|
|
|
|
|
fmul.ss f11, f29, f12
|
|
|
|
|
|
fadd.ss f12, f10, f14
|
|
|
|
|
|
fst.l f14, 48(r28)
|
|
|
|
fld.l r0(r30), f9
|
|
fld.l r0(r29), f15
|
|
|
|
fmul.ss f9, f30, f13
|
|
|
|
|
|
fmul.ss f29, f15, f17
|
|
|
|
|
|
fsub.ss f17, f13, f20
|
|
|
|
|
|
fst.l f20, 56(r28)
|
|
// lineno: 213
|
|
|
|
|
|
|
|
|
|
adds .a4+16, fp, r31
|
|
ld.l 4(fp), r1
|
|
ld.l 0(fp), fp
|
|
bri r1
|
|
mov r31, sp
|
|
.align 8
|
|
__rotZ:
|
|
.a5 = 80
|
|
.f5 = 48
|
|
addu -(.a5+.f5), sp, sp
|
|
st.l fp,(.f5-16)(sp)
|
|
addu (.f5-16), sp, fp
|
|
st.l r1, 4(fp)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
st.l r16, 48(fp)
|
|
// lineno: 250
|
|
adds -8, fp, r16
|
|
call _sinCos
|
|
adds -4, fp, r17
|
|
ld.l 48(fp), r28
|
|
adds -8, fp, r29
|
|
fld.l 4(r28), f16
|
|
fld.l r0(r29), f17
|
|
fld.l r0(r28), f19
|
|
adds -4, fp, r30
|
|
fmul.ss f17, f16, f18
|
|
fld.l r0(r30), f20
|
|
fld.l 20(r28), f29
|
|
fld.l 16(r28), f9
|
|
fmul.ss f20, f19, f21
|
|
|
|
|
|
fsub.ss f21, f18, f22
|
|
fld.l 36(r28), f18
|
|
|
|
fst.l f22, r0(r28)
|
|
|
|
fld.l r0(r29), f23
|
|
fld.l r0(r30), f25
|
|
|
|
fmul.ss f23, f19, f24
|
|
fld.l 32(r28), f19
|
|
|
|
fmul.ss f16, f25, f26
|
|
|
|
|
|
fadd.ss f26, f24, f27
|
|
|
|
|
|
fst.l f27, 4(r28)
|
|
|
|
fld.l r0(r29), f28
|
|
fld.l r0(r30), f31
|
|
|
|
fmul.ss f28, f29, f30
|
|
|
|
|
|
fmul.ss f31, f9, f10
|
|
|
|
|
|
fsub.ss f10, f30, f11
|
|
fld.l 52(r28), f30
|
|
|
|
fst.l f11, 16(r28)
|
|
|
|
fld.l r0(r29), f12
|
|
fld.l r0(r30), f14
|
|
fst.l f30, -16(fp)
|
|
fmul.ss f12, f9, f13
|
|
fld.l 48(r28), f9
|
|
|
|
fmul.ss f29, f14, f15
|
|
|
|
|
|
fadd.ss f15, f13, f17
|
|
|
|
|
|
fst.l f17, 20(r28)
|
|
|
|
fld.l r0(r29), f20
|
|
fld.l r0(r30), f22
|
|
fst.l f9, -12(fp)
|
|
fmul.ss f20, f18, f21
|
|
|
|
|
|
fmul.ss f22, f19, f23
|
|
|
|
|
|
fsub.ss f23, f21, f25
|
|
|
|
|
|
fst.l f25, 32(r28)
|
|
|
|
fld.l r0(r29), f16
|
|
fld.l r0(r30), f26
|
|
|
|
fmul.ss f16, f19, f24
|
|
|
|
|
|
fmul.ss f18, f26, f27
|
|
|
|
|
|
fadd.ss f27, f24, f28
|
|
|
|
|
|
fst.l f28, 36(r28)
|
|
|
|
fld.l r0(r29), f31
|
|
fld.l r0(r30), f11
|
|
|
|
fmul.ss f31, f30, f10
|
|
|
|
|
|
fmul.ss f11, f9, f12
|
|
|
|
|
|
fsub.ss f12, f10, f14
|
|
|
|
|
|
fst.l f14, 48(r28)
|
|
|
|
fld.l r0(r29), f29
|
|
fld.l r0(r30), f15
|
|
|
|
fmul.ss f29, f9, f13
|
|
|
|
|
|
fmul.ss f30, f15, f17
|
|
|
|
|
|
fadd.ss f17, f13, f20
|
|
|
|
|
|
fst.l f20, 52(r28)
|
|
// lineno: 279
|
|
|
|
|
|
|
|
|
|
adds .a5+16, fp, r31
|
|
ld.l 4(fp), r1
|
|
ld.l 0(fp), fp
|
|
bri r1
|
|
mov r31, sp
|
|
.globl _dpl_SetAngleMode
|
|
.align 8
|
|
_dpl_SetAngleMode:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// lineno: 286
|
|
orh ha%_dpl_DegAngles, r0, r31
|
|
bri r1
|
|
st.l r16, l%_dpl_DegAngles(r31)
|
|
// lineno: 287
|
|
|
|
|
|
|
|
|
|
bri r1
|
|
nop
|
|
.globl _dpl_IdMatrix
|
|
.align 8
|
|
_dpl_IdMatrix:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// lineno: 294
|
|
orh ha%.C00036, r0, r31
|
|
fld.l l%.C00036(r31), f16
|
|
fst.l f0, 4(r16)
|
|
fst.l f0, 8(r16)
|
|
fst.l f16, r0(r16)
|
|
fst.l f16, 20(r16)
|
|
fst.l f16, 40(r16)
|
|
fst.l f16, 60(r16)
|
|
fst.l f0, 12(r16)
|
|
fst.l f0, 16(r16)
|
|
fst.l f0, 24(r16)
|
|
fst.l f0, 28(r16)
|
|
fst.l f0, 32(r16)
|
|
fst.l f0, 36(r16)
|
|
fst.l f0, 44(r16)
|
|
fst.l f0, 48(r16)
|
|
fst.l f0, 52(r16)
|
|
bri r1
|
|
fst.l f0, 56(r16)
|
|
// lineno: 295
|
|
|
|
|
|
|
|
|
|
bri r1
|
|
nop
|
|
.globl _dpl_Translate
|
|
.align 8
|
|
_dpl_Translate:
|
|
.a8 = 80
|
|
.f8 = 96
|
|
addu -(.a8+.f8), sp, sp
|
|
st.l fp,(.f8-16)(sp)
|
|
addu (.f8-16), sp, fp
|
|
st.l r1, 4(fp)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
st.l r16, 48(fp)
|
|
// lineno: 302
|
|
orh ha%.C00036, r0, r31
|
|
fld.l l%.C00036(r31), f16
|
|
ld.l 48(fp), r17
|
|
adds -64, fp, r18
|
|
fst.l f16, -64(fp)
|
|
fst.l f16, -44(fp)
|
|
fst.l f16, -24(fp)
|
|
fst.l f16, -4(fp)
|
|
fst.l f8, -16(fp)
|
|
fst.l f9, -12(fp)
|
|
fst.l f10, -8(fp)
|
|
fst.l f0, -60(fp)
|
|
fst.l f0, -56(fp)
|
|
fst.l f0, -52(fp)
|
|
fst.l f0, -48(fp)
|
|
fst.l f0, -40(fp)
|
|
fst.l f0, -36(fp)
|
|
fst.l f0, -32(fp)
|
|
fst.l f0, -28(fp)
|
|
call __concatenate
|
|
fst.l f0, -20(fp)
|
|
// lineno: 309
|
|
|
|
|
|
|
|
|
|
adds .a8+16, fp, r31
|
|
ld.l 4(fp), r1
|
|
ld.l 0(fp), fp
|
|
bri r1
|
|
mov r31, sp
|
|
.globl _dpl_Rotate
|
|
.align 8
|
|
_dpl_Rotate:
|
|
.a9 = 80
|
|
.f9 = 32
|
|
addu -(.a9+.f9), sp, sp
|
|
st.l fp,(.f9-16)(sp)
|
|
addu (.f9-16), sp, fp
|
|
st.l r1, 4(fp)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// lineno: 0
|
|
// lineno: 314
|
|
btne 0x0000, r17, .B517
|
|
|
|
|
|
orh h%.B518, r0, r1
|
|
br __rotX
|
|
or l%.B518, r1, r1
|
|
// lineno: 315
|
|
.B517: //.B0004
|
|
btne 0x0001, r17, .B519
|
|
|
|
|
|
orh h%.B520, r0, r1
|
|
br __rotY
|
|
or l%.B520, r1, r1
|
|
// lineno: 316
|
|
.B519: //.B0006
|
|
|
|
|
|
call __rotZ
|
|
nop
|
|
// lineno: 0
|
|
.B520: //.B0007
|
|
// lineno: 0
|
|
.B518: //.B0005
|
|
// lineno: 317
|
|
|
|
|
|
|
|
|
|
adds .a9+16, fp, r31
|
|
ld.l 4(fp), r1
|
|
ld.l 0(fp), fp
|
|
bri r1
|
|
mov r31, sp
|
|
.globl _dpl_Scale
|
|
.align 8
|
|
_dpl_Scale:
|
|
.a10 = 80
|
|
.f10 = 96
|
|
addu -(.a10+.f10), sp, sp
|
|
st.l fp,(.f10-16)(sp)
|
|
addu (.f10-16), sp, fp
|
|
st.l r1, 4(fp)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
st.l r16, 48(fp)
|
|
// lineno: 324
|
|
orh ha%.C00036, r0, r31
|
|
fld.l l%.C00036(r31), f16
|
|
adds -64, fp, r18
|
|
fst.l f8, -64(fp)
|
|
fst.l f9, -44(fp)
|
|
fst.l f10, -24(fp)
|
|
fst.l f16, -4(fp)
|
|
|
|
ld.l 48(fp), r17
|
|
fst.l f0, -60(fp)
|
|
fst.l f0, -56(fp)
|
|
fst.l f0, -52(fp)
|
|
fst.l f0, -48(fp)
|
|
fst.l f0, -40(fp)
|
|
fst.l f0, -36(fp)
|
|
fst.l f0, -32(fp)
|
|
fst.l f0, -28(fp)
|
|
fst.l f0, -20(fp)
|
|
fst.l f0, -16(fp)
|
|
fst.l f0, -12(fp)
|
|
call __concatenate
|
|
fst.l f0, -8(fp)
|
|
// lineno: 331
|
|
|
|
|
|
|
|
|
|
adds .a10+16, fp, r31
|
|
ld.l 4(fp), r1
|
|
ld.l 0(fp), fp
|
|
bri r1
|
|
mov r31, sp
|
|
.globl _dpl_Concat
|
|
.align 8
|
|
_dpl_Concat:
|
|
.a11 = 80
|
|
.f11 = 32
|
|
addu -(.a11+.f11), sp, sp
|
|
st.l fp,(.f11-16)(sp)
|
|
addu (.f11-16), sp, fp
|
|
st.l r1, 4(fp)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// lineno: 336
|
|
|
|
|
|
|
|
call __concatenate
|
|
nop
|
|
// lineno: 337
|
|
|
|
|
|
|
|
|
|
adds .a11+16, fp, r31
|
|
ld.l 4(fp), r1
|
|
ld.l 0(fp), fp
|
|
bri r1
|
|
mov r31, sp
|
|
.globl _dpl_Invert
|
|
.align 8
|
|
_dpl_Invert:
|
|
.a12 = 0
|
|
.f12 = 80
|
|
orh h%.STACK+.f12-16, r0, r28
|
|
or l%.STACK+.f12-16, r28, r28
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// lineno: 362
|
|
orh ha%.C00036, r0, r31
|
|
fld.l l%.C00036(r31), f16
|
|
fst.l f0, 12(r16)
|
|
fst.l f0, 28(r16)
|
|
fst.l f16, 60(r16)
|
|
fst.l f0, 44(r16)
|
|
|
|
fld.l 32(r17), f17
|
|
fld.l 24(r17), f18
|
|
fld.l 16(r17), f20
|
|
fld.l 40(r17), f21
|
|
fmul.ss f18, f17, f19
|
|
fld.l 4(r17), f25
|
|
fld.l 36(r17), f27
|
|
fmul.ss f21, f20, f22
|
|
fld.l 20(r17), f29
|
|
fld.l r0(r17), f8
|
|
fsub.ss f22, f19, f23
|
|
fld.l 8(r17), f14
|
|
|
|
fsub.ss f0, f23, f24
|
|
|
|
|
|
fmul.ss f24, f25, f26
|
|
|
|
|
|
fmul.ss f18, f27, f28
|
|
|
|
|
|
fmul.ss f21, f29, f30
|
|
|
|
|
|
fsub.ss f30, f28, f31
|
|
orh ha%.C00037, r0, r31
|
|
fld.l l%.C00037(r31), f28
|
|
fmul.ss f31, f8, f9
|
|
|
|
|
|
fadd.ss f26, f9, f10
|
|
|
|
|
|
fmul.ss f29, f17, f11
|
|
|
|
|
|
fmul.ss f27, f20, f12
|
|
|
|
|
|
fsub.ss f12, f11, f13
|
|
|
|
|
|
fmul.ss f13, f14, f15
|
|
|
|
|
|
fadd.ss f15, f10, f19
|
|
|
|
|
|
frcp.ss f19, f22
|
|
fmul.ss f19, f22, f23
|
|
|
|
|
|
fsub.ss f28, f23, f30
|
|
|
|
|
|
fmul.ss f22, f30, f9
|
|
|
|
|
|
fmul.ss f19, f9, f26
|
|
|
|
|
|
fsub.ss f28, f26, f11
|
|
fld.l 48(r17), f26
|
|
|
|
fmul.ss f11, f9, f12
|
|
|
|
|
|
fmul.ss f27, f14, f10
|
|
|
|
|
|
fmul.ss f21, f25, f15
|
|
|
|
|
|
fsub.ss f15, f10, f23
|
|
fld.l 52(r17), f15
|
|
|
|
fmul.ss f12, f23, f30
|
|
|
|
|
|
fsub.ss f0, f30, f22
|
|
|
|
|
|
fmul.ss f22, f26, f28
|
|
|
|
|
|
fmul.ss f17, f14, f9
|
|
|
|
|
|
fmul.ss f21, f8, f11
|
|
|
|
|
|
fsub.ss f11, f9, f19
|
|
|
|
|
|
fmul.ss f12, f19, f10
|
|
|
|
|
|
fmul.ss f10, f15, f23
|
|
|
|
|
|
fadd.ss f23, f28, f30
|
|
|
|
|
|
fmul.ss f17, f25, f9
|
|
|
|
|
|
fmul.ss f27, f8, f11
|
|
|
|
|
|
fsub.ss f11, f9, f19
|
|
fld.l 56(r17), f9
|
|
|
|
fmul.ss f12, f19, f28
|
|
|
|
|
|
fsub.ss f0, f28, f23
|
|
|
|
|
|
fmul.ss f23, f9, f11
|
|
|
|
|
|
fadd.ss f11, f30, f19
|
|
|
|
|
|
fsub.ss f0, f19, f28
|
|
|
|
|
|
fst.l f0, 12(r17)
|
|
fst.l f0, 28(r17)
|
|
fst.l f0, 44(r17)
|
|
fst.l f16, 60(r17)
|
|
fst.l f28, 52(r16)
|
|
fmul.ss f20, f14, f30
|
|
|
|
|
|
fmul.ss f18, f8, f11
|
|
|
|
|
|
fsub.ss f11, f30, f19
|
|
|
|
|
|
fmul.ss f12, f19, f16
|
|
|
|
|
|
fsub.ss f0, f16, f28
|
|
|
|
|
|
fmul.ss f28, f15, f30
|
|
|
|
|
|
fmul.ss f29, f14, f11
|
|
|
|
|
|
fmul.ss f18, f25, f19
|
|
|
|
|
|
fsub.ss f19, f11, f16
|
|
|
|
|
|
fmul.ss f12, f16, f11
|
|
|
|
|
|
fmul.ss f11, f26, f19
|
|
|
|
|
|
fadd.ss f30, f19, f16
|
|
|
|
|
|
fmul.ss f20, f25, f19
|
|
|
|
|
|
fmul.ss f29, f8, f30
|
|
|
|
|
|
fsub.ss f30, f19, f8
|
|
|
|
|
|
fmul.ss f12, f8, f19
|
|
|
|
|
|
fmul.ss f19, f9, f30
|
|
|
|
|
|
fadd.ss f30, f16, f8
|
|
|
|
|
|
fsub.ss f0, f8, f16
|
|
|
|
|
|
fst.l f16, 56(r16)
|
|
fmul.ss f31, f12, f30
|
|
|
|
|
|
fmul.ss f30, f26, f8
|
|
|
|
|
|
fmul.ss f24, f12, f16
|
|
|
|
|
|
fmul.ss f16, f15, f31
|
|
|
|
|
|
fadd.ss f31, f8, f24
|
|
|
|
|
|
fmul.ss f13, f12, f8
|
|
|
|
|
|
fmul.ss f8, f9, f31
|
|
|
|
|
|
fadd.ss f31, f24, f13
|
|
|
|
|
|
fsub.ss f0, f13, f24
|
|
|
|
|
|
fst.l f24, 48(r16)
|
|
fst.l f11, -48(r28)
|
|
fst.l f19, -56(r28)
|
|
fst.l f22, 4(r16)
|
|
fst.l f23, 36(r16)
|
|
fst.l f28, -52(r28)
|
|
fst.l f28, 24(r16)
|
|
fst.l f30, r0(r16)
|
|
fst.l f16, 16(r16)
|
|
fst.l f8, 32(r16)
|
|
fst.l f10, 20(r16)
|
|
fst.l f11, 8(r16)
|
|
fst.l f19, 40(r16)
|
|
fst.l f12, -60(r28)
|
|
fst.l f25, -4(r28)
|
|
fst.l f14, -8(r28)
|
|
fst.l f20, -12(r28)
|
|
fst.l f29, -16(r28)
|
|
fst.l f18, -20(r28)
|
|
fst.l f17, -24(r28)
|
|
fst.l f27, -28(r28)
|
|
fst.l f21, -32(r28)
|
|
fst.l f26, -36(r28)
|
|
fst.l f15, -40(r28)
|
|
bri r1
|
|
fst.l f9, -44(r28)
|
|
// lineno: 427
|
|
|
|
|
|
|
|
|
|
bri r1
|
|
nop
|
|
.globl _dpl_XformPoint
|
|
.align 8
|
|
_dpl_XformPoint:
|
|
.a13 = 80
|
|
.f13 = 64
|
|
addu -(.a13+.f13), sp, sp
|
|
st.l fp,(.f13-16)(sp)
|
|
addu (.f13-16), sp, fp
|
|
st.l r1, 4(fp)
|
|
st.l r4, -40(fp)
|
|
st.l r5, -36(fp)
|
|
st.l r6, -32(fp)
|
|
st.l r7, -28(fp)
|
|
st.l r8, -24(fp)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
st.l r16, 48(fp)
|
|
st.l r17, 52(fp)
|
|
st.l r18, 56(fp)
|
|
// lineno: 0
|
|
// lineno: 0
|
|
.B556: //.B0008
|
|
ld.l 56(fp), r28
|
|
.DB.B556556:
|
|
ld.l 52(fp), r6
|
|
addu -4, r28, r20
|
|
addu 12, r28, r21
|
|
addu 28, r28, r4
|
|
addu 44, r28, r5
|
|
addu 4, r6, r7
|
|
addu 8, r6, r8
|
|
adds 3, r0, r18
|
|
adds -1, r0, r17
|
|
adds -20, fp, r19
|
|
bla r17, r18,.B784
|
|
pfmul.dd f0, f0, f0
|
|
// lineno: 439
|
|
.B784: //.M0001
|
|
.align 8
|
|
d.pfadd.dd f0, f0, f0
|
|
nop
|
|
|
|
.PL2001:
|
|
d.fnop
|
|
fld.l r0(r6), f16
|
|
.DB.B784784:
|
|
d.fnop
|
|
fld.l 4(r20)++, f17
|
|
d.fnop
|
|
fld.l 4(r21)++, f19
|
|
d.fnop
|
|
fld.l r0(r7), f20
|
|
d.pfmul.ss f17, f16, f0
|
|
fld.l 4(r4)++, f21
|
|
d.pfmul.ss f0, f0, f0
|
|
fld.l r0(r8), f16
|
|
d.pfmul.ss f19, f20, f0
|
|
fld.l 4(r5)++, f17
|
|
d.pfmul.ss f0, f0, f20
|
|
nop
|
|
d.pfmul.ss f21, f16, f0
|
|
nop
|
|
d.mi2p1.ss f20, f0, f30
|
|
nop
|
|
d.mm12msm.ss f0, f0, f0
|
|
nop
|
|
d.mm12msm.ss f0, f0, f21
|
|
nop
|
|
d.pfadd.ss f21, f30, f30
|
|
nop
|
|
d.pfadd.ss f0, f0, f0
|
|
nop
|
|
d.pfadd.ss f0, f0, f0
|
|
nop
|
|
d.pfadd.ss f17, f30, f30
|
|
nop
|
|
d.pfadd.ss f0, f0, f0
|
|
nop
|
|
d.pfadd.ss f0, f0, f0
|
|
nop
|
|
d.pfadd.ss f0, f0, f30
|
|
fst.l f30, 4(r19)++
|
|
d.fnop
|
|
bla r17, r18, .PL2001
|
|
d.fnop
|
|
nop
|
|
.align 8
|
|
fnop
|
|
nop
|
|
fnop
|
|
nop
|
|
// lineno: 440
|
|
.B557: //.B0009
|
|
ld.l 48(fp), r16
|
|
.DB.B557557:
|
|
adds -16, fp, r17
|
|
call _memcpy
|
|
adds 16, r0, r18
|
|
// lineno: 442
|
|
|
|
|
|
|
|
|
|
ld.l -40(fp), r4
|
|
ld.l -36(fp), r5
|
|
ld.l -32(fp), r6
|
|
ld.l -28(fp), r7
|
|
ld.l -24(fp), r8
|
|
adds .a13+16, fp, r31
|
|
ld.l 4(fp), r1
|
|
ld.l 0(fp), fp
|
|
bri r1
|
|
mov r31, sp
|
|
.data
|
|
.align 8
|
|
.C00461: // (0)
|
|
.long 0x3c8efa35 // 1.74532924E-02
|
|
.C00036: // (4)
|
|
.long 0x3f800000 // 1.00000000E+00
|
|
.C00037: // (8)
|
|
.long 0x40000000 // 2.00000000E+00
|
|
.data
|
|
.align 4
|
|
_dpl_DegAngles: //dpl_DegAngles
|
|
.long 1
|
|
.lcomm .STACK,80
|
|
.extern _memcpy
|
|
.extern _cos
|
|
.extern _sin
|