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>
232 lines
5.7 KiB
Scheme
232 lines
5.7 KiB
Scheme
//{{{ _reg_dump
|
|
.globl _reg_dump
|
|
.align 8
|
|
|
|
_reg_dump::
|
|
//{{{ proc entry - save r1 r2 r3
|
|
addu -256, sp, sp
|
|
st.l r1,0(sp)
|
|
adds 256,sp,r1
|
|
// save r2 **before** call into stack frame
|
|
st.l r1,4(sp)
|
|
st.l fp,8(sp)
|
|
//}}}
|
|
//{{{ save r4..r31, f2..f31
|
|
st.l r4, 12(sp)
|
|
st.l r5, 16(sp)
|
|
st.l r6, 20(sp)
|
|
st.l r7, 24(sp)
|
|
st.l r8, 28(sp)
|
|
st.l r9, 32(sp)
|
|
st.l r10, 36(sp)
|
|
st.l r11, 40(sp)
|
|
st.l r12, 44(sp)
|
|
st.l r13, 48(sp)
|
|
st.l r14, 52(sp)
|
|
st.l r15, 56(sp)
|
|
st.l r16, 60(sp)
|
|
//st.l r17, 64(sp)
|
|
st.l r18, 68(sp)
|
|
st.l r19, 72(sp)
|
|
st.l r20, 76(sp)
|
|
st.l r21, 80(sp)
|
|
st.l r22, 84(sp)
|
|
st.l r23, 88(sp)
|
|
st.l r24, 92(sp)
|
|
st.l r25, 96(sp)
|
|
st.l r26, 100(sp)
|
|
st.l r27, 104(sp)
|
|
st.l r28, 108(sp)
|
|
st.l r29, 112(sp)
|
|
st.l r30, 116(sp)
|
|
st.l r31, 120(sp)
|
|
adds 120, sp, sp
|
|
fst.l f2, 4(sp)++
|
|
fst.l f3, 4(sp)++
|
|
fst.l f4, 4(sp)++
|
|
fst.l f5, 4(sp)++
|
|
fst.l f6, 4(sp)++
|
|
fst.l f7, 4(sp)++
|
|
fst.l f8, 4(sp)++
|
|
fst.l f9, 4(sp)++
|
|
fst.l f10, 4(sp)++
|
|
fst.l f11, 4(sp)++
|
|
fst.l f12, 4(sp)++
|
|
fst.l f13, 4(sp)++
|
|
fst.l f14, 4(sp)++
|
|
fst.l f15, 4(sp)++
|
|
fst.l f16, 4(sp)++
|
|
fst.l f17, 4(sp)++
|
|
fst.l f18, 4(sp)++
|
|
fst.l f19, 4(sp)++
|
|
fst.l f20, 4(sp)++
|
|
fst.l f21, 4(sp)++
|
|
fst.l f22, 4(sp)++
|
|
fst.l f23, 4(sp)++
|
|
fst.l f24, 4(sp)++
|
|
fst.l f25, 4(sp)++
|
|
fst.l f26, 4(sp)++
|
|
fst.l f27, 4(sp)++
|
|
fst.l f28, 4(sp)++
|
|
fst.l f29, 4(sp)++
|
|
fst.l f30, 4(sp)++
|
|
fst.l f31, 4(sp)++
|
|
adds -240, sp, sp
|
|
//}}}
|
|
call _trace_regs
|
|
mov sp, r16
|
|
//{{{ restore all
|
|
ld.l 12(sp) , r4
|
|
ld.l 16(sp) , r5
|
|
ld.l 20(sp) , r6
|
|
ld.l 24(sp) , r7
|
|
ld.l 28(sp) , r8
|
|
ld.l 32(sp) , r9
|
|
ld.l 36(sp) , r10
|
|
ld.l 40(sp) , r11
|
|
ld.l 44(sp) , r12
|
|
ld.l 48(sp) , r13
|
|
ld.l 52(sp) , r14
|
|
ld.l 56(sp) , r15
|
|
ld.l 60(sp) , r16
|
|
ld.l 64(sp) , r17
|
|
ld.l 68(sp) , r18
|
|
ld.l 72(sp) , r19
|
|
ld.l 76(sp) , r20
|
|
ld.l 80(sp) , r21
|
|
ld.l 84(sp) , r22
|
|
ld.l 88(sp) , r23
|
|
ld.l 92(sp) , r24
|
|
ld.l 96(sp) , r25
|
|
ld.l 100(sp) , r26
|
|
ld.l 104(sp) , r27
|
|
ld.l 108(sp) , r28
|
|
ld.l 112(sp) , r29
|
|
ld.l 116(sp) , r30
|
|
ld.l 120(sp) , r31
|
|
adds 120, sp, sp
|
|
fld.l 4(sp)++, f2
|
|
fld.l 4(sp)++, f3
|
|
fld.l 4(sp)++, f4
|
|
fld.l 4(sp)++, f5
|
|
fld.l 4(sp)++, f6
|
|
fld.l 4(sp)++, f7
|
|
fld.l 4(sp)++, f8
|
|
fld.l 4(sp)++, f9
|
|
fld.l 4(sp)++, f10
|
|
fld.l 4(sp)++, f11
|
|
fld.l 4(sp)++, f12
|
|
fld.l 4(sp)++, f13
|
|
fld.l 4(sp)++, f14
|
|
fld.l 4(sp)++, f15
|
|
fld.l 4(sp)++, f16
|
|
fld.l 4(sp)++, f17
|
|
fld.l 4(sp)++, f18
|
|
fld.l 4(sp)++, f19
|
|
fld.l 4(sp)++, f20
|
|
fld.l 4(sp)++, f21
|
|
fld.l 4(sp)++, f22
|
|
fld.l 4(sp)++, f23
|
|
fld.l 4(sp)++, f24
|
|
fld.l 4(sp)++, f25
|
|
fld.l 4(sp)++, f26
|
|
fld.l 4(sp)++, f27
|
|
fld.l 4(sp)++, f28
|
|
fld.l 4(sp)++, f29
|
|
fld.l 4(sp)++, f30
|
|
fld.l 4(sp)++, f31
|
|
adds -240, sp, sp
|
|
|
|
//}}}
|
|
//{{{ proc exit
|
|
ld.l 0(sp),r1
|
|
ld.l 8(sp),fp
|
|
bri r1
|
|
addu 256, sp, sp
|
|
//}}}
|
|
//}}}
|
|
|
|
|
|
// constant for 1/x code
|
|
.data
|
|
.align 8
|
|
|
|
.globl _Cmax_x
|
|
.globl _Cmax_y
|
|
.globl _Cdelta_u
|
|
.globl _Cdelta_v
|
|
|
|
_Cdelta_u:
|
|
.long 0x0
|
|
_Cdelta_v:
|
|
.long 0x0
|
|
|
|
_Cmax_x: // (0)
|
|
.Cmax_x: // (0)
|
|
.C640:
|
|
.long 0x442fbf5c // 7.02989990E+02
|
|
|
|
_Cmax_y: // (0)
|
|
.Cmax_y: // (0)
|
|
.C480:
|
|
.long 0x43ff7eb8 // 5.10989990E+02
|
|
|
|
.fminus_one:
|
|
.long 0xbf800000 // -1.00000000E+00
|
|
|
|
.fminus_256:
|
|
.long 0xc37ffd71 // -2.55990005E+02
|
|
|
|
.C00037: // (0)
|
|
.two_point_0: // (0)
|
|
.long 0x40000000 // 2.00000000E+00
|
|
|
|
.eight_point_0: // (0)
|
|
.long 0x41000000 // 8.00000000E+00
|
|
|
|
.four_point_0: // (0)
|
|
.long 0x40800000 // 4.00000000E+00
|
|
|
|
.C362436: // (0)
|
|
.long 0x3ecccccd // 4.00000006E-01
|
|
|
|
//.Czscale1024: // (0)
|
|
// .long 0x49800000 // 1.04857600E+06
|
|
|
|
.Czscale: // (0)
|
|
.long 0x497fffff // 1.04857588E+06
|
|
|
|
.Ctexscale: // (0)
|
|
.long 0x477fffff // 6.55359883E+04
|
|
|
|
_.Cturn_z_to_tex: // (0)
|
|
// .long 0x4879999a // 2.55590406E+05
|
|
.long 0x48f99980 // 5.11180000E+05
|
|
|
|
// NB this is now by 4 !!!!!
|
|
_.Cturn_z_to_tex_by_4: // (0)
|
|
.long 0x47f99980 // 1.27795000E+05
|
|
|
|
_.Cturn_z_to_tex_by_8: // (0)
|
|
.long 0x4779999a // 6.38976016E+04
|
|
|
|
.r5r6r7opcodes:
|
|
.string "r5 r6 r7 have opcodes?"
|
|
.byte 0x0
|
|
|
|
.done_opacity_intro:
|
|
.string "done opacity intro"
|
|
.byte 0x0
|
|
|
|
.have_binitized:
|
|
.string "have binitized, about to go next_triangle"
|
|
.byte 0x0
|
|
|
|
.run_out_of_coeffs:
|
|
.string "run out of coeffstore"
|
|
.byte 0x0
|
|
|
|
.bini_pipe_minimax:
|
|
.string "computed minimax piped"
|
|
.byte 0x0
|