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>
1286 lines
24 KiB
ArmAsm
1286 lines
24 KiB
ArmAsm
.file "pxpl5yuc.c"
|
|
// PGC Rel 2.0a -opt 4
|
|
.text
|
|
.globl _edgeize
|
|
.align 8
|
|
_edgeize:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// lineno: 90
|
|
fld.l 4(r18), f16
|
|
fld.l 4(r17), f17
|
|
|
|
|
|
fsub.ss f17, f16, f18
|
|
|
|
|
|
fst.l f18, r0(r16)
|
|
|
|
fld.l r0(r17), f19
|
|
fld.l r0(r18), f20
|
|
|
|
|
|
fsub.ss f20, f19, f21
|
|
|
|
|
|
fst.l f21, 4(r16)
|
|
|
|
fld.l r0(r18), f22
|
|
fld.l 4(r17), f23
|
|
fld.l r0(r17), f25
|
|
fld.l 4(r18), f26
|
|
fmul.ss f23, f22, f24
|
|
|
|
|
|
fmul.ss f26, f25, f27
|
|
|
|
|
|
fsub.ss f27, f24, f28
|
|
|
|
|
|
bri r1
|
|
fst.l f28, 8(r16)
|
|
// lineno: 94
|
|
|
|
|
|
|
|
|
|
bri r1
|
|
nop
|
|
.globl _preplanarize
|
|
.align 8
|
|
_preplanarize:
|
|
.a2 = 0
|
|
.f2 = 48
|
|
orh h%.STACK+.f2-16, r0, r28
|
|
or l%.STACK+.f2-16, r28, r28
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// lineno: 169
|
|
fld.l r0(r19), f16
|
|
fld.l r0(r18), f17
|
|
fld.l r0(r17), f19
|
|
fld.l 4(r17), f11
|
|
fsub.ss f17, f16, f18
|
|
orh ha%.C00037, r0, r31
|
|
fld.l l%.C00037(r31), f29
|
|
fmul.ss f18, f19, f20
|
|
fld.l 4(r18), f12
|
|
fld.l 4(r19), f13
|
|
fsub.ss f16, f19, f21
|
|
|
|
|
|
fmul.ss f17, f21, f22
|
|
|
|
|
|
fadd.ss f22, f20, f23
|
|
|
|
|
|
fsub.ss f19, f17, f24
|
|
|
|
|
|
fmul.ss f16, f24, f25
|
|
|
|
|
|
fadd.ss f25, f23, f26
|
|
|
|
|
|
frcp.ss f26, f27
|
|
fmul.ss f26, f27, f28
|
|
|
|
|
|
fsub.ss f29, f28, f30
|
|
|
|
|
|
fmul.ss f27, f30, f31
|
|
|
|
|
|
fmul.ss f26, f31, f8
|
|
|
|
|
|
fsub.ss f29, f8, f9
|
|
|
|
|
|
fmul.ss f9, f31, f10
|
|
|
|
|
|
fst.l f10, 12(r16)
|
|
fst.l f18, r0(r16)
|
|
fst.l f21, 4(r16)
|
|
fst.l f24, 8(r16)
|
|
fst.l f17, -4(r28)
|
|
fst.l f16, -8(r28)
|
|
fst.l f11, -12(r28)
|
|
fst.l f12, -16(r28)
|
|
bri r1
|
|
fst.l f13, -20(r28)
|
|
// lineno: 183
|
|
|
|
|
|
|
|
|
|
bri r1
|
|
nop
|
|
.globl _planarize
|
|
.align 8
|
|
_planarize:
|
|
.a3 = 0
|
|
.f3 = 64
|
|
orh h%.STACK+.f3-16, r0, r28
|
|
or l%.STACK+.f3-16, r28, r28
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// lineno: 188
|
|
shl 2, r20, r29
|
|
fld.l r18(r29), f16
|
|
fld.l r19(r29), f17
|
|
fld.l 4(r17), f19
|
|
fld.l r17(r29), f21
|
|
fsub.ss f16, f17, f18
|
|
fld.l 4(r18), f23
|
|
fld.l 4(r19), f27
|
|
fmul.ss f18, f19, f20
|
|
addu 12, r21, r30
|
|
fld.l r0(r30), f30
|
|
fsub.ss f17, f21, f22
|
|
fld.l r0(r17), f9
|
|
fld.l r0(r18), f10
|
|
fmul.ss f22, f23, f24
|
|
fld.l r0(r19), f11
|
|
|
|
fadd.ss f24, f20, f25
|
|
|
|
|
|
fsub.ss f21, f16, f26
|
|
|
|
|
|
fmul.ss f26, f27, f28
|
|
|
|
|
|
fadd.ss f28, f25, f29
|
|
|
|
|
|
fmul.ss f29, f30, f31
|
|
|
|
|
|
fsub.ss f0, f31, f8
|
|
|
|
|
|
fst.l f8, r0(r16)
|
|
fmul.ss f16, f27, f29
|
|
fld.l r0(r21), f12
|
|
fld.l 4(r21), f14
|
|
fld.l 8(r21), f22
|
|
fmul.ss f21, f12, f13
|
|
fld.l r0(r30), f26
|
|
|
|
fmul.ss f16, f14, f15
|
|
|
|
|
|
fadd.ss f15, f13, f18
|
|
|
|
|
|
fmul.ss f17, f22, f20
|
|
|
|
|
|
fadd.ss f20, f18, f24
|
|
|
|
|
|
fmul.ss f26, f24, f25
|
|
|
|
|
|
fsub.ss f0, f25, f28
|
|
|
|
|
|
fst.l f28, 4(r16)
|
|
fmul.ss f17, f23, f31
|
|
fld.l r0(r30), f30
|
|
|
|
fsub.ss f31, f29, f8
|
|
|
|
|
|
fmul.ss f8, f9, f12
|
|
|
|
|
|
fmul.ss f21, f27, f14
|
|
|
|
|
|
fmul.ss f17, f19, f13
|
|
|
|
|
|
fsub.ss f14, f13, f15
|
|
|
|
|
|
fmul.ss f15, f10, f22
|
|
|
|
|
|
fadd.ss f22, f12, f18
|
|
|
|
|
|
fmul.ss f21, f23, f20
|
|
|
|
|
|
fmul.ss f16, f19, f24
|
|
|
|
|
|
fsub.ss f24, f20, f26
|
|
|
|
|
|
fmul.ss f26, f11, f25
|
|
|
|
|
|
fadd.ss f25, f18, f28
|
|
|
|
|
|
fmul.ss f30, f28, f29
|
|
|
|
|
|
fst.l f29, 8(r16)
|
|
fst.l f21, -24(r28)
|
|
fst.l f16, -28(r28)
|
|
fst.l f17, -32(r28)
|
|
fst.l f10, -4(r28)
|
|
fst.l f11, -8(r28)
|
|
fst.l f19, -12(r28)
|
|
fst.l f23, -16(r28)
|
|
bri r1
|
|
fst.l f27, -20(r28)
|
|
// lineno: 209
|
|
|
|
|
|
|
|
|
|
bri r1
|
|
nop
|
|
.globl _planarizip
|
|
.align 8
|
|
_planarizip:
|
|
.a4 = 0
|
|
.f4 = 64
|
|
addu -(.a4+.f4), sp, sp
|
|
st.l fp,(.f4-16)(sp)
|
|
addu (.f4-16), sp, fp
|
|
st.l r1, 4(fp)
|
|
fst.d f2, -32(fp)
|
|
fst.d f4, -24(fp)
|
|
fst.d f6, -16(fp)
|
|
st.l r4, -8(fp)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
fld.l 4(r28), f5
|
|
fld.l r0(r28), f6
|
|
// lineno: 0
|
|
// lineno: 221
|
|
mov r16, r29
|
|
addu 4, r16, r16
|
|
adds 1281, r0, r30
|
|
st.l r30, 0(r29)
|
|
mov r21, r4
|
|
bte 0x0000, r21, .B244
|
|
mov r21, r4
|
|
// lineno: 226
|
|
.B439: //.M0000
|
|
fld.l r0(r18), f3
|
|
.DB.B439439:
|
|
fld.l r0(r19), f2
|
|
fld.l r0(r17), f21
|
|
fmul.ss f3, f13, f16
|
|
mov r16, r29
|
|
addu 4, r17, r17
|
|
fmul.ss f2, f12, f17
|
|
addu 4, r18, r18
|
|
addu 4, r19, r19
|
|
fsub.ss f17, f16, f18
|
|
adds -1, r4, r4
|
|
|
|
fmul.ss f18, f8, f19
|
|
|
|
|
|
fmul.ss f2, f11, f20
|
|
|
|
|
|
fmul.ss f21, f13, f22
|
|
|
|
|
|
fsub.ss f22, f20, f23
|
|
|
|
|
|
fmul.ss f23, f9, f24
|
|
|
|
|
|
fadd.ss f24, f19, f25
|
|
|
|
|
|
fmul.ss f21, f12, f26
|
|
|
|
|
|
fmul.ss f3, f11, f27
|
|
|
|
|
|
fsub.ss f27, f26, f28
|
|
|
|
|
|
fmul.ss f28, f10, f29
|
|
|
|
|
|
fadd.ss f29, f25, f30
|
|
|
|
|
|
fmul.ss f5, f30, f31
|
|
|
|
|
|
fsub.ss f2, f3, f16
|
|
|
|
|
|
fmul.ss f16, f11, f17
|
|
|
|
|
|
fsub.ss f21, f2, f18
|
|
|
|
|
|
fmul.ss f18, f12, f20
|
|
|
|
|
|
fadd.ss f20, f17, f22
|
|
|
|
|
|
fsub.ss f3, f21, f23
|
|
|
|
|
|
fmul.ss f23, f13, f19
|
|
|
|
|
|
fadd.ss f19, f22, f24
|
|
|
|
|
|
fmul.ss f24, f5, f26
|
|
|
|
|
|
fst.l f26, r0(r16)
|
|
fmul.ss f21, f14, f27
|
|
|
|
|
|
fmul.ss f3, f15, f28
|
|
|
|
|
|
fadd.ss f28, f27, f25
|
|
|
|
|
|
fmul.ss f2, f6, f29
|
|
|
|
|
|
fadd.ss f29, f25, f30
|
|
|
|
|
|
fmul.ss f5, f30, f16
|
|
|
|
|
|
fsub.ss f0, f16, f18
|
|
|
|
|
|
fst.l f18, 4(r29)++
|
|
fst.l f31, 4(r29)++
|
|
addu 4, r29, r16
|
|
xor 0x0000, r4, r0
|
|
bnc.t .DB.B439439
|
|
fld.l r0(r18), f3
|
|
// lineno: 0
|
|
// lineno: 0
|
|
.B244: //.B0001
|
|
// lineno: 241
|
|
|
|
|
|
|
|
|
|
fld.d -32(fp), f2
|
|
fld.d -24(fp), f4
|
|
fld.d -16(fp), f6
|
|
ld.l -8(fp), r4
|
|
adds .a4+16, fp, r31
|
|
ld.l 4(fp), r1
|
|
ld.l 0(fp), fp
|
|
bri r1
|
|
mov r31, sp
|
|
.globl _grab_binchunks
|
|
.align 8
|
|
_grab_binchunks:
|
|
.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 r4, -16(fp)
|
|
st.l r5, -12(fp)
|
|
st.l r6, -8(fp)
|
|
st.l r7, -4(fp)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mov r16, r5
|
|
// lineno: 0
|
|
orh h%_free_binchunks, r0, r31
|
|
or l%_free_binchunks, r31, r7
|
|
// lineno: 262
|
|
|
|
subs 0, r16, r0
|
|
mov r0, r4
|
|
bnc .B259
|
|
mov r0, r4
|
|
// lineno: 265
|
|
.B450: //.M0001
|
|
adds 1032, r0, r16
|
|
.DB.B450450:
|
|
|
|
call _malloc
|
|
nop
|
|
mov r16, r6
|
|
btne 0x0000, r16, .B263
|
|
orh h%.S00264, r0, r31
|
|
call _printf
|
|
or l%.S00264, r31, r16
|
|
// lineno: 269
|
|
.B263: //.B0004
|
|
st.l r0, 1024(r6)
|
|
.DB.B263263:
|
|
adds 1, r4, r4
|
|
ld.l r0(r7), r28
|
|
|
|
st.l r28, 1028(r6)
|
|
|
|
subs r4, r5, r0
|
|
st.l r6, 0(r7)
|
|
bc.t .DB.B450450
|
|
adds 1032, r0, r16
|
|
// lineno: 0
|
|
// lineno: 0
|
|
.B259: //.B0003
|
|
// lineno: 272
|
|
|
|
|
|
|
|
|
|
ld.l -16(fp), r4
|
|
ld.l -12(fp), r5
|
|
ld.l -8(fp), r6
|
|
ld.l -4(fp), r7
|
|
adds .a5+16, fp, r31
|
|
ld.l 4(fp), r1
|
|
ld.l 0(fp), fp
|
|
bri r1
|
|
mov r31, sp
|
|
.globl _next_binchunk
|
|
.align 8
|
|
_next_binchunk:
|
|
.a6 = 0
|
|
.f6 = 32
|
|
addu -(.a6+.f6), sp, sp
|
|
st.l fp,(.f6-16)(sp)
|
|
addu (.f6-16), sp, fp
|
|
st.l r1, 4(fp)
|
|
st.l r4, -8(fp)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// lineno: 0
|
|
orh h%_free_binchunks, r0, r31
|
|
or l%_free_binchunks, r31, r4
|
|
// lineno: 280
|
|
ld.l r0(r4), r28
|
|
|
|
btne 0x0000, r28, .B269
|
|
call _grab_binchunks
|
|
adds 8, r0, r16
|
|
// lineno: 283
|
|
.B269: //.B0005
|
|
ld.l r0(r4), r16
|
|
.DB.B269269:
|
|
|
|
st.l r0, 1024(r16)
|
|
|
|
ld.l r0(r4), r28
|
|
|
|
ld.l 1028(r28), r29
|
|
|
|
st.l r29, 0(r4)
|
|
// lineno: 289
|
|
|
|
|
|
|
|
|
|
ld.l -8(fp), r4
|
|
adds .a6+16, fp, r31
|
|
ld.l 4(fp), r1
|
|
ld.l 0(fp), fp
|
|
bri r1
|
|
mov r31, sp
|
|
.globl _create_screenbins
|
|
.align 8
|
|
_create_screenbins:
|
|
.a7 = 80
|
|
.f7 = 64
|
|
addu -(.a7+.f7), sp, sp
|
|
st.l fp,(.f7-16)(sp)
|
|
addu (.f7-16), sp, fp
|
|
st.l r1, 4(fp)
|
|
st.l r4, -32(fp)
|
|
st.l r5, -28(fp)
|
|
st.l r6, -24(fp)
|
|
st.l r7, -20(fp)
|
|
st.l r8, -16(fp)
|
|
st.l r9, -12(fp)
|
|
st.l r10, -8(fp)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
st.l r16, 48(fp)
|
|
st.l r17, 52(fp)
|
|
// lineno: 0
|
|
orh h%_screen0bins, r0, r31
|
|
or l%_screen0bins, r31, r7
|
|
orh h%_screen1bins, r0, r31
|
|
or l%_screen1bins, r31, r8
|
|
// lineno: 294
|
|
mov r16, r28
|
|
orh h%.S00281, r0, r31
|
|
or l%.S00281, r31, r16
|
|
mov r17, r29
|
|
ld.l 48(fp), r17
|
|
ld.l 52(fp), r18
|
|
shra 6, r28, r9
|
|
call _printf
|
|
shra 7, r29, r10
|
|
ixfr r9, f16
|
|
ixfr r10, f18
|
|
|
|
|
|
fmlow.dd f18, f16, f20
|
|
|
|
|
|
|
|
fxfr f20, r28
|
|
|
|
call _malloc
|
|
shl 3, r28, r16
|
|
ixfr r9, f16
|
|
ixfr r10, f18
|
|
mov r16, r29
|
|
st.l r29, 0(r7)
|
|
fmlow.dd f18, f16, f20
|
|
|
|
|
|
|
|
fxfr f20, r28
|
|
|
|
call _malloc
|
|
shl 3, r28, r16
|
|
mov r16, r28
|
|
orh h%.S00283, r0, r31
|
|
or l%.S00283, r31, r16
|
|
call _printf
|
|
st.l r28, 0(r8)
|
|
ixfr r9, f16
|
|
ixfr r10, f18
|
|
mov r0, r4
|
|
|
|
fmlow.dd f18, f16, f20
|
|
|
|
|
|
|
|
fxfr f20, r28
|
|
|
|
subs 0, r28, r0
|
|
|
|
bnc .B286
|
|
mov r0, r4
|
|
mov r28, r5
|
|
mov r0, r6
|
|
// lineno: 306
|
|
.B473: //.M0002
|
|
call _next_binchunk
|
|
nop
|
|
ld.l r0(r7), r28
|
|
adds 1, r4, r4
|
|
adds r6, r28, r31
|
|
st.l r16, 0(r31)
|
|
|
|
ld.l r0(r7), r29
|
|
ld.l r6(r29), r30
|
|
adds r6, r29, r29
|
|
st.l r30, 4(r29)
|
|
addu 8, r6, r6
|
|
subs r4, r5, r0
|
|
|
|
bc .B473
|
|
// lineno: 0
|
|
// lineno: 308
|
|
.B286: //.B0007
|
|
orh h%.S00288, r0, r31
|
|
.DB.B286286:
|
|
call _printf
|
|
or l%.S00288, r31, r16
|
|
ixfr r9, f16
|
|
ixfr r10, f18
|
|
mov r0, r4
|
|
|
|
fmlow.dd f18, f16, f20
|
|
|
|
|
|
|
|
fxfr f20, r28
|
|
|
|
subs 0, r28, r0
|
|
|
|
bnc .B291
|
|
mov r0, r4
|
|
mov r28, r5
|
|
mov r0, r6
|
|
// lineno: 313
|
|
.B474: //.M0003
|
|
call _next_binchunk
|
|
nop
|
|
ld.l r0(r8), r28
|
|
adds 1, r4, r4
|
|
adds r6, r28, r31
|
|
st.l r16, 0(r31)
|
|
|
|
ld.l r0(r8), r29
|
|
ld.l r6(r29), r30
|
|
adds r6, r29, r29
|
|
st.l r30, 4(r29)
|
|
addu 8, r6, r6
|
|
subs r4, r5, r0
|
|
|
|
bc .B474
|
|
// lineno: 0
|
|
// lineno: 315
|
|
.B291: //.B0009
|
|
ld.l r0(r7), r28
|
|
.DB.B291291:
|
|
orh ha%_screenbins, r0, r31
|
|
st.l r28, l%_screenbins(r31)
|
|
orh h%.S00293, r0, r31
|
|
call _printf
|
|
or l%.S00293, r31, r16
|
|
// lineno: 0
|
|
// lineno: 320
|
|
|
|
|
|
|
|
|
|
ld.l -32(fp), r4
|
|
ld.l -28(fp), r5
|
|
ld.l -24(fp), r6
|
|
ld.l -20(fp), r7
|
|
ld.l -16(fp), r8
|
|
ld.l -12(fp), r9
|
|
ld.l -8(fp), r10
|
|
adds .a7+16, fp, r31
|
|
ld.l 4(fp), r1
|
|
ld.l 0(fp), fp
|
|
bri r1
|
|
mov r31, sp
|
|
.globl _liberate_screenbins
|
|
.align 8
|
|
_liberate_screenbins:
|
|
.a8 = 80
|
|
.f8 = 64
|
|
addu -(.a8+.f8), sp, sp
|
|
st.l fp,(.f8-16)(sp)
|
|
addu (.f8-16), sp, fp
|
|
st.l r1, 4(fp)
|
|
st.l r4, -32(fp)
|
|
st.l r5, -28(fp)
|
|
st.l r6, -24(fp)
|
|
st.l r7, -20(fp)
|
|
st.l r8, -16(fp)
|
|
st.l r9, -12(fp)
|
|
st.l r10, -8(fp)
|
|
st.l r11, -4(fp)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
st.l r16, 48(fp)
|
|
mov r18, r5
|
|
mov r17, r11
|
|
// lineno: 0
|
|
orh h%_free_binchunks, r0, r31
|
|
or l%_free_binchunks, r31, r9
|
|
// lineno: 332
|
|
|
|
subs 0, r17, r0
|
|
mov r0, r10
|
|
bnc .B302
|
|
ld.l 48(fp), r7
|
|
mov r0, r10
|
|
// lineno: 333
|
|
.B486: //.M0006
|
|
|
|
subs 0, r5, r0
|
|
mov r0, r4
|
|
bnc .B305
|
|
mov r0, r4
|
|
// lineno: 334
|
|
.B485: //.M0005
|
|
ld.l r0(r7), r6
|
|
.DB.B485485:
|
|
|
|
btne 0x0000, r6, .B308
|
|
orh h%.S00309, r0, r31
|
|
call _printf
|
|
or l%.S00309, r31, r16
|
|
// lineno: 340
|
|
.B308: //.B0014
|
|
mov r6, r28
|
|
.DB.B308308:
|
|
ld.l 1028(r6), r6
|
|
st.l r0, 1024(r28)
|
|
bte 0x0000, r6, .B313
|
|
mov r8, r20
|
|
mov r6, r18
|
|
mov r9, r19
|
|
// lineno: 344
|
|
.B484: //.M0004
|
|
mov r18, r28
|
|
.DB.B484484:
|
|
ld.l 1028(r18), r18
|
|
ld.l r0(r19), r29
|
|
|
|
st.l r29, 1028(r28)
|
|
xor 0x0000, r18, r0
|
|
bnc.t .DB.B484484
|
|
mov r18, r28
|
|
// lineno: 0
|
|
mov r18, r6
|
|
mov r20, r8
|
|
// lineno: 348
|
|
.B313: //.B0016
|
|
addu 8, r7, r7
|
|
.DB.B313313:
|
|
adds 1, r4, r4
|
|
subs r4, r5, r0
|
|
|
|
bc.t .DB.B485485
|
|
ld.l r0(r7), r6
|
|
// lineno: 0
|
|
// lineno: 350
|
|
.B305: //.B0013
|
|
adds 1, r10, r10
|
|
.DB.B305305:
|
|
subs r10, r11, r0
|
|
|
|
bc .B486
|
|
// lineno: 0
|
|
st.l r7, 48(fp)
|
|
// lineno: 0
|
|
.B302: //.B0011
|
|
// lineno: 351
|
|
|
|
|
|
|
|
|
|
ld.l -32(fp), r4
|
|
ld.l -28(fp), r5
|
|
ld.l -24(fp), r6
|
|
ld.l -20(fp), r7
|
|
ld.l -16(fp), r8
|
|
ld.l -12(fp), r9
|
|
ld.l -8(fp), r10
|
|
ld.l -4(fp), r11
|
|
adds .a8+16, fp, r31
|
|
ld.l 4(fp), r1
|
|
ld.l 0(fp), fp
|
|
bri r1
|
|
mov r31, sp
|
|
.globl _binitize
|
|
.align 8
|
|
_binitize:
|
|
.a9 = 80
|
|
.f9 = 96
|
|
addu -(.a9+.f9), sp, sp
|
|
st.l fp,(.f9-16)(sp)
|
|
addu (.f9-16), sp, fp
|
|
st.l r1, 4(fp)
|
|
st.l r4, -64(fp)
|
|
st.l r5, -60(fp)
|
|
st.l r6, -56(fp)
|
|
st.l r7, -52(fp)
|
|
st.l r8, -48(fp)
|
|
st.l r9, -44(fp)
|
|
st.l r10, -40(fp)
|
|
st.l r11, -36(fp)
|
|
st.l r12, -32(fp)
|
|
st.l r13, -28(fp)
|
|
st.l r14, -24(fp)
|
|
st.l r15, -20(fp)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
st.l r20, 64(fp)
|
|
mov r17, r6
|
|
mov r16, r7
|
|
// lineno: 0
|
|
// lineno: 379
|
|
ftrunc.sd f10, f16
|
|
|
|
|
|
fxfr f16, r28
|
|
fst.l f16, -4(fp)
|
|
ftrunc.sd f11, f18
|
|
|
|
|
|
fxfr f18, r29
|
|
fst.l f18, -8(fp)
|
|
ftrunc.sd f8, f20
|
|
|
|
|
|
fxfr f20, r15
|
|
|
|
ftrunc.sd f9, f22
|
|
|
|
|
|
|
|
adds 0, r28, r0
|
|
fxfr f22, r14
|
|
bc .B495
|
|
adds 0, r29, r0
|
|
|
|
bc .B495
|
|
subs r18, r15, r0
|
|
|
|
bc .B495
|
|
subs r19, r14, r0
|
|
|
|
bc .B495
|
|
shra 7, r14, r14
|
|
ixfr r14, f24
|
|
ixfr r20, f26
|
|
shra 6, r15, r15
|
|
shra 7, r29, r22
|
|
fmlow.dd f24, f26, f28
|
|
orh ha%_screenbins, r0, r31
|
|
ld.l l%_screenbins(r31), r21
|
|
subs r22, r14, r23
|
|
fxfr f28, r30
|
|
adds 1, r23, r12
|
|
adds r30, r15, r16
|
|
shl 3, r16, r17
|
|
adds r17, r21, r10
|
|
st.l r10, -16(fp)
|
|
st.l r16, -12(fp)
|
|
shra 6, r28, r24
|
|
st.l r24, -4(fp)
|
|
st.l r22, -8(fp)
|
|
bte 0x0000, r12, .B342
|
|
subs r24, r15, r25
|
|
adds 1, r25, r13
|
|
// lineno: 412
|
|
.B517: //.M0008
|
|
mov r13, r5
|
|
.DB.B517517:
|
|
bte 0x0000, r13, .B345
|
|
addu 4, r10, r9
|
|
mov r13, r5
|
|
// lineno: 414
|
|
.B514: //.M0007
|
|
ld.l r0(r9), r8
|
|
.DB.B514514:
|
|
|
|
ld.l 1024(r8), r4
|
|
|
|
xor 0x00fe, r4, r0
|
|
bnc .B350
|
|
call _next_binchunk
|
|
nop
|
|
shl 2, r4, r28
|
|
mov r16, r29
|
|
adds r28, r8, r31
|
|
st.l r29, 0(r31)
|
|
adds 1, r4, r30
|
|
shl 2, r30, r17
|
|
adds r17, r8, r31
|
|
st.l r0, 0(r31)
|
|
st.l r16, 0(r9)
|
|
mov r0, r4
|
|
mov r16, r8
|
|
// lineno: 427
|
|
.B350: //.B0025
|
|
shl 2, r4, r28
|
|
.DB.B350350:
|
|
adds r28, r8, r31
|
|
st.l r7, 0(r31)
|
|
adds 1, r4, r29
|
|
shl 2, r29, r30
|
|
adds r30, r8, r31
|
|
st.l r6, 0(r31)
|
|
adds 1, r29, r4
|
|
st.l r4, 1024(r8)
|
|
addu 8, r10, r10
|
|
addu 8, r9, r9
|
|
adds -1, r5, r5
|
|
xor 0x0000, r5, r0
|
|
bnc.t .DB.B514514
|
|
ld.l r0(r9), r8
|
|
// lineno: 0
|
|
// lineno: 432
|
|
.B345: //.B0024
|
|
adds -1, r12, r12
|
|
.DB.B345345:
|
|
xor 0x0000, r12, r0
|
|
bnc.t .DB.B517517
|
|
mov r13, r5
|
|
// lineno: 0
|
|
// lineno: 434
|
|
.B342: //.B0022
|
|
// lineno: 0
|
|
.B495: //.R0001
|
|
// lineno: 436
|
|
|
|
|
|
|
|
|
|
ld.l -64(fp), r4
|
|
ld.l -60(fp), r5
|
|
ld.l -56(fp), r6
|
|
ld.l -52(fp), r7
|
|
ld.l -48(fp), r8
|
|
ld.l -44(fp), r9
|
|
ld.l -40(fp), r10
|
|
ld.l -36(fp), r11
|
|
ld.l -32(fp), r12
|
|
ld.l -28(fp), r13
|
|
ld.l -24(fp), r14
|
|
ld.l -20(fp), r15
|
|
adds .a9+16, fp, r31
|
|
ld.l 4(fp), r1
|
|
ld.l 0(fp), fp
|
|
bri r1
|
|
mov r31, sp
|
|
.globl _safe_binitize
|
|
.align 8
|
|
_safe_binitize:
|
|
.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 r4, -64(fp)
|
|
st.l r5, -60(fp)
|
|
st.l r6, -56(fp)
|
|
st.l r7, -52(fp)
|
|
st.l r8, -48(fp)
|
|
st.l r9, -44(fp)
|
|
st.l r10, -40(fp)
|
|
st.l r11, -36(fp)
|
|
st.l r12, -32(fp)
|
|
st.l r13, -28(fp)
|
|
st.l r14, -24(fp)
|
|
st.l r15, -20(fp)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
st.l r18, 56(fp)
|
|
mov r17, r6
|
|
mov r16, r7
|
|
// lineno: 0
|
|
// lineno: 461
|
|
ftrunc.sd f9, f16
|
|
ixfr r18, f20
|
|
|
|
fxfr f16, r28
|
|
|
|
shra 7, r28, r14
|
|
ixfr r14, f18
|
|
orh ha%_screenbins, r0, r31
|
|
ld.l l%_screenbins(r31), r19
|
|
fmlow.dd f18, f20, f22
|
|
|
|
|
|
|
|
fxfr f22, r29
|
|
|
|
ftrunc.sd f8, f24
|
|
|
|
|
|
fxfr f24, r30
|
|
|
|
shra 6, r30, r15
|
|
adds r29, r15, r16
|
|
shl 3, r16, r17
|
|
adds r17, r19, r10
|
|
st.l r10, -16(fp)
|
|
st.l r16, -12(fp)
|
|
ftrunc.sd f11, f26
|
|
|
|
|
|
fxfr f26, r20
|
|
|
|
shra 7, r20, r21
|
|
subs r21, r14, r22
|
|
adds 1, r22, r12
|
|
ftrunc.sd f10, f28
|
|
st.l r21, -8(fp)
|
|
|
|
fxfr f28, r23
|
|
|
|
shra 6, r23, r24
|
|
st.l r24, -4(fp)
|
|
bte 0x0000, r12, .B373
|
|
subs r24, r15, r25
|
|
adds 1, r25, r13
|
|
// lineno: 489
|
|
.B545: //.M0010
|
|
mov r13, r5
|
|
.DB.B545545:
|
|
bte 0x0000, r13, .B376
|
|
addu 4, r10, r9
|
|
mov r13, r5
|
|
// lineno: 491
|
|
.B542: //.M0009
|
|
ld.l r0(r9), r8
|
|
.DB.B542542:
|
|
|
|
ld.l 1024(r8), r4
|
|
|
|
xor 0x00fe, r4, r0
|
|
bnc .B380
|
|
call _next_binchunk
|
|
nop
|
|
shl 2, r4, r28
|
|
mov r16, r29
|
|
adds r28, r8, r31
|
|
st.l r29, 0(r31)
|
|
adds 1, r4, r30
|
|
shl 2, r30, r17
|
|
adds r17, r8, r31
|
|
st.l r0, 0(r31)
|
|
st.l r16, 0(r9)
|
|
mov r0, r4
|
|
mov r16, r8
|
|
// lineno: 504
|
|
.B380: //.B0030
|
|
shl 2, r4, r28
|
|
.DB.B380380:
|
|
adds r28, r8, r31
|
|
st.l r7, 0(r31)
|
|
adds 1, r4, r29
|
|
shl 2, r29, r30
|
|
adds r30, r8, r31
|
|
st.l r6, 0(r31)
|
|
adds 1, r29, r4
|
|
st.l r4, 1024(r8)
|
|
addu 8, r10, r10
|
|
addu 8, r9, r9
|
|
adds -1, r5, r5
|
|
xor 0x0000, r5, r0
|
|
bnc.t .DB.B542542
|
|
ld.l r0(r9), r8
|
|
// lineno: 0
|
|
// lineno: 509
|
|
.B376: //.B0029
|
|
adds -1, r12, r12
|
|
.DB.B376376:
|
|
xor 0x0000, r12, r0
|
|
bnc.t .DB.B545545
|
|
mov r13, r5
|
|
// lineno: 0
|
|
// lineno: 0
|
|
.B373: //.B0027
|
|
// lineno: 511
|
|
|
|
|
|
|
|
|
|
ld.l -64(fp), r4
|
|
ld.l -60(fp), r5
|
|
ld.l -56(fp), r6
|
|
ld.l -52(fp), r7
|
|
ld.l -48(fp), r8
|
|
ld.l -44(fp), r9
|
|
ld.l -40(fp), r10
|
|
ld.l -36(fp), r11
|
|
ld.l -32(fp), r12
|
|
ld.l -28(fp), r13
|
|
ld.l -24(fp), r14
|
|
ld.l -20(fp), r15
|
|
adds .a10+16, fp, r31
|
|
ld.l 4(fp), r1
|
|
ld.l 0(fp), fp
|
|
bri r1
|
|
mov r31, sp
|
|
.data
|
|
.align 8
|
|
.C00037: // (0)
|
|
.long 0x40000000 // 2.00000000E+00
|
|
.data
|
|
.align 1
|
|
.S00264: //
|
|
// "Malloc failed in grab_binchunk\n"
|
|
.byte 0x4d,0x61,0x6c,0x6c,0x6f,0x63,0x20,0x66,0x61,0x69,0x6c
|
|
.byte 0x65,0x64,0x20,0x69,0x6e,0x20,0x67,0x72,0x61,0x62,0x5f
|
|
.byte 0x62,0x69,0x6e,0x63,0x68,0x75,0x6e,0x6b,0x0a,0x00
|
|
.S00281: //
|
|
// "create_screenbins, %d by %d\n"
|
|
.byte 0x63,0x72,0x65,0x61,0x74,0x65,0x5f,0x73,0x63,0x72,0x65
|
|
.byte 0x65,0x6e,0x62,0x69,0x6e,0x73,0x2c,0x20,0x25,0x64,0x20
|
|
.byte 0x62,0x79,0x20,0x25,0x64,0x0a,0x00
|
|
.S00283: //
|
|
// "grabbing screen0bins\n"
|
|
.byte 0x67,0x72,0x61,0x62,0x62,0x69,0x6e,0x67,0x20,0x73,0x63
|
|
.byte 0x72,0x65,0x65,0x6e,0x30,0x62,0x69,0x6e,0x73,0x0a,0x00
|
|
.S00288: //
|
|
// "grabbing screen1bins\n"
|
|
.byte 0x67,0x72,0x61,0x62,0x62,0x69,0x6e,0x67,0x20,0x73,0x63
|
|
.byte 0x72,0x65,0x65,0x6e,0x31,0x62,0x69,0x6e,0x73,0x0a,0x00
|
|
.S00293: //
|
|
// "created screenbins\n"
|
|
.byte 0x63,0x72,0x65,0x61,0x74,0x65,0x64,0x20,0x73,0x63,0x72
|
|
.byte 0x65,0x65,0x6e,0x62,0x69,0x6e,0x73,0x0a,0x00
|
|
.S00309: //
|
|
// "Error, initially empty region in liberate_screenbins\n"
|
|
.byte 0x45,0x72,0x72,0x6f,0x72,0x2c,0x20,0x69,0x6e,0x69,0x74
|
|
.byte 0x69,0x61,0x6c,0x6c,0x79,0x20,0x65,0x6d,0x70,0x74,0x79
|
|
.byte 0x20,0x72,0x65,0x67,0x69,0x6f,0x6e,0x20,0x69,0x6e,0x20
|
|
.byte 0x6c,0x69,0x62,0x65,0x72,0x61,0x74,0x65,0x5f,0x73,0x63
|
|
.byte 0x72,0x65,0x65,0x6e,0x62,0x69,0x6e,0x73,0x0a,0x00
|
|
.data
|
|
.globl _free_binchunks
|
|
.align 4
|
|
_free_binchunks: //free_binchunks
|
|
.long 0
|
|
.globl _screen0bins
|
|
_screen0bins: //screen0bins
|
|
.long 0
|
|
.globl _screen1bins
|
|
_screen1bins: //screen1bins
|
|
.long 0
|
|
.globl _screenbins
|
|
_screenbins: //screenbins
|
|
.long 0
|
|
.globl _DMAscreen
|
|
_DMAscreen: //DMAscreen
|
|
.long 0
|
|
.globl _writeScreen
|
|
_writeScreen: //writeScreen
|
|
.long 1
|
|
.lcomm .STACK,64
|
|
.extern _printf
|
|
.extern _malloc
|