mirror of
https://github.com/Druthulu/BFM-decomp
synced 2026-09-30 07:31:59 -04:00
phase-36: S104 s104_e15 — func_80015760 banked at 0 through the whole-object gate + propagated — 2 pins → 0: set counts steer REG_EQUIV (local-alloc.c:1016-1064), loop.c's hoist (loop.c:705) and sched1 births (sched.c:2465-2543)
This commit is contained in:
+179
-179
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"head": "26aea2813",
|
||||
"head": "bd6c98069",
|
||||
"stamp": "15956e4a96c4",
|
||||
"generated": "2026-09-11 02:41",
|
||||
"aliases": [
|
||||
@@ -21,206 +21,206 @@
|
||||
"main": {
|
||||
"objects": 85,
|
||||
"identical": 85,
|
||||
"seconds": 6.315999999999998,
|
||||
"mean_s": 0.074
|
||||
"seconds": 6.373999999999999,
|
||||
"mean_s": 0.075
|
||||
},
|
||||
"ov_SC03_014": {
|
||||
"objects": 32,
|
||||
"identical": 32,
|
||||
"seconds": 4.354,
|
||||
"mean_s": 0.136
|
||||
"seconds": 4.407,
|
||||
"mean_s": 0.138
|
||||
},
|
||||
"ov_SC03_015": {
|
||||
"objects": 32,
|
||||
"identical": 32,
|
||||
"seconds": 4.298,
|
||||
"mean_s": 0.134
|
||||
"seconds": 4.213,
|
||||
"mean_s": 0.132
|
||||
},
|
||||
"ov_SC04_011": {
|
||||
"objects": 28,
|
||||
"identical": 28,
|
||||
"seconds": 3.6019999999999994,
|
||||
"mean_s": 0.129
|
||||
"seconds": 3.6800000000000006,
|
||||
"mean_s": 0.131
|
||||
}
|
||||
},
|
||||
"per_object_seconds": {
|
||||
"build/src/800.o": 0.685,
|
||||
"build/src/800_b.o": 0.092,
|
||||
"build/src/800_b_2.o": 0.284,
|
||||
"build/src/800_b_o0a.o": 0.061,
|
||||
"build/src/800_c.o": 0.177,
|
||||
"build/src/800b2.o": 0.094,
|
||||
"build/src/apicard1.o": 0.07,
|
||||
"build/src/apicard2.o": 0.075,
|
||||
"build/src/apicard3.o": 0.056,
|
||||
"build/src/apicard4.o": 0.06,
|
||||
"build/src/apicard5.o": 0.067,
|
||||
"build/src/apicard6.o": 0.059,
|
||||
"build/src/apicard7.o": 0.091,
|
||||
"build/src/boot.o": 0.08,
|
||||
"build/src/gap.o": 0.075,
|
||||
"build/src/libapi1.o": 0.055,
|
||||
"build/src/libapi2.o": 0.057,
|
||||
"build/src/libc2_1.o": 0.055,
|
||||
"build/src/libc2_2.o": 0.056,
|
||||
"build/src/libcd1.o": 0.065,
|
||||
"build/src/libcd2.o": 0.053,
|
||||
"build/src/libetc.o": 0.066,
|
||||
"build/src/libgpu.o": 0.062,
|
||||
"build/src/800.o": 0.688,
|
||||
"build/src/800_b.o": 0.073,
|
||||
"build/src/800_b_2.o": 0.281,
|
||||
"build/src/800_b_o0a.o": 0.06,
|
||||
"build/src/800_c.o": 0.195,
|
||||
"build/src/800b2.o": 0.075,
|
||||
"build/src/apicard1.o": 0.064,
|
||||
"build/src/apicard2.o": 0.061,
|
||||
"build/src/apicard3.o": 0.073,
|
||||
"build/src/apicard4.o": 0.066,
|
||||
"build/src/apicard5.o": 0.074,
|
||||
"build/src/apicard6.o": 0.092,
|
||||
"build/src/apicard7.o": 0.068,
|
||||
"build/src/boot.o": 0.095,
|
||||
"build/src/gap.o": 0.071,
|
||||
"build/src/libapi1.o": 0.076,
|
||||
"build/src/libapi2.o": 0.058,
|
||||
"build/src/libc2_1.o": 0.058,
|
||||
"build/src/libc2_2.o": 0.06,
|
||||
"build/src/libcd1.o": 0.072,
|
||||
"build/src/libcd2.o": 0.054,
|
||||
"build/src/libetc.o": 0.063,
|
||||
"build/src/libgpu.o": 0.065,
|
||||
"build/src/libgpu2.o": 0.07,
|
||||
"build/src/libgs1.o": 0.061,
|
||||
"build/src/libgs2.o": 0.046,
|
||||
"build/src/libgs3.o": 0.057,
|
||||
"build/src/libgs4.o": 0.053,
|
||||
"build/src/libgs5.o": 0.067,
|
||||
"build/src/libgs6.o": 0.073,
|
||||
"build/src/libgs7.o": 0.062,
|
||||
"build/src/libgs8.o": 0.058,
|
||||
"build/src/libgte1.o": 0.057,
|
||||
"build/src/libgte10.o": 0.066,
|
||||
"build/src/libgte11.o": 0.058,
|
||||
"build/src/libgte12.o": 0.064,
|
||||
"build/src/libgte13.o": 0.054,
|
||||
"build/src/libgte14.o": 0.069,
|
||||
"build/src/libgte15.o": 0.067,
|
||||
"build/src/libgte16.o": 0.065,
|
||||
"build/src/libgte17.o": 0.063,
|
||||
"build/src/libgte18.o": 0.064,
|
||||
"build/src/libgte19.o": 0.058,
|
||||
"build/src/libgte2.o": 0.059,
|
||||
"build/src/libgte20.o": 0.058,
|
||||
"build/src/libgte21.o": 0.062,
|
||||
"build/src/libgte22.o": 0.051,
|
||||
"build/src/libgte23.o": 0.053,
|
||||
"build/src/libgte24.o": 0.064,
|
||||
"build/src/libgte25.o": 0.063,
|
||||
"build/src/libgte26.o": 0.054,
|
||||
"build/src/libgs1.o": 0.05,
|
||||
"build/src/libgs2.o": 0.062,
|
||||
"build/src/libgs3.o": 0.061,
|
||||
"build/src/libgs4.o": 0.055,
|
||||
"build/src/libgs5.o": 0.063,
|
||||
"build/src/libgs6.o": 0.064,
|
||||
"build/src/libgs7.o": 0.056,
|
||||
"build/src/libgs8.o": 0.061,
|
||||
"build/src/libgte1.o": 0.068,
|
||||
"build/src/libgte10.o": 0.063,
|
||||
"build/src/libgte11.o": 0.064,
|
||||
"build/src/libgte12.o": 0.052,
|
||||
"build/src/libgte13.o": 0.062,
|
||||
"build/src/libgte14.o": 0.072,
|
||||
"build/src/libgte15.o": 0.058,
|
||||
"build/src/libgte16.o": 0.063,
|
||||
"build/src/libgte17.o": 0.056,
|
||||
"build/src/libgte18.o": 0.059,
|
||||
"build/src/libgte19.o": 0.059,
|
||||
"build/src/libgte2.o": 0.064,
|
||||
"build/src/libgte20.o": 0.056,
|
||||
"build/src/libgte21.o": 0.068,
|
||||
"build/src/libgte22.o": 0.06,
|
||||
"build/src/libgte23.o": 0.054,
|
||||
"build/src/libgte24.o": 0.061,
|
||||
"build/src/libgte25.o": 0.065,
|
||||
"build/src/libgte26.o": 0.064,
|
||||
"build/src/libgte27.o": 0.068,
|
||||
"build/src/libgte28.o": 0.068,
|
||||
"build/src/libgte29.o": 0.058,
|
||||
"build/src/libgte3.o": 0.057,
|
||||
"build/src/libgte30.o": 0.061,
|
||||
"build/src/libgte4.o": 0.061,
|
||||
"build/src/libgte5.o": 0.06,
|
||||
"build/src/libgte6.o": 0.061,
|
||||
"build/src/libgte7.o": 0.051,
|
||||
"build/src/libgte8.o": 0.063,
|
||||
"build/src/libgte9.o": 0.064,
|
||||
"build/src/libmcrd1.o": 0.071,
|
||||
"build/src/libmcrd2.o": 0.06,
|
||||
"build/src/libpad1.o": 0.065,
|
||||
"build/src/libpad2.o": 0.061,
|
||||
"build/src/sgap.o": 0.063,
|
||||
"build/src/sgap_2.o": 0.065,
|
||||
"build/src/sgap_3.o": 0.065,
|
||||
"build/src/sgap_4.o": 0.061,
|
||||
"build/src/libgte28.o": 0.063,
|
||||
"build/src/libgte29.o": 0.054,
|
||||
"build/src/libgte3.o": 0.066,
|
||||
"build/src/libgte30.o": 0.065,
|
||||
"build/src/libgte4.o": 0.062,
|
||||
"build/src/libgte5.o": 0.057,
|
||||
"build/src/libgte6.o": 0.06,
|
||||
"build/src/libgte7.o": 0.064,
|
||||
"build/src/libgte8.o": 0.064,
|
||||
"build/src/libgte9.o": 0.06,
|
||||
"build/src/libmcrd1.o": 0.069,
|
||||
"build/src/libmcrd2.o": 0.063,
|
||||
"build/src/libpad1.o": 0.06,
|
||||
"build/src/libpad2.o": 0.067,
|
||||
"build/src/sgap.o": 0.061,
|
||||
"build/src/sgap_2.o": 0.063,
|
||||
"build/src/sgap_3.o": 0.055,
|
||||
"build/src/sgap_4.o": 0.07,
|
||||
"build/src/sgap_5.o": 0.059,
|
||||
"build/src/sgap_6.o": 0.061,
|
||||
"build/src/sgap_8.o": 0.067,
|
||||
"build/src/snd1.o": 0.06,
|
||||
"build/src/snd10.o": 0.068,
|
||||
"build/src/snd11.o": 0.066,
|
||||
"build/src/snd12.o": 0.061,
|
||||
"build/src/snd2.o": 0.063,
|
||||
"build/src/snd3.o": 0.061,
|
||||
"build/src/snd4.o": 0.059,
|
||||
"build/src/snd5.o": 0.062,
|
||||
"build/src/snd6.o": 0.063,
|
||||
"build/src/snd7.o": 0.065,
|
||||
"build/src/snd8.o": 0.062,
|
||||
"build/src/snd9.o": 0.065,
|
||||
"build/src/ov_SC03_014/ov_SC03_014.o": 0.118,
|
||||
"build/src/ov_SC03_014/ov_SC03_014_after.o": 0.463,
|
||||
"build/src/ov_SC03_014/ov_SC03_014_jr_8012ACE0.o": 0.377,
|
||||
"build/src/ov_SC03_014/ov_SC03_014_jr_80135888.o": 0.061,
|
||||
"build/src/ov_SC03_014/ov_SC03_014_jr_80135A4C.o": 0.058,
|
||||
"build/src/ov_SC03_014/ov_SC03_014_jr_80135D20.o": 0.122,
|
||||
"build/src/ov_SC03_014/ov_SC03_014_jr_801380E0.o": 0.157,
|
||||
"build/src/ov_SC03_014/ov_SC03_014_jr_8013C98C.o": 0.101,
|
||||
"build/src/ov_SC03_014/ov_SC03_014_jr_8013F350.o": 0.071,
|
||||
"build/src/ov_SC03_014/ov_SC03_014_jr_8013FFD8.o": 0.064,
|
||||
"build/src/ov_SC03_014/ov_SC03_014_jr_80140608.o": 0.173,
|
||||
"build/src/ov_SC03_014/ov_SC03_014_jr_8015444C.o": 0.062,
|
||||
"build/src/ov_SC03_014/ov_SC03_014_jr_80154C24.o": 0.17,
|
||||
"build/src/ov_SC03_014/ov_SC03_014_jr_801588CC.o": 0.094,
|
||||
"build/src/ov_SC03_014/ov_SC03_014_jr_80159C84.o": 0.067,
|
||||
"build/src/ov_SC03_014/ov_SC03_014_jr_8015A3C8.o": 0.059,
|
||||
"build/src/ov_SC03_014/ov_SC03_014_jr_8015AE2C.o": 0.093,
|
||||
"build/src/ov_SC03_014/ov_SC03_014_jr_8015C32C.o": 0.436,
|
||||
"build/src/ov_SC03_014/ov_SC03_014_jr_8016AB6C.o": 0.238,
|
||||
"build/src/ov_SC03_014/ov_SC03_014_jr_80171B4C.o": 0.088,
|
||||
"build/src/sgap_6.o": 0.051,
|
||||
"build/src/sgap_8.o": 0.07,
|
||||
"build/src/snd1.o": 0.075,
|
||||
"build/src/snd10.o": 0.064,
|
||||
"build/src/snd11.o": 0.071,
|
||||
"build/src/snd12.o": 0.064,
|
||||
"build/src/snd2.o": 0.066,
|
||||
"build/src/snd3.o": 0.052,
|
||||
"build/src/snd4.o": 0.06,
|
||||
"build/src/snd5.o": 0.068,
|
||||
"build/src/snd6.o": 0.056,
|
||||
"build/src/snd7.o": 0.059,
|
||||
"build/src/snd8.o": 0.06,
|
||||
"build/src/snd9.o": 0.056,
|
||||
"build/src/ov_SC03_014/ov_SC03_014.o": 0.123,
|
||||
"build/src/ov_SC03_014/ov_SC03_014_after.o": 0.497,
|
||||
"build/src/ov_SC03_014/ov_SC03_014_jr_8012ACE0.o": 0.37,
|
||||
"build/src/ov_SC03_014/ov_SC03_014_jr_80135888.o": 0.058,
|
||||
"build/src/ov_SC03_014/ov_SC03_014_jr_80135A4C.o": 0.055,
|
||||
"build/src/ov_SC03_014/ov_SC03_014_jr_80135D20.o": 0.12,
|
||||
"build/src/ov_SC03_014/ov_SC03_014_jr_801380E0.o": 0.151,
|
||||
"build/src/ov_SC03_014/ov_SC03_014_jr_8013C98C.o": 0.102,
|
||||
"build/src/ov_SC03_014/ov_SC03_014_jr_8013F350.o": 0.078,
|
||||
"build/src/ov_SC03_014/ov_SC03_014_jr_8013FFD8.o": 0.066,
|
||||
"build/src/ov_SC03_014/ov_SC03_014_jr_80140608.o": 0.176,
|
||||
"build/src/ov_SC03_014/ov_SC03_014_jr_8015444C.o": 0.07,
|
||||
"build/src/ov_SC03_014/ov_SC03_014_jr_80154C24.o": 0.164,
|
||||
"build/src/ov_SC03_014/ov_SC03_014_jr_801588CC.o": 0.083,
|
||||
"build/src/ov_SC03_014/ov_SC03_014_jr_80159C84.o": 0.073,
|
||||
"build/src/ov_SC03_014/ov_SC03_014_jr_8015A3C8.o": 0.068,
|
||||
"build/src/ov_SC03_014/ov_SC03_014_jr_8015AE2C.o": 0.089,
|
||||
"build/src/ov_SC03_014/ov_SC03_014_jr_8015C32C.o": 0.433,
|
||||
"build/src/ov_SC03_014/ov_SC03_014_jr_8016AB6C.o": 0.256,
|
||||
"build/src/ov_SC03_014/ov_SC03_014_jr_80171B4C.o": 0.095,
|
||||
"build/src/ov_SC03_014/ov_SC03_014_jr_801734BC.o": 0.171,
|
||||
"build/src/ov_SC03_014/ov_SC03_014_jr_801789AC.o": 0.056,
|
||||
"build/src/ov_SC03_014/ov_SC03_014_jr_80178D40.o": 0.096,
|
||||
"build/src/ov_SC03_014/ov_SC03_014_jr_8017A4AC.o": 0.063,
|
||||
"build/src/ov_SC03_014/ov_SC03_014_jr_8017AE2C.o": 0.148,
|
||||
"build/src/ov_SC03_014/ov_SC03_014_jr_8017EB7C.o": 0.191,
|
||||
"build/src/ov_SC03_014/ov_SC03_014_jr_80184440.o": 0.05,
|
||||
"build/src/ov_SC03_014/ov_SC03_014_jr_801848E4.o": 0.276,
|
||||
"build/src/ov_SC03_014/ov_SC03_014_o0b.o": 0.051,
|
||||
"build/src/ov_SC03_014/ov_SC03_014_o0c.o": 0.06,
|
||||
"build/src/ov_SC03_014/ov_SC03_014_o0d.o": 0.055,
|
||||
"build/src/ov_SC03_014/ov_SC03_014_o0e.o": 0.065,
|
||||
"build/src/ov_SC03_015/ov_SC03_015.o": 0.122,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_after.o": 0.486,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8012ACE0.o": 0.348,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_80135888.o": 0.055,
|
||||
"build/src/ov_SC03_014/ov_SC03_014_jr_801789AC.o": 0.059,
|
||||
"build/src/ov_SC03_014/ov_SC03_014_jr_80178D40.o": 0.094,
|
||||
"build/src/ov_SC03_014/ov_SC03_014_jr_8017A4AC.o": 0.059,
|
||||
"build/src/ov_SC03_014/ov_SC03_014_jr_8017AE2C.o": 0.163,
|
||||
"build/src/ov_SC03_014/ov_SC03_014_jr_8017EB7C.o": 0.19,
|
||||
"build/src/ov_SC03_014/ov_SC03_014_jr_80184440.o": 0.045,
|
||||
"build/src/ov_SC03_014/ov_SC03_014_jr_801848E4.o": 0.266,
|
||||
"build/src/ov_SC03_014/ov_SC03_014_o0b.o": 0.057,
|
||||
"build/src/ov_SC03_014/ov_SC03_014_o0c.o": 0.057,
|
||||
"build/src/ov_SC03_014/ov_SC03_014_o0d.o": 0.052,
|
||||
"build/src/ov_SC03_014/ov_SC03_014_o0e.o": 0.067,
|
||||
"build/src/ov_SC03_015/ov_SC03_015.o": 0.118,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_after.o": 0.474,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8012ACE0.o": 0.366,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_80135888.o": 0.043,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_80135A4C.o": 0.045,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_80135D20.o": 0.114,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_801380E0.o": 0.133,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8013C98C.o": 0.114,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8013F350.o": 0.066,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8013FFD8.o": 0.06,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_80140608.o": 0.173,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8015444C.o": 0.067,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_80154C24.o": 0.141,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_801588CC.o": 0.077,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_80159C84.o": 0.061,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8015A3C8.o": 0.065,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8015AE2C.o": 0.088,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8015C32C.o": 0.439,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8016AB6C.o": 0.255,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_80171B4C.o": 0.089,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_801734BC.o": 0.18,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_801789AC.o": 0.056,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_80178D40.o": 0.093,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8017A4AC.o": 0.054,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8017AE2C.o": 0.156,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8017EB7C.o": 0.202,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_80184440.o": 0.048,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_801848E4.o": 0.272,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_o0b.o": 0.061,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_o0c.o": 0.058,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_o0d.o": 0.053,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_o0e.o": 0.067,
|
||||
"build/src/ov_SC04_011/ov_SC04_011.o": 0.113,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_after.o": 0.385,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8012ACE0.o": 0.309,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_80135D20.o": 0.112,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_801380E0.o": 0.149,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8013C98C.o": 0.093,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8013F350.o": 0.062,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8013FFD8.o": 0.053,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_80140608.o": 0.169,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8015444C.o": 0.065,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_80154C24.o": 0.159,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_801588CC.o": 0.086,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_80159C84.o": 0.052,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8015A3C8.o": 0.061,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8015AE2C.o": 0.074,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8015C32C.o": 0.433,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8016AB6C.o": 0.244,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_80171B4C.o": 0.094,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_801734BC.o": 0.2,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_801789AC.o": 0.049,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_80178D40.o": 0.09,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8017A4AC.o": 0.055,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8017AE2C.o": 0.168,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8017EB7C.o": 0.196,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_80184440.o": 0.036,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_801848E4.o": 0.248,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_o0b.o": 0.049,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_o0c.o": 0.051,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_o0d.o": 0.05,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_o0e.o": 0.069,
|
||||
"build/src/ov_SC04_011/ov_SC04_011.o": 0.115,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_after.o": 0.386,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8012ACE0.o": 0.321,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_80135888.o": 0.051,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_80135A4C.o": 0.042,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_80135D20.o": 0.1,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_801380E0.o": 0.141,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8013C98C.o": 0.087,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8013F350.o": 0.064,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8013FFD8.o": 0.061,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_80140608.o": 0.149,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8015444C.o": 0.065,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_80154C24.o": 0.151,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_801588CC.o": 0.077,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_80159C84.o": 0.062,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8015A3C8.o": 0.065,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8015AE2C.o": 0.093,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8015C32C.o": 0.332,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.o": 0.207,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_80171B4C.o": 0.09,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_801734BC.o": 0.164,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_801789AC.o": 0.057,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_80178D40.o": 0.088,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8017A4AC.o": 0.053,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8017AE2C.o": 0.09,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8017D494.o": 0.398,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_o0b.o": 0.054,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_o0c.o": 0.054
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_80135D20.o": 0.109,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_801380E0.o": 0.15,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8013C98C.o": 0.093,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8013F350.o": 0.069,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8013FFD8.o": 0.059,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_80140608.o": 0.161,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8015444C.o": 0.058,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_80154C24.o": 0.152,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_801588CC.o": 0.078,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_80159C84.o": 0.063,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8015A3C8.o": 0.068,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8015AE2C.o": 0.08,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8015C32C.o": 0.339,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.o": 0.21,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_80171B4C.o": 0.092,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_801734BC.o": 0.172,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_801789AC.o": 0.049,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_80178D40.o": 0.083,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8017A4AC.o": 0.058,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8017AE2C.o": 0.104,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8017D494.o": 0.403,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_o0b.o": 0.051,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_o0c.o": 0.064
|
||||
},
|
||||
"ok": true,
|
||||
"seconds": 2.1
|
||||
|
||||
@@ -29453,3 +29453,4 @@
|
||||
{"ts": "2026-09-11 02:38:53", "label": "s104_r39", "rung": "E", "calib": {"head": "73fb6c442", "stamp": "15956e4a96c4"}, "tu": "src/ov_SC03_124/ov_SC03_124_jr_8017AE2C.c", "fn": "func_8017EDE8", "addr": 2149051880, "aliases": null, "header": false, "includers": 0, "nhash_before": "ec1e7ff2cb46a4b2658fe80a1aa9c25a972b42e9", "nhash_after": "cdcc4c81dbd3ad6147df9bc0606dc33f93fb779e", "source": "delever_regen R39 dup-join *(u16 *)((s32)a0 + 0x34) @36", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.156, "objects": ["build/src/ov_SC03_124/ov_SC03_124_jr_8017AE2C.o"], "before_text": "void func_8017EDE8(void *a0)\n{\n u16 v1;\n\n v1 = *(u16 *)((s32)a0 + 0x34);\n switch (v1) {\n case 0:\n if (D_80078EBA == 3) {\n func_8017EC50((s32 *)a0);\n if (func_80185308(8) == 0) {\n return;\n }\n if (func_801846CC((s32)a0) == 0) {\n return;\n }\n {\n /* $v0 pin (cookbook \u00a772/\u00a7137): local-alloc gives the shorter-lived\n * `2` quantity $v0 and the 0xCC pointer $v1; the target has them the\n * other way round. The swap is invariant under every source\n * permutation tried (statement order, switch vs goto, hoisted\n * pointer, named constant) -- per \u00a7137 that invariance says the\n * lever is not in the source order, so the pointer is pinned.\n * The range is lw..sw inside this block and crosses no call, so\n * the \u00a774 caller-saved hazard does not apply. */\n register s32 *p __asm__(\"$2\"); // !FAKE: pin $2 \u2014 NEEDED DIFFERS (P36 rung B tus7)\n p = *(s32 **)((s32)a0 + 0xCC);\n *(s32 *)((s32)p + 0xB0) = 2;\n }\n func_801845FC((s32)a0, (s32)&D_801B95B0, 0, 0x60);\n } else {\n if (func_801846CC((s32)a0) == 0) {\n return;\n }\n func_801845FC((s32)a0, (s32)&D_801B95B0, 0, 0x60);\n }\n *(u16 *)((s32)a0 + 0x34) = 1;\n break;\n case 1:\n if (func_801846CC((s32)a0) != 0) {\n func_8017ECA0(a0);\n }\n break;\n }\n}\n", "after_text": "void func_8017EDE8(void *a0)\n{\n u16 v1;\n\n v1 = *(u16 *)((s32)a0 + 0x34);\n switch (v1) {\n case 0:\n if (D_80078EBA == 3) {\n func_8017EC50((s32 *)a0);\n if (func_80185308(8) == 0) {\n return;\n }\n if (func_801846CC((s32)a0) == 0) {\n return;\n }\n {\n /* $v0 pin (cookbook \u00a772/\u00a7137): local-alloc gives the shorter-lived\n * `2` quantity $v0 and the 0xCC pointer $v1; the target has them the\n * other way round. The swap is invariant under every source\n * permutation tried (statement order, switch vs goto, hoisted\n * pointer, named constant) -- per \u00a7137 that invariance says the\n * lever is not in the source order, so the pointer is pinned.\n * The range is lw..sw inside this block and crosses no call, so\n * the \u00a774 caller-saved hazard does not apply. */\n s32 *p;\n p = *(s32 **)((s32)a0 + 0xCC);\n *(s32 *)((s32)p + 0xB0) = 2;\n }\n func_801845FC((s32)a0, (s32)&D_801B95B0, 0, 0x60);\n *(u16 *)((s32)a0 + 0x34) = 1;\n } else {\n if (func_801846CC((s32)a0) == 0) {\n return;\n }\n func_801845FC((s32)a0, (s32)&D_801B95B0, 0, 0x60);\n *(u16 *)((s32)a0 + 0x34) = 1;\n }\n break;\n case 1:\n if (func_801846CC((s32)a0) != 0) {\n func_8017ECA0(a0);\n }\n break;\n }\n}\n"}
|
||||
{"ts": "2026-09-11 02:41:15", "label": "s104_e15", "rung": "E", "calib": {"head": "fc4aa4c11", "stamp": "15956e4a96c4"}, "tu": "src/800.c", "fn": "func_80013694", "addr": 2147563156, "aliases": null, "header": false, "includers": 0, "nhash_before": "0883dbdd11c876440297f8fb12362da4ca36e735", "nhash_after": "9cb5a6dc08a7397585ab5f6f195f6442efadba64", "source": ".run/P36/agents/main__func_80013694/body.c", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.427, "objects": ["build/src/800.o"], "before_text": "void func_80013694(s16 angle, void *a1, void *a2)\n{\n s16 matrix[16];\n s16 vec0[9];\n s16 pad[4];\n s32 sin_val;\n s32 cos_val;\n s32 v1;\n register s16 *v0p __asm__(\"$2\"); // !FAKE: pin $2 \u2014 NEEDED DIFFERS (P36 rung B tus9)\n s16 *m0p;\n\n func_80013F3C(matrix);\n sin_val = func_8004787C((s32)angle);\n cos_val = func_80047948((s32)angle);\n\n v1 = 0x1000;\n vec0[0] = (s16)v1;\n v1 = -sin_val;\n vec0[4] = (s16)cos_val;\n vec0[8] = (s16)cos_val;\n __asm__ __volatile__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus9)\n v0p = vec0;\n vec0[7] = (s16)sin_val;\n m0p = matrix;\n vec0[1] = 0;\n vec0[2] = 0;\n vec0[3] = 0;\n vec0[5] = (s16)v1;\n vec0[6] = 0;\n\n __asm__ __volatile__ (\n \"lw $12, 0(%1);\"\n \"lw $13, 4(%1);\"\n \"ctc2 $12, $0;\"\n \"ctc2 $13, $1;\"\n \"lw $12, 8(%1);\"\n \"lw $13, 12(%1);\"\n \"lw $14, 16(%1);\"\n \"ctc2 $12, $2;\"\n \"ctc2 $13, $3;\"\n \"ctc2 $14, $4;\"\n \"lhu $12, 0(%0);\"\n \"lhu $13, 6(%0);\"\n \"lhu $14, 12(%0);\"\n \"mtc2 $12, $9;\"\n \"mtc2 $13, $10;\"\n \"mtc2 $14, $11;\"\n \"nop;\"\n \"nop;\"\n \"mvmva 1, 0, 3, 3, 0;\"\n \"mfc2 $12, $9;\"\n \"mfc2 $13, $10;\"\n \"mfc2 $14, $11;\"\n \"sh $12, 0(%1);\"\n \"sh $13, 6(%1);\"\n \"sh $14, 12(%1);\"\n \"addiu $2, $sp, 50;\"\n \"lhu $12, 0($2);\"\n \"lhu $13, 6($2);\"\n \"lhu $14, 12($2);\"\n \"mtc2 $12, $9;\"\n \"mtc2 $13, $10;\"\n \"mtc2 $14, $11;\"\n \"nop;\"\n \"nop;\"\n \"mvmva 1, 0, 3, 3, 0;\"\n \"addiu $2, $sp, 18;\"\n \"mfc2 $12, $9;\"\n \"mfc2 $13, $10;\"\n \"mfc2 $14, $11;\"\n \"sh $12, 0($2);\"\n \"sh $13, 6($2);\"\n \"sh $14, 12($2);\"\n \"addiu $2, $sp, 52;\"\n \"lhu $12, 0($2);\"\n \"lhu $13, 6($2);\"\n \"lhu $14, 12($2);\"\n \"mtc2 $12, $9;\"\n \"mtc2 $13, $10;\"\n \"mtc2 $14, $11;\"\n \"nop;\"\n \"nop;\"\n \"mvmva 1, 0, 3, 3, 0;\"\n \"addiu $2, $sp, 20;\"\n \"mfc2 $12, $9;\"\n \"mfc2 $13, $10;\"\n \"mfc2 $14, $11;\"\n \"sh $12, 0($2);\"\n \"sh $13, 6($2);\"\n \"sh $14, 12($2)\"\n :\n : \"r\"(v0p), \"r\"(m0p)\n : \"$12\", \"$13\", \"$14\", \"$2\"\n );\n\n func_8001282C(matrix);\n ApplyMatrixSV(matrix, a1, a2);\n}\n", "after_text": "void func_80013694(s16 angle, void *a1, void *a2)\n{\n s16 matrix[16];\n s16 rot[16];\n s32 sin_val;\n s32 cos_val;\n s32 v;\n s16 *rotp;\n s16 *matp;\n\n func_80013F3C(matrix);\n sin_val = func_8004787C(angle);\n cos_val = func_80047948(angle);\n\n v = 0x1000;\n rot[0] = v;\n v = -sin_val;\n rot[4] = cos_val;\n rot[8] = cos_val;\n rotp = rot;\n rot[7] = sin_val;\n matp = matrix;\n rot[1] = 0;\n rot[2] = 0;\n rot[3] = 0;\n rot[5] = v;\n rot[6] = 0;\n\n gte_SetRotMatrix(matp);\n gte_ldclmv(rotp);\n gte_rtir();\n gte_stclmv(matp);\n gte_ldclmv(rotp + 1);\n gte_rtir();\n gte_stclmv(matp + 1);\n gte_ldclmv(rotp + 2);\n gte_rtir();\n gte_stclmv(matp + 2);\n\n func_8001282C(matp);\n ApplyMatrixSV(matp, a1, a2);\n}\n"}
|
||||
{"ts": "2026-09-11 02:41:35", "label": "s104_e15", "rung": "E", "calib": {"head": "26aea2813", "stamp": "15956e4a96c4"}, "tu": "src/800.c", "fn": "func_800166E8", "addr": 2147575528, "aliases": null, "header": false, "includers": 0, "nhash_before": "017de17b52075ae906815ec90105512df46b82ed", "nhash_after": "d2a3aeb6b6c551fc52a394e04a0461934e261622", "source": ".run/P36/agents/main__func_800166E8/body.c", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.427, "objects": ["build/src/800.o"], "before_text": "void func_800166E8(void *a0, s32 a1) {\n s32 local_buffer[2];\n register s32 v0 __asm__(\"$2\"); // !FAKE: pin $2 \u2014 NEEDED DIFFERS (P36 rung B tus9)\n s32 v1;\n\n __asm__ volatile(\"\"); // Barrier to force stack allocation first // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus9)\n\n if (a1 == 0)\n goto skip;\n\n v0 = a1 - 1;\n v1 = -1;\n\n do {\n *(u8 *)a0 = 0;\n v0--;\n a0 = (void *)((s32)a0 + 1);\n } while (v0 != v1);\n\nskip:\n return;\n}\n", "after_text": "void func_800166E8(void *a0, int a1) {\n u8 *p = a0;\n\n /* `int`, not the `s32` typedef: `a1-- != 0` is folded to `--a1 != -1` (fold-const.c:4399) only when the\n * decrement is not wrapped in a type conversion, and the s32 typedef variant gets one against the literal. */\n while (a1-- != 0) {\n *p++ = 0;\n }\n}\n"}
|
||||
{"ts": "2026-09-11 02:41:55", "label": "s104_e15", "rung": "E", "calib": {"head": "bd6c98069", "stamp": "15956e4a96c4"}, "tu": "src/800.c", "fn": "func_80015760", "addr": 2147571552, "aliases": null, "header": false, "includers": 0, "nhash_before": "daff8ee0cd4c8bb5a0e8c4ab5aab034ef0004882", "nhash_after": "02a9f27b4fd6fa4141a16d8611340fb927c8342c", "source": ".run/P36/agents/main__func_80015760/body.c", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.426, "objects": ["build/src/800.o"], "before_text": "void func_80015760(Obj_80015760 *obj, s32 *ot)\n{\n s32 x0;\nu32 tx;\n s32 y0;\n s32 flags;\n u32 value;\n u32 digits;\ns32 count;\n u8 digitCount;\n u8 width;\n u32 tagHi;\n u32 color;\n u32 yWord;\nregister u32 tagCode __asm__(\"$21\"); // !FAKE: pin $21 \u2014 NEEDED DIFFERS (P36 rung B tus9)\n s32 *pkt;\n tx = obj->x;\n x0 = ((s32) tx) - (D_800AF7BC >> 1);\n flags = obj->flags;\n y0 = ((s32) obj->y) - (D_800AF7BE >> 1);\n value = (u32) obj->value;\n count = flags & 0xF;\n digitCount = count;\n if (count == 0)\n {\n digitCount = 8;\n }\n if (flags & 0x40)\n {\n digits = func_80015A74(value);\n }\n else\n {\n digits = value;\n }\n width = 8;\n if (flags & 0x80)\n {\n y0++;\n y0--;\n width = 0x10;\n }\n tagHi = width;\n if (tagHi == 8)\n {\n tagHi = 0x74000000;\n }\n else\n {\n tagHi = 0x7C000000;\n }\n tagCode = 0x03000000;\n pkt = (s32 *) D_800A5E60;\n if (digitCount != 0)\n {\n color = tagHi | 0x00808080;\n yWord = (u32) (y0 << 16);\n do\n {\n u32 xLow;\n u32 idx;\n s32 tile;\n u16 *uvPtr;\n u32 uvc;\nregister u32 mask __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus9)\n xLow = (u16) x0;\n x0 = width + x0;\n idx = (digits >> ((digitCount - 1) << 2)) & 0xF;\n tile = D_80062B78[idx];\n pkt[1] = (s32) color;\n digitCount--;\n pkt[2] = (s32) (xLow | yWord);\n uvPtr = func_80015908(tile, (u16) flags); /* the caller's original prototype took u16: the target masks (andi) before the call */\n uvc = 0x40560000;\n pkt[3] = (s32) ((*uvPtr) | uvc);\n mask = 0x00FFFFFF;\n pkt[0] = (s32) (((*ot) & mask) | tagCode);\n *ot = (s32) (((u32) pkt) & mask);\n pkt += 4;\n }\n while (digitCount != 0);\n }\n D_800A5E60 = (u8 *) pkt;\n}\n", "after_text": "void func_80015760(Obj_80015760 *obj, s32 *ot)\n{\n s32 x0;\n s16 y0;\n s32 flags;\n u32 value;\n u32 digits;\n s32 count;\n u8 digitCount;\n u8 width;\n u32 code;\n u32 len;\n u32 color;\n u32 yWord;\n s32 *pkt;\n\n x0 = obj->x - (D_800AF7BC >> 1);\n flags = obj->flags;\n y0 = obj->y - (D_800AF7BE >> 1);\n value = obj->value;\n count = flags & 0xF;\n digitCount = count;\n if (count == 0) {\n digitCount = 8;\n }\n if (flags & 0x40) {\n digits = func_80015A74(value);\n } else {\n digits = value;\n }\n width = 8;\n if (flags & 0x80) {\n width = 0x10;\n }\n if (width == 8) {\n code = 0x74000000;\n len = 0x03000000;\n } else {\n code = 0x7C000000;\n len = 0x03000000;\n }\n pkt = (s32 *)D_800A5E60;\n if (digitCount != 0) {\n color = code | 0x00808080;\n yWord = y0 << 16;\n do {\n u32 xLow;\n u32 idx;\n s32 tile;\n u16 *uv;\n u32 clut;\n u32 mask;\n u32 tag;\n\n xLow = (u16)x0;\n x0 = width + x0;\n idx = (digits >> ((digitCount - 1) << 2)) & 0xF;\n tile = D_80062B78[idx];\n pkt[1] = color;\n digitCount--;\n pkt[2] = xLow | yWord;\n uv = func_80015908(tile, (u16)flags);\n clut = 0x40560000;\n pkt[3] = *uv | clut;\n mask = 0x00FFFFFF;\n tag = *ot & mask;\n tag |= len;\n pkt[0] = tag;\n mask &= (u32)pkt;\n *ot = mask;\n pkt += 4;\n } while (digitCount != 0);\n }\n D_800A5E60 = (u8 *)pkt;\n}\n"}
|
||||
|
||||
@@ -2637,87 +2637,78 @@ extern u32 func_80015A74(u32 param_1);
|
||||
extern s16 *func_80015908(s32 a0, s32 a1);
|
||||
void func_80015760(Obj_80015760 *obj, s32 *ot)
|
||||
{
|
||||
s32 x0;
|
||||
u32 tx;
|
||||
s32 y0;
|
||||
s32 flags;
|
||||
u32 value;
|
||||
u32 digits;
|
||||
s32 count;
|
||||
u8 digitCount;
|
||||
u8 width;
|
||||
u32 tagHi;
|
||||
u32 color;
|
||||
u32 yWord;
|
||||
register u32 tagCode __asm__("$21"); // !FAKE: pin $21 — NEEDED DIFFERS (P36 rung B tus9)
|
||||
s32 *pkt;
|
||||
tx = obj->x;
|
||||
x0 = ((s32) tx) - (D_800AF7BC >> 1);
|
||||
flags = obj->flags;
|
||||
y0 = ((s32) obj->y) - (D_800AF7BE >> 1);
|
||||
value = (u32) obj->value;
|
||||
count = flags & 0xF;
|
||||
digitCount = count;
|
||||
if (count == 0)
|
||||
{
|
||||
digitCount = 8;
|
||||
}
|
||||
if (flags & 0x40)
|
||||
{
|
||||
digits = func_80015A74(value);
|
||||
}
|
||||
else
|
||||
{
|
||||
digits = value;
|
||||
}
|
||||
width = 8;
|
||||
if (flags & 0x80)
|
||||
{
|
||||
y0++;
|
||||
y0--;
|
||||
width = 0x10;
|
||||
}
|
||||
tagHi = width;
|
||||
if (tagHi == 8)
|
||||
{
|
||||
tagHi = 0x74000000;
|
||||
}
|
||||
else
|
||||
{
|
||||
tagHi = 0x7C000000;
|
||||
}
|
||||
tagCode = 0x03000000;
|
||||
pkt = (s32 *) D_800A5E60;
|
||||
if (digitCount != 0)
|
||||
{
|
||||
color = tagHi | 0x00808080;
|
||||
yWord = (u32) (y0 << 16);
|
||||
do
|
||||
{
|
||||
u32 xLow;
|
||||
u32 idx;
|
||||
s32 tile;
|
||||
u16 *uvPtr;
|
||||
u32 uvc;
|
||||
register u32 mask __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus9)
|
||||
xLow = (u16) x0;
|
||||
x0 = width + x0;
|
||||
idx = (digits >> ((digitCount - 1) << 2)) & 0xF;
|
||||
tile = D_80062B78[idx];
|
||||
pkt[1] = (s32) color;
|
||||
digitCount--;
|
||||
pkt[2] = (s32) (xLow | yWord);
|
||||
uvPtr = func_80015908(tile, (u16) flags); /* the caller's original prototype took u16: the target masks (andi) before the call */
|
||||
uvc = 0x40560000;
|
||||
pkt[3] = (s32) ((*uvPtr) | uvc);
|
||||
mask = 0x00FFFFFF;
|
||||
pkt[0] = (s32) (((*ot) & mask) | tagCode);
|
||||
*ot = (s32) (((u32) pkt) & mask);
|
||||
pkt += 4;
|
||||
s32 x0;
|
||||
s16 y0;
|
||||
s32 flags;
|
||||
u32 value;
|
||||
u32 digits;
|
||||
s32 count;
|
||||
u8 digitCount;
|
||||
u8 width;
|
||||
u32 code;
|
||||
u32 len;
|
||||
u32 color;
|
||||
u32 yWord;
|
||||
s32 *pkt;
|
||||
|
||||
x0 = obj->x - (D_800AF7BC >> 1);
|
||||
flags = obj->flags;
|
||||
y0 = obj->y - (D_800AF7BE >> 1);
|
||||
value = obj->value;
|
||||
count = flags & 0xF;
|
||||
digitCount = count;
|
||||
if (count == 0) {
|
||||
digitCount = 8;
|
||||
}
|
||||
while (digitCount != 0);
|
||||
}
|
||||
D_800A5E60 = (u8 *) pkt;
|
||||
if (flags & 0x40) {
|
||||
digits = func_80015A74(value);
|
||||
} else {
|
||||
digits = value;
|
||||
}
|
||||
width = 8;
|
||||
if (flags & 0x80) {
|
||||
width = 0x10;
|
||||
}
|
||||
if (width == 8) {
|
||||
code = 0x74000000;
|
||||
len = 0x03000000;
|
||||
} else {
|
||||
code = 0x7C000000;
|
||||
len = 0x03000000;
|
||||
}
|
||||
pkt = (s32 *)D_800A5E60;
|
||||
if (digitCount != 0) {
|
||||
color = code | 0x00808080;
|
||||
yWord = y0 << 16;
|
||||
do {
|
||||
u32 xLow;
|
||||
u32 idx;
|
||||
s32 tile;
|
||||
u16 *uv;
|
||||
u32 clut;
|
||||
u32 mask;
|
||||
u32 tag;
|
||||
|
||||
xLow = (u16)x0;
|
||||
x0 = width + x0;
|
||||
idx = (digits >> ((digitCount - 1) << 2)) & 0xF;
|
||||
tile = D_80062B78[idx];
|
||||
pkt[1] = color;
|
||||
digitCount--;
|
||||
pkt[2] = xLow | yWord;
|
||||
uv = func_80015908(tile, (u16)flags);
|
||||
clut = 0x40560000;
|
||||
pkt[3] = *uv | clut;
|
||||
mask = 0x00FFFFFF;
|
||||
tag = *ot & mask;
|
||||
tag |= len;
|
||||
pkt[0] = tag;
|
||||
mask &= (u32)pkt;
|
||||
*ot = mask;
|
||||
pkt += 4;
|
||||
} while (digitCount != 0);
|
||||
}
|
||||
D_800A5E60 = (u8 *)pkt;
|
||||
}
|
||||
|
||||
extern s16 D_80062A78[];
|
||||
|
||||
Reference in New Issue
Block a user