From a91f4efffda26069dd64c88aabf3b4c775645d38 Mon Sep 17 00:00:00 2001 From: Drew T <50529377+Druthulu@users.noreply.github.com> Date: Fri, 11 Sep 2026 12:34:04 -0600 Subject: [PATCH] =?UTF-8?q?phase-36:=20S105=20s105=5Ff1=20=E2=80=94=20func?= =?UTF-8?q?=5F80025504=20banked=20at=200=20through=20the=20whole-object=20?= =?UTF-8?q?gate=20+=20propagated=20=E2=80=94=20f1=20plain=20C=20(walk=20th?= =?UTF-8?q?e=20parameter=20/=20a=20local=20copy=20per=20the=20giv=20init)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .run/P36/delever/calibration.json | 356 +++++++++++++++--------------- .run/P36/delever/ledger.jsonl | 1 + src/800.c | 123 +++++------ 3 files changed, 240 insertions(+), 240 deletions(-) diff --git a/.run/P36/delever/calibration.json b/.run/P36/delever/calibration.json index 41689c2a2a..e621d48cc9 100644 --- a/.run/P36/delever/calibration.json +++ b/.run/P36/delever/calibration.json @@ -1,5 +1,5 @@ { - "head": "9c91476bb", + "head": "a4038d5da", "stamp": "15956e4a96c4", "generated": "2026-09-11 12:33", "aliases": [ @@ -21,206 +21,206 @@ "main": { "objects": 85, "identical": 85, - "seconds": 6.708000000000002, - "mean_s": 0.079 + "seconds": 6.432999999999997, + "mean_s": 0.076 }, "ov_SC03_014": { "objects": 32, "identical": 32, - "seconds": 4.4430000000000005, + "seconds": 4.453000000000001, "mean_s": 0.139 }, "ov_SC03_015": { "objects": 32, "identical": 32, - "seconds": 4.298000000000001, - "mean_s": 0.134 + "seconds": 4.27, + "mean_s": 0.133 }, "ov_SC04_011": { "objects": 28, "identical": 28, - "seconds": 3.7649999999999992, - "mean_s": 0.134 + "seconds": 3.7130000000000005, + "mean_s": 0.133 } }, "per_object_seconds": { - "build/src/800.o": 0.706, - "build/src/800_b.o": 0.071, - "build/src/800_b_2.o": 0.29, - "build/src/800_b_o0a.o": 0.06, - "build/src/800_c.o": 0.174, + "build/src/800.o": 0.743, + "build/src/800_b.o": 0.075, + "build/src/800_b_2.o": 0.288, + "build/src/800_b_o0a.o": 0.064, + "build/src/800_c.o": 0.171, "build/src/800b2.o": 0.072, - "build/src/apicard1.o": 0.056, - "build/src/apicard2.o": 0.061, - "build/src/apicard3.o": 0.06, - "build/src/apicard4.o": 0.071, - "build/src/apicard5.o": 0.061, - "build/src/apicard6.o": 0.075, - "build/src/apicard7.o": 0.073, - "build/src/boot.o": 0.083, - "build/src/gap.o": 0.069, - "build/src/libapi1.o": 0.06, - "build/src/libapi2.o": 0.054, - "build/src/libc2_1.o": 0.074, - "build/src/libc2_2.o": 0.055, - "build/src/libcd1.o": 0.095, - "build/src/libcd2.o": 0.064, - "build/src/libetc.o": 0.07, - "build/src/libgpu.o": 0.076, - "build/src/libgpu2.o": 0.098, - "build/src/libgs1.o": 0.056, - "build/src/libgs2.o": 0.059, - "build/src/libgs3.o": 0.054, - "build/src/libgs4.o": 0.054, - "build/src/libgs5.o": 0.061, - "build/src/libgs6.o": 0.12, - "build/src/libgs7.o": 0.057, - "build/src/libgs8.o": 0.062, - "build/src/libgte1.o": 0.067, - "build/src/libgte10.o": 0.063, + "build/src/apicard1.o": 0.058, + "build/src/apicard2.o": 0.057, + "build/src/apicard3.o": 0.054, + "build/src/apicard4.o": 0.057, + "build/src/apicard5.o": 0.087, + "build/src/apicard6.o": 0.07, + "build/src/apicard7.o": 0.077, + "build/src/boot.o": 0.106, + "build/src/gap.o": 0.076, + "build/src/libapi1.o": 0.094, + "build/src/libapi2.o": 0.061, + "build/src/libc2_1.o": 0.057, + "build/src/libc2_2.o": 0.062, + "build/src/libcd1.o": 0.075, + "build/src/libcd2.o": 0.058, + "build/src/libetc.o": 0.065, + "build/src/libgpu.o": 0.06, + "build/src/libgpu2.o": 0.073, + "build/src/libgs1.o": 0.055, + "build/src/libgs2.o": 0.061, + "build/src/libgs3.o": 0.062, + "build/src/libgs4.o": 0.058, + "build/src/libgs5.o": 0.052, + "build/src/libgs6.o": 0.067, + "build/src/libgs7.o": 0.062, + "build/src/libgs8.o": 0.052, + "build/src/libgte1.o": 0.066, + "build/src/libgte10.o": 0.06, "build/src/libgte11.o": 0.061, - "build/src/libgte12.o": 0.069, - "build/src/libgte13.o": 0.069, - "build/src/libgte14.o": 0.064, - "build/src/libgte15.o": 0.06, - "build/src/libgte16.o": 0.062, - "build/src/libgte17.o": 0.057, - "build/src/libgte18.o": 0.067, - "build/src/libgte19.o": 0.065, - "build/src/libgte2.o": 0.063, - "build/src/libgte20.o": 0.064, + "build/src/libgte12.o": 0.052, + "build/src/libgte13.o": 0.06, + "build/src/libgte14.o": 0.061, + "build/src/libgte15.o": 0.057, + "build/src/libgte16.o": 0.057, + "build/src/libgte17.o": 0.065, + "build/src/libgte18.o": 0.064, + "build/src/libgte19.o": 0.056, + "build/src/libgte2.o": 0.064, + "build/src/libgte20.o": 0.058, "build/src/libgte21.o": 0.06, - "build/src/libgte22.o": 0.062, - "build/src/libgte23.o": 0.072, - "build/src/libgte24.o": 0.062, - "build/src/libgte25.o": 0.072, - "build/src/libgte26.o": 0.065, - "build/src/libgte27.o": 0.063, - "build/src/libgte28.o": 0.059, - "build/src/libgte29.o": 0.056, - "build/src/libgte3.o": 0.064, - "build/src/libgte30.o": 0.078, - "build/src/libgte4.o": 0.057, - "build/src/libgte5.o": 0.068, - "build/src/libgte6.o": 0.06, - "build/src/libgte7.o": 0.067, + "build/src/libgte22.o": 0.064, + "build/src/libgte23.o": 0.07, + "build/src/libgte24.o": 0.065, + "build/src/libgte25.o": 0.063, + "build/src/libgte26.o": 0.061, + "build/src/libgte27.o": 0.062, + "build/src/libgte28.o": 0.069, + "build/src/libgte29.o": 0.058, + "build/src/libgte3.o": 0.06, + "build/src/libgte30.o": 0.063, + "build/src/libgte4.o": 0.063, + "build/src/libgte5.o": 0.067, + "build/src/libgte6.o": 0.068, + "build/src/libgte7.o": 0.063, "build/src/libgte8.o": 0.067, "build/src/libgte9.o": 0.063, - "build/src/libmcrd1.o": 0.102, - "build/src/libmcrd2.o": 0.069, - "build/src/libpad1.o": 0.071, - "build/src/libpad2.o": 0.078, - "build/src/sgap.o": 0.084, - "build/src/sgap_2.o": 0.073, - "build/src/sgap_3.o": 0.067, - "build/src/sgap_4.o": 0.064, - "build/src/sgap_5.o": 0.06, - "build/src/sgap_6.o": 0.065, - "build/src/sgap_8.o": 0.076, - "build/src/snd1.o": 0.086, - "build/src/snd10.o": 0.062, - "build/src/snd11.o": 0.058, - "build/src/snd12.o": 0.062, - "build/src/snd2.o": 0.092, - "build/src/snd3.o": 0.062, - "build/src/snd4.o": 0.064, - "build/src/snd5.o": 0.06, - "build/src/snd6.o": 0.081, - "build/src/snd7.o": 0.064, - "build/src/snd8.o": 0.057, - "build/src/snd9.o": 0.074, - "build/src/ov_SC03_014/ov_SC03_014.o": 0.129, - "build/src/ov_SC03_014/ov_SC03_014_after.o": 0.472, - "build/src/ov_SC03_014/ov_SC03_014_jr_8012ACE0.o": 0.361, - "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.06, - "build/src/ov_SC03_014/ov_SC03_014_jr_80135D20.o": 0.126, - "build/src/ov_SC03_014/ov_SC03_014_jr_801380E0.o": 0.15, - "build/src/ov_SC03_014/ov_SC03_014_jr_8013C98C.o": 0.118, - "build/src/ov_SC03_014/ov_SC03_014_jr_8013F350.o": 0.073, - "build/src/ov_SC03_014/ov_SC03_014_jr_8013FFD8.o": 0.062, - "build/src/ov_SC03_014/ov_SC03_014_jr_80140608.o": 0.18, - "build/src/ov_SC03_014/ov_SC03_014_jr_8015444C.o": 0.073, - "build/src/ov_SC03_014/ov_SC03_014_jr_80154C24.o": 0.156, - "build/src/ov_SC03_014/ov_SC03_014_jr_801588CC.o": 0.1, - "build/src/ov_SC03_014/ov_SC03_014_jr_80159C84.o": 0.066, - "build/src/ov_SC03_014/ov_SC03_014_jr_8015A3C8.o": 0.069, - "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.452, - "build/src/ov_SC03_014/ov_SC03_014_jr_8016AB6C.o": 0.245, - "build/src/ov_SC03_014/ov_SC03_014_jr_80171B4C.o": 0.097, - "build/src/ov_SC03_014/ov_SC03_014_jr_801734BC.o": 0.187, - "build/src/ov_SC03_014/ov_SC03_014_jr_801789AC.o": 0.057, - "build/src/ov_SC03_014/ov_SC03_014_jr_80178D40.o": 0.1, + "build/src/libmcrd1.o": 0.07, + "build/src/libmcrd2.o": 0.068, + "build/src/libpad1.o": 0.059, + "build/src/libpad2.o": 0.066, + "build/src/sgap.o": 0.059, + "build/src/sgap_2.o": 0.061, + "build/src/sgap_3.o": 0.061, + "build/src/sgap_4.o": 0.071, + "build/src/sgap_5.o": 0.063, + "build/src/sgap_6.o": 0.055, + "build/src/sgap_8.o": 0.066, + "build/src/snd1.o": 0.068, + "build/src/snd10.o": 0.056, + "build/src/snd11.o": 0.061, + "build/src/snd12.o": 0.059, + "build/src/snd2.o": 0.056, + "build/src/snd3.o": 0.059, + "build/src/snd4.o": 0.061, + "build/src/snd5.o": 0.064, + "build/src/snd6.o": 0.065, + "build/src/snd7.o": 0.059, + "build/src/snd8.o": 0.061, + "build/src/snd9.o": 0.069, + "build/src/ov_SC03_014/ov_SC03_014.o": 0.12, + "build/src/ov_SC03_014/ov_SC03_014_after.o": 0.491, + "build/src/ov_SC03_014/ov_SC03_014_jr_8012ACE0.o": 0.365, + "build/src/ov_SC03_014/ov_SC03_014_jr_80135888.o": 0.055, + "build/src/ov_SC03_014/ov_SC03_014_jr_80135A4C.o": 0.075, + "build/src/ov_SC03_014/ov_SC03_014_jr_80135D20.o": 0.124, + "build/src/ov_SC03_014/ov_SC03_014_jr_801380E0.o": 0.153, + "build/src/ov_SC03_014/ov_SC03_014_jr_8013C98C.o": 0.114, + "build/src/ov_SC03_014/ov_SC03_014_jr_8013F350.o": 0.077, + "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.172, + "build/src/ov_SC03_014/ov_SC03_014_jr_8015444C.o": 0.067, + "build/src/ov_SC03_014/ov_SC03_014_jr_80154C24.o": 0.168, + "build/src/ov_SC03_014/ov_SC03_014_jr_801588CC.o": 0.084, + "build/src/ov_SC03_014/ov_SC03_014_jr_80159C84.o": 0.063, + "build/src/ov_SC03_014/ov_SC03_014_jr_8015A3C8.o": 0.066, + "build/src/ov_SC03_014/ov_SC03_014_jr_8015AE2C.o": 0.087, + "build/src/ov_SC03_014/ov_SC03_014_jr_8015C32C.o": 0.466, + "build/src/ov_SC03_014/ov_SC03_014_jr_8016AB6C.o": 0.254, + "build/src/ov_SC03_014/ov_SC03_014_jr_80171B4C.o": 0.1, + "build/src/ov_SC03_014/ov_SC03_014_jr_801734BC.o": 0.188, + "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.198, - "build/src/ov_SC03_014/ov_SC03_014_jr_80184440.o": 0.051, - "build/src/ov_SC03_014/ov_SC03_014_jr_801848E4.o": 0.267, - "build/src/ov_SC03_014/ov_SC03_014_o0b.o": 0.053, - "build/src/ov_SC03_014/ov_SC03_014_o0c.o": 0.057, - "build/src/ov_SC03_014/ov_SC03_014_o0d.o": 0.053, - "build/src/ov_SC03_014/ov_SC03_014_o0e.o": 0.07, - "build/src/ov_SC03_015/ov_SC03_015.o": 0.106, - "build/src/ov_SC03_015/ov_SC03_015_after.o": 0.445, - "build/src/ov_SC03_015/ov_SC03_015_jr_8012ACE0.o": 0.388, - "build/src/ov_SC03_015/ov_SC03_015_jr_80135888.o": 0.048, - "build/src/ov_SC03_015/ov_SC03_015_jr_80135A4C.o": 0.053, - "build/src/ov_SC03_015/ov_SC03_015_jr_80135D20.o": 0.111, - "build/src/ov_SC03_015/ov_SC03_015_jr_801380E0.o": 0.132, - "build/src/ov_SC03_015/ov_SC03_015_jr_8013C98C.o": 0.115, - "build/src/ov_SC03_015/ov_SC03_015_jr_8013F350.o": 0.07, - "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.153, - "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.167, - "build/src/ov_SC03_015/ov_SC03_015_jr_801588CC.o": 0.083, - "build/src/ov_SC03_015/ov_SC03_015_jr_80159C84.o": 0.062, - "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.091, - "build/src/ov_SC03_015/ov_SC03_015_jr_8015C32C.o": 0.46, - "build/src/ov_SC03_015/ov_SC03_015_jr_8016AB6C.o": 0.247, - "build/src/ov_SC03_015/ov_SC03_015_jr_80171B4C.o": 0.091, - "build/src/ov_SC03_015/ov_SC03_015_jr_801734BC.o": 0.176, - "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.099, - "build/src/ov_SC03_015/ov_SC03_015_jr_8017A4AC.o": 0.064, - "build/src/ov_SC03_015/ov_SC03_015_jr_8017AE2C.o": 0.165, - "build/src/ov_SC03_015/ov_SC03_015_jr_8017EB7C.o": 0.201, - "build/src/ov_SC03_015/ov_SC03_015_jr_80184440.o": 0.049, - "build/src/ov_SC03_015/ov_SC03_015_jr_801848E4.o": 0.253, - "build/src/ov_SC03_015/ov_SC03_015_o0b.o": 0.062, - "build/src/ov_SC03_015/ov_SC03_015_o0c.o": 0.052, - "build/src/ov_SC03_015/ov_SC03_015_o0d.o": 0.053, - "build/src/ov_SC03_015/ov_SC03_015_o0e.o": 0.065, + "build/src/ov_SC03_014/ov_SC03_014_jr_8017AE2C.o": 0.158, + "build/src/ov_SC03_014/ov_SC03_014_jr_8017EB7C.o": 0.178, + "build/src/ov_SC03_014/ov_SC03_014_jr_80184440.o": 0.047, + "build/src/ov_SC03_014/ov_SC03_014_jr_801848E4.o": 0.26, + "build/src/ov_SC03_014/ov_SC03_014_o0b.o": 0.063, + "build/src/ov_SC03_014/ov_SC03_014_o0c.o": 0.052, + "build/src/ov_SC03_014/ov_SC03_014_o0d.o": 0.062, + "build/src/ov_SC03_014/ov_SC03_014_o0e.o": 0.065, + "build/src/ov_SC03_015/ov_SC03_015.o": 0.12, + "build/src/ov_SC03_015/ov_SC03_015_after.o": 0.471, + "build/src/ov_SC03_015/ov_SC03_015_jr_8012ACE0.o": 0.368, + "build/src/ov_SC03_015/ov_SC03_015_jr_80135888.o": 0.05, + "build/src/ov_SC03_015/ov_SC03_015_jr_80135A4C.o": 0.052, + "build/src/ov_SC03_015/ov_SC03_015_jr_80135D20.o": 0.104, + "build/src/ov_SC03_015/ov_SC03_015_jr_801380E0.o": 0.135, + "build/src/ov_SC03_015/ov_SC03_015_jr_8013C98C.o": 0.11, + "build/src/ov_SC03_015/ov_SC03_015_jr_8013F350.o": 0.063, + "build/src/ov_SC03_015/ov_SC03_015_jr_8013FFD8.o": 0.057, + "build/src/ov_SC03_015/ov_SC03_015_jr_80140608.o": 0.149, + "build/src/ov_SC03_015/ov_SC03_015_jr_8015444C.o": 0.069, + "build/src/ov_SC03_015/ov_SC03_015_jr_80154C24.o": 0.153, + "build/src/ov_SC03_015/ov_SC03_015_jr_801588CC.o": 0.087, + "build/src/ov_SC03_015/ov_SC03_015_jr_80159C84.o": 0.067, + "build/src/ov_SC03_015/ov_SC03_015_jr_8015A3C8.o": 0.063, + "build/src/ov_SC03_015/ov_SC03_015_jr_8015AE2C.o": 0.089, + "build/src/ov_SC03_015/ov_SC03_015_jr_8015C32C.o": 0.434, + "build/src/ov_SC03_015/ov_SC03_015_jr_8016AB6C.o": 0.248, + "build/src/ov_SC03_015/ov_SC03_015_jr_80171B4C.o": 0.084, + "build/src/ov_SC03_015/ov_SC03_015_jr_801734BC.o": 0.199, + "build/src/ov_SC03_015/ov_SC03_015_jr_801789AC.o": 0.052, + "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.066, + "build/src/ov_SC03_015/ov_SC03_015_jr_8017AE2C.o": 0.163, + "build/src/ov_SC03_015/ov_SC03_015_jr_8017EB7C.o": 0.195, + "build/src/ov_SC03_015/ov_SC03_015_jr_80184440.o": 0.053, + "build/src/ov_SC03_015/ov_SC03_015_jr_801848E4.o": 0.245, + "build/src/ov_SC03_015/ov_SC03_015_o0b.o": 0.054, + "build/src/ov_SC03_015/ov_SC03_015_o0c.o": 0.058, + "build/src/ov_SC03_015/ov_SC03_015_o0d.o": 0.052, + "build/src/ov_SC03_015/ov_SC03_015_o0e.o": 0.067, "build/src/ov_SC04_011/ov_SC04_011.o": 0.114, - "build/src/ov_SC04_011/ov_SC04_011_after.o": 0.419, - "build/src/ov_SC04_011/ov_SC04_011_jr_8012ACE0.o": 0.313, - "build/src/ov_SC04_011/ov_SC04_011_jr_80135888.o": 0.047, - "build/src/ov_SC04_011/ov_SC04_011_jr_80135A4C.o": 0.053, - "build/src/ov_SC04_011/ov_SC04_011_jr_80135D20.o": 0.11, - "build/src/ov_SC04_011/ov_SC04_011_jr_801380E0.o": 0.135, - "build/src/ov_SC04_011/ov_SC04_011_jr_8013C98C.o": 0.095, - "build/src/ov_SC04_011/ov_SC04_011_jr_8013F350.o": 0.063, - "build/src/ov_SC04_011/ov_SC04_011_jr_8013FFD8.o": 0.06, - "build/src/ov_SC04_011/ov_SC04_011_jr_80140608.o": 0.167, - "build/src/ov_SC04_011/ov_SC04_011_jr_8015444C.o": 0.069, - "build/src/ov_SC04_011/ov_SC04_011_jr_80154C24.o": 0.157, - "build/src/ov_SC04_011/ov_SC04_011_jr_801588CC.o": 0.089, - "build/src/ov_SC04_011/ov_SC04_011_jr_80159C84.o": 0.057, - "build/src/ov_SC04_011/ov_SC04_011_jr_8015A3C8.o": 0.066, - "build/src/ov_SC04_011/ov_SC04_011_jr_8015AE2C.o": 0.092, - "build/src/ov_SC04_011/ov_SC04_011_jr_8015C32C.o": 0.344, - "build/src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.o": 0.222, - "build/src/ov_SC04_011/ov_SC04_011_jr_80171B4C.o": 0.089, - "build/src/ov_SC04_011/ov_SC04_011_jr_801734BC.o": 0.171, - "build/src/ov_SC04_011/ov_SC04_011_jr_801789AC.o": 0.056, - "build/src/ov_SC04_011/ov_SC04_011_jr_80178D40.o": 0.089, - "build/src/ov_SC04_011/ov_SC04_011_jr_8017A4AC.o": 0.062, - "build/src/ov_SC04_011/ov_SC04_011_jr_8017AE2C.o": 0.102, - "build/src/ov_SC04_011/ov_SC04_011_jr_8017D494.o": 0.417, - "build/src/ov_SC04_011/ov_SC04_011_o0b.o": 0.057, - "build/src/ov_SC04_011/ov_SC04_011_o0c.o": 0.05 + "build/src/ov_SC04_011/ov_SC04_011_after.o": 0.408, + "build/src/ov_SC04_011/ov_SC04_011_jr_8012ACE0.o": 0.311, + "build/src/ov_SC04_011/ov_SC04_011_jr_80135888.o": 0.052, + "build/src/ov_SC04_011/ov_SC04_011_jr_80135A4C.o": 0.047, + "build/src/ov_SC04_011/ov_SC04_011_jr_80135D20.o": 0.108, + "build/src/ov_SC04_011/ov_SC04_011_jr_801380E0.o": 0.14, + "build/src/ov_SC04_011/ov_SC04_011_jr_8013C98C.o": 0.098, + "build/src/ov_SC04_011/ov_SC04_011_jr_8013F350.o": 0.065, + "build/src/ov_SC04_011/ov_SC04_011_jr_8013FFD8.o": 0.062, + "build/src/ov_SC04_011/ov_SC04_011_jr_80140608.o": 0.16, + "build/src/ov_SC04_011/ov_SC04_011_jr_8015444C.o": 0.064, + "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.084, + "build/src/ov_SC04_011/ov_SC04_011_jr_80159C84.o": 0.066, + "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.089, + "build/src/ov_SC04_011/ov_SC04_011_jr_8015C32C.o": 0.34, + "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.163, + "build/src/ov_SC04_011/ov_SC04_011_jr_801789AC.o": 0.053, + "build/src/ov_SC04_011/ov_SC04_011_jr_80178D40.o": 0.08, + "build/src/ov_SC04_011/ov_SC04_011_jr_8017A4AC.o": 0.061, + "build/src/ov_SC04_011/ov_SC04_011_jr_8017AE2C.o": 0.095, + "build/src/ov_SC04_011/ov_SC04_011_jr_8017D494.o": 0.426, + "build/src/ov_SC04_011/ov_SC04_011_o0b.o": 0.059, + "build/src/ov_SC04_011/ov_SC04_011_o0c.o": 0.051 }, "ok": true, "seconds": 2.2 diff --git a/.run/P36/delever/ledger.jsonl b/.run/P36/delever/ledger.jsonl index 801f13804a..d4271dc5e9 100644 --- a/.run/P36/delever/ledger.jsonl +++ b/.run/P36/delever/ledger.jsonl @@ -29588,3 +29588,4 @@ {"ts": "2026-09-11 11:58:18", "label": "s105_r44r22", "rung": "E", "calib": {"head": "a73fd1bf8", "stamp": "15956e4a96c4"}, "tu": "src/shared/ov/func_8014A2E4.h", "fn": "func_8014A2E4", "addr": 2148836068, "aliases": null, "header": true, "includers": 136, "nhash_before": "05abf65b0f2e6ee7fbf38e9d462bdf6c14303ecc", "nhash_after": "d865fb3e892a6ffbf9b3b53989e06fe5f3558928", "source": "delever_regen R44 counter-ptr p by i @8", "verdict": "LEVER-FREE", "sites": [], "compiles": 141, "seconds": 44.278, "objects": ["build/src/ov_MAIN_012/ov_MAIN_012_jr_801458E0.o", "build/src/ov_SC01_000/ov_SC01_000_after.o", "build/src/ov_SC01_001/ov_SC01_001_after.o", "build/src/ov_SC01_004/ov_SC01_004_after.o", "build/src/ov_SC01_005/ov_SC01_005_after.o", "build/src/ov_SC01_006/ov_SC01_006_after.o", "build/src/ov_SC01_008/ov_SC01_008_after.o", "build/src/ov_SC01_009/ov_SC01_009_after.o", "build/src/ov_SC01_074/ov_SC01_074_after.o", "build/src/ov_SC01_077/ov_SC01_077_after.o", "build/src/ov_SC01_080/ov_SC01_080_after.o", "build/src/ov_SC01_084/ov_SC01_084_after.o", "build/src/ov_SC02_000/ov_SC02_000_after.o", "build/src/ov_SC02_003/ov_SC02_003_after.o", "build/src/ov_SC02_004/ov_SC02_004_after.o", "build/src/ov_SC02_005/ov_SC02_005_after.o", "build/src/ov_SC02_011/ov_SC02_011_after.o", "build/src/ov_SC02_015/ov_SC02_015_after.o", "build/src/ov_SC02_016/ov_SC02_016_after.o", "build/src/ov_SC02_017/ov_SC02_017_after.o", "build/src/ov_SC02_021/ov_SC02_021_after.o", "build/src/ov_SC02_026/ov_SC02_026_after.o", "build/src/ov_SC02_027/ov_SC02_027_after.o", "build/src/ov_SC02_028/ov_SC02_028_after.o", "build/src/ov_SC02_031/ov_SC02_031_after.o", "build/src/ov_SC02_035/ov_SC02_035_after.o", "build/src/ov_SC02_037/ov_SC02_037_jr_801458E0.o", "build/src/ov_SC02_039/ov_SC02_039_after.o", "build/src/ov_SC02_041/ov_SC02_041_after.o", "build/src/ov_SC03_001/ov_SC03_001_after.o", "build/src/ov_SC03_002/ov_SC03_002_after.o", "build/src/ov_SC03_003/ov_SC03_003_after.o", "build/src/ov_SC03_006/ov_SC03_006_after.o", "build/src/ov_SC03_007/ov_SC03_007_after.o", "build/src/ov_SC03_010/ov_SC03_010_after.o", "build/src/ov_SC03_011/ov_SC03_011_after.o", "build/src/ov_SC03_012/ov_SC03_012_after.o", "build/src/ov_SC03_013/ov_SC03_013_after.o", "build/src/ov_SC03_014/ov_SC03_014_after.o", "build/src/ov_SC03_015/ov_SC03_015_after.o", "build/src/ov_SC03_023/ov_SC03_023_after.o", "build/src/ov_SC03_024/ov_SC03_024_after.o", "build/src/ov_SC03_028/ov_SC03_028_after.o", "build/src/ov_SC03_029/ov_SC03_029_after.o", "build/src/ov_SC03_030/ov_SC03_030_after.o", "build/src/ov_SC03_031/ov_SC03_031_after.o", "build/src/ov_SC03_089/ov_SC03_089_after.o", "build/src/ov_SC03_090/ov_SC03_090_after.o", "build/src/ov_SC03_091/ov_SC03_091_after.o", "build/src/ov_SC03_092/ov_SC03_092_after.o", "build/src/ov_SC03_093/ov_SC03_093_after.o", "build/src/ov_SC03_094/ov_SC03_094_after.o", "build/src/ov_SC03_095/ov_SC03_095_after.o", "build/src/ov_SC03_096/ov_SC03_096_after.o", "build/src/ov_SC03_097/ov_SC03_097_after.o", "build/src/ov_SC03_098/ov_SC03_098_after.o", "build/src/ov_SC03_099/ov_SC03_099_after.o", "build/src/ov_SC03_100/ov_SC03_100_after.o", "build/src/ov_SC03_101/ov_SC03_101_after.o", "build/src/ov_SC03_102/ov_SC03_102_after.o", "build/src/ov_SC03_103/ov_SC03_103_after.o", "build/src/ov_SC03_104/ov_SC03_104_after.o", "build/src/ov_SC03_105/ov_SC03_105_after.o", "build/src/ov_SC03_107/ov_SC03_107_jr_801458E0.o", "build/src/ov_SC03_108/ov_SC03_108_after.o", "build/src/ov_SC03_109/ov_SC03_109_after.o", "build/src/ov_SC03_110/ov_SC03_110_after.o", "build/src/ov_SC03_111/ov_SC03_111_after.o", "build/src/ov_SC03_112/ov_SC03_112_after.o", "build/src/ov_SC03_113/ov_SC03_113_after.o", "build/src/ov_SC03_114/ov_SC03_114_after.o", "build/src/ov_SC03_115/ov_SC03_115_after.o", "build/src/ov_SC03_116/ov_SC03_116_after.o", "build/src/ov_SC03_117/ov_SC03_117_after.o", "build/src/ov_SC03_118/ov_SC03_118_after.o", "build/src/ov_SC03_119/ov_SC03_119_after.o", "build/src/ov_SC03_121/ov_SC03_121_after.o", "build/src/ov_SC03_124/ov_SC03_124_after.o", "build/src/ov_SC03_125/ov_SC03_125_after.o", "build/src/ov_SC03_126/ov_SC03_126_after.o", "build/src/ov_SC04_000/ov_SC04_000_after.o", "build/src/ov_SC04_002/ov_SC04_002_after.o", "build/src/ov_SC04_003/ov_SC04_003_after.o", "build/src/ov_SC04_004/ov_SC04_004_after.o", "build/src/ov_SC04_005/ov_SC04_005_after.o", "build/src/ov_SC04_006/ov_SC04_006_after.o", "build/src/ov_SC04_007/ov_SC04_007_after.o", "build/src/ov_SC04_008/ov_SC04_008_after.o", "build/src/ov_SC04_009/ov_SC04_009_after.o", "build/src/ov_SC04_010/ov_SC04_010_after.o", "build/src/ov_SC04_011/ov_SC04_011_after.o", "build/src/ov_SC04_012/ov_SC04_012_after.o", "build/src/ov_SC04_015/ov_SC04_015_after.o", "build/src/ov_SC04_016/ov_SC04_016_after.o", "build/src/ov_SC04_018/ov_SC04_018_after.o", "build/src/ov_SC04_019/ov_SC04_019_after.o", "build/src/ov_SC04_020/ov_SC04_020_after.o", "build/src/ov_SC04_021/ov_SC04_021_after.o", "build/src/ov_SC05_000/ov_SC05_000_after.o", "build/src/ov_SC05_001/ov_SC05_001_after.o", "build/src/ov_SC05_002/ov_SC05_002_after.o", "build/src/ov_SC05_003/ov_SC05_003_after.o", "build/src/ov_SC05_004/ov_SC05_004_after.o", "build/src/ov_SC05_005/ov_SC05_005_after.o", "build/src/ov_SC05_006/ov_SC05_006_after.o", "build/src/ov_SC05_007/ov_SC05_007_after.o", "build/src/ov_SC05_008/ov_SC05_008_after.o", "build/src/ov_SC05_009/ov_SC05_009_after.o", "build/src/ov_SC05_010/ov_SC05_010_after.o", "build/src/ov_SC05_011/ov_SC05_011_after.o", "build/src/ov_SC05_017/ov_SC05_017_after.o", "build/src/ov_SC05_018/ov_SC05_018_after.o", "build/src/ov_SC05_019/ov_SC05_019_after.o", "build/src/ov_SC06_000/ov_SC06_000_after.o", "build/src/ov_SC06_006/ov_SC06_006_after.o", "build/src/ov_SC06_008/ov_SC06_008_after.o", "build/src/ov_SC06_010/ov_SC06_010_after.o", "build/src/ov_SC06_011/ov_SC06_011_after.o", "build/src/ov_SC06_013/ov_SC06_013_after.o", "build/src/ov_SC06_014/ov_SC06_014_after.o", "build/src/ov_SC06_015/ov_SC06_015_after.o", "build/src/ov_SC06_016/ov_SC06_016_after.o", "build/src/ov_SC06_018/ov_SC06_018_after.o", "build/src/ov_SC06_020/ov_SC06_020_after.o", "build/src/ov_SC06_022/ov_SC06_022_after.o", "build/src/ov_SC06_024/ov_SC06_024_after.o", "build/src/ov_SC06_025/ov_SC06_025_after.o", "build/src/ov_SC06_027/ov_SC06_027_after.o", "build/src/ov_SC06_029/ov_SC06_029_after.o", "build/src/ov_SC06_030/ov_SC06_030_after.o", "build/src/ov_SC06_032/ov_SC06_032_after.o", "build/src/ov_SC06_033/ov_SC06_033_after.o", "build/src/ov_SC07_000/ov_SC07_000_after.o", "build/src/ov_SC07_001/ov_SC07_001_after.o", "build/src/ov_SC07_002/ov_SC07_002_after.o", "build/src/ov_SC07_006/ov_SC07_006_jr_801457A4.o", "build/src/ov_SC07_007/ov_SC07_007_jr_801457A4.o", "build/src/ov_SC07_008/ov_SC07_008_after.o", "build/src/ov_SC07_009/ov_SC07_009_after.o", "build/src/ov_SC07_010/ov_SC07_010_jr_801457A4.o", "build/src/ov_SC07_011/ov_SC07_011_jr_801457A4.o"], "before_text": "s32 func_8014A2E4(s32 a0) {\n s32 a0v;\n u32 i;\n register u8 *p __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B headers1)\n a0v = a0;\n i = 0;\n p = D_801202A0;\n do {\n if (*(u16 *)(p + 0x0) != 0\n && (*(u16 *)(p + 0x5C) & 0x8000)\n && *(s16 *)(p + 0xAA) != 0\n && func_8014C278(a0v, (s32)p, 0x30) != 0) {\n return (s32)p;\n }\n i++;\n p += 0x10C;\n } while (i < 0x60);\n return 0;\n}\n", "after_text": "s32 func_8014A2E4(s32 a0) {\n s32 a0v;\n u32 i;\n u8 *p;\n a0v = a0;\n i = 0;\n do {\n p = (u8 *)(D_801202A0) + i * 0x10c;\n if (*(u16 *)(p + 0x0) != 0\n && (*(u16 *)(p + 0x5C) & 0x8000)\n && *(s16 *)(p + 0xAA) != 0\n && func_8014C278(a0v, (s32)p, 0x30) != 0) {\n return (s32)p;\n }\n i++;\n } while (i < 0x60);\n return 0;\n}\n"} {"ts": "2026-09-11 11:58:20", "label": "s105_r44r22", "rung": "E", "calib": {"head": "a73fd1bf8", "stamp": "15956e4a96c4"}, "tu": "src/ov_SC06_030/ov_SC06_030_jr_8017F65C.c", "fn": "func_80180FF4", "addr": 2149060596, "aliases": null, "header": false, "includers": 0, "nhash_before": "d784f17a6a99e13c9faa53cfd0064db8f4adaf1b", "nhash_after": "a63da6edc3b41986adbe18a28c0506d7848eff54", "source": "delever_regen R44 counter-ptr p by i @14", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.086, "objects": ["build/src/ov_SC06_030/ov_SC06_030_jr_8017F65C.o"], "before_text": "void func_80180FF4(void *param_1)\n{\n register void *arg0 __asm__(\"$19\") = param_1; // !FAKE: pin $19 \u2014 NEEDED DIFFERS (P36 rung B tus9)\n u8 *p;\n s32 i;\n s32 best;\n s16 t;\n s32 sp10[2];\n\n best = 0x7FFFFFFF;\n i = 0;\n p = D_801202A0;\n D_801B9F10 = 0;\n for (; i < 0x60; i++) {\n __asm__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus9)\n __asm__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus9)\n __asm__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus9)\n __asm__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus9)\n __asm__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus9)\n __asm__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus9)\n __asm__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus9)\n __asm__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus9)\n __asm__(\"\"); // !FAKE: barrier \u2014 NEEDED DIFFERS (P36 rung B tus9)\n if (*(u16 *)p == 0x26E) {\n t = (s16)func_80013328((s32)arg0 + 4, (s32)p + 4);\n if (t < best) {\n best = t;\n D_801B9F10 = p;\n }\n }\n p += 0x10C;\n }\n *(s16 *)((s32)arg0 + 0x208) = 0;\n func_80015978((s32)arg0 + 4, sp10);\n func_8012F2E8((s32)D_801B9F10, (s32)sp10, (s32)arg0 + 0x20C);\n *(s32 *)((s32)arg0 + 0x204) = (s32)D_801B9F10;\n func_8002D4C8(0x8B0, 0);\n}\n", "after_text": "void func_80180FF4(void *param_1)\n{\n void *arg0 = param_1;\n u8 *p;\n s32 i;\n s32 best;\n s16 t;\n s32 sp10[2];\n\n best = 0x7FFFFFFF;\n i = 0;\n D_801B9F10 = 0;\n for (; i < 0x60; i++) {\n p = (u8 *)(D_801202A0) + i * 0x10c;\n if (*(u16 *)p == 0x26E) {\n t = (s16)func_80013328((s32)arg0 + 4, (s32)p + 4);\n if (t < best) {\n best = t;\n D_801B9F10 = p;\n }\n }\n }\n *(s16 *)((s32)arg0 + 0x208) = 0;\n func_80015978((s32)arg0 + 4, sp10);\n func_8012F2E8((s32)D_801B9F10, (s32)sp10, (s32)arg0 + 0x20C);\n *(s32 *)((s32)arg0 + 0x204) = (s32)D_801B9F10;\n func_8002D4C8(0x8B0, 0);\n}\n"} {"ts": "2026-09-11 12:33:42", "label": "s105_f1", "rung": "E", "calib": {"head": "9c91476bb", "stamp": "15956e4a96c4"}, "tu": "src/800.c", "fn": "func_80016638", "addr": 2147575352, "aliases": null, "header": false, "includers": 0, "nhash_before": "0ed927d7d6b824a3601433740c6d56df7fdda539", "nhash_after": "96d0d47b8ddfc89f8953bf5723140771b34b7a77", "source": ".run/P36/agents/main__func_80016638/body.c", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.441, "objects": ["build/src/800.o"], "before_text": "void func_80016638(void *a0, s32 a1, s32 a2)\n{\n void *s2 = a0;\n s32 s1 = a1;\n s32 s0 = a2;\n void *v0;\n u32 mask1;\n register u32 mask2 __asm__(\"$6\"); // !FAKE: pin $6 \u2014 NEEDED DIFFERS (P36 rung B tus9)\n u32 pv;\n u32 v1;\n u32 tmp;\n\n v0 = func_80010A08(8);\n\n mask1 = 0xFFFFFF;\n {\n u32 one = 1;\n s0 = (s0 << 5) & 0x9FF;\n *(u8 *)((u8 *)v0 + 3) = (u8)one;\n __asm__ __volatile__(\"\" : \"=r\"(one) : \"0\"(one)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus9)\n }\n s0 = s0 | 0xE1000000;\n\n s1 = s1 << 2;\n mask2 = 0xFF000000;\n\n *(u32 *)((u8 *)v0 + 4) = s0;\n\n /* First addPrim RMW: new primitive's link = OT slot's current low24,\n * primitive keeps its own top-byte tag. Mirrors func_80015D4C /\n * func_80016450's matched addPrim idiom in this same TU. */\n v1 = *(u32 *)((u8 *)s2 + 4);\n pv = *(u32 *)v0;\n v1 = *(u32 *)(s1 + v1);\n pv = pv & mask2;\n v1 = v1 & mask1;\n pv = pv | v1;\n *(u32 *)v0 = pv;\n\n /* Second addPrim RMW: OT slot := (OT slot's own top-byte tag) |\n * (new primitive's address, masked to low24) \u2014 head-insert the new\n * primitive into the OT chain. */\n v1 = *(u32 *)((u8 *)s2 + 4);\n s1 = s1 + v1;\n v1 = *(u32 *)s1;\n tmp = (u32)v0 & mask1;\n v1 = v1 & mask2;\n v1 = v1 | tmp;\n *(u32 *)s1 = v1;\n}\n", "after_text": "void func_80016638(void *a0, s32 a1, s32 a2)\n{\n typedef struct { u32 addr : 24; u32 len : 8; } PTag; /* libgpu P_TAG: an OT link word */\n typedef struct { u32 addr : 24; u32 len : 8; u32 code; } DrTpage; /* libgpu DR_TPAGE (8 bytes) */\n typedef struct { u8 pad[4]; PTag *ot; } Env; /* a0 + 4: the frame's ordering table */\n Env *env = a0;\n DrTpage *p;\n\n p = func_80010A08(8);\n p->len = 1; /* setlen(p, 1) */\n p->code = 0xE1000000 | ((a2 << 5) & 0x9FF); /* setDrawTPage(p, 0, 0, a2 << 5) */\n p->addr = env->ot[a1].addr; /* addPrim(&env->ot[a1], p): setaddr(p, getaddr(ot)) */\n env->ot[a1].addr = (u32)p; /* setaddr(ot, p) */\n}\n"} +{"ts": "2026-09-11 12:34:02", "label": "s105_f1", "rung": "E", "calib": {"head": "a4038d5da", "stamp": "15956e4a96c4"}, "tu": "src/800.c", "fn": "func_80025504", "addr": 2147636484, "aliases": null, "header": false, "includers": 0, "nhash_before": "4235c0f4e26903b89bdc173f29d2362a01aa7017", "nhash_after": "974b9c4b56d020d3a26e599a21399432b7a762fa", "source": ".run/P36/agents/main__func_80025504/body.c", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.437, "objects": ["build/src/800.o"], "before_text": "void *func_80025504(GFace *prim, GVec8 *vtx, GVec8 *nrm, GPolyG4 *poly, s32 n, s32 shift,\n u32 *ot)\n{\n s32 flag;\n s32 p;\n s32 sz0, sz1, sz2, sz3;\n s32 zmax, ztmp;\n u32 *op;\n GDrMode *dm;\n GFace *fp;\n register GFace *p0 __asm__(\"$4\") = prim; // !FAKE: pin $4 \u2014 NEEDED DIFFERS (P36 rung B tus9)\n\n __asm__(\"\" : \"=r\"(poly) : \"0\"(poly)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus9)\n fp = p0;\n for (; n != 0; n--, fp++) {\n gte_ldv3(&vtx[fp->v0], &vtx[fp->v1], &vtx[fp->v2]);\n gte_rtpt();\n gte_stflg(&flag);\n if (flag & 0xffffefff) {\n continue;\n }\n gte_nclip();\n gte_stopz(&p);\n if (p <= 0) {\n continue;\n }\n gte_stsxy3_ft3(poly);\n gte_ldv0(&vtx[fp->v3]);\n gte_rtps();\n gte_stflg(&flag);\n if (flag & 0xffffefff) {\n continue;\n }\n gte_stsxy(&poly->xy3);\n if (D_80078D88[0] & 0x8000) {\n gte_stsz4(&sz0, &sz1, &sz2, &sz3);\n zmax = sz2;\n if (zmax < sz3) {\n zmax = sz3;\n }\n ztmp = sz0;\n if (ztmp < sz1) {\n ztmp = sz1;\n }\n if (ztmp < zmax) {\n ztmp = zmax;\n }\n p = ztmp >> 2;\n } else {\n gte_avsz4();\n gte_stotz(&p);\n }\n gte_ldrgb(&fp->rgb);\n gte_ldv3(&nrm[fp->n0], &nrm[fp->n1], &nrm[fp->n2]);\n gte_ncct();\n gte_strgb3_g3(poly);\n gte_ldv0(&nrm[fp->n3]);\n gte_nccs();\n gte_strgb(&poly->rgb3);\n\n op = &ot[p >> shift];\n poly->tag = (*op & 0xffffff) | 0x08000000;\n *op = (u32)poly & 0xffffff;\n poly++;\n if (D_800A2B78 != 0) {\n if (poly[-1].code & 2) {\n dm = (GDrMode *)poly;\n op = &ot[p >> shift];\n dm->len = 1;\n dm->code0 = 0xe100000a | ((D_800A2B78 & 3) << 5);\n *(u32 *)dm = (*op & 0xffffff) | 0x01000000;\n *op = (u32)dm & 0xffffff;\n poly = (GPolyG4 *)((u8 *)dm + 8);\n }\n }\n }\n return poly;\n}\n", "after_text": "void *func_80025504(GFace *prim, GVec8 *vtx, GVec8 *nrm, GPolyG4 *poly, s32 n, s32 shift,\n u32 *ot)\n{\n s32 flag;\n s32 p;\n s32 sz0, sz1, sz2, sz3;\n s32 zmax, ztmp;\n u32 *op;\n GDrMode *dm;\n GPolyG4 *pk = poly; /* the output cursor is walked as a LOCAL copy (its biv's initial value is then the\n * parameter's pseudo, loop.c:6327/4120, so poly's pseudo is tied back into $a3);\n * the face list is walked through the PARAMETER itself (its giv init reads $a0). */\n\n for (; n != 0; n--, prim++) {\n gte_ldv3(&vtx[prim->v0], &vtx[prim->v1], &vtx[prim->v2]);\n gte_rtpt();\n gte_stflg(&flag);\n if (flag & 0xffffefff) {\n continue;\n }\n gte_nclip();\n gte_stopz(&p);\n if (p <= 0) {\n continue;\n }\n gte_stsxy3_ft3(pk);\n gte_ldv0(&vtx[prim->v3]);\n gte_rtps();\n gte_stflg(&flag);\n if (flag & 0xffffefff) {\n continue;\n }\n gte_stsxy(&pk->xy3);\n if (D_80078D88[0] & 0x8000) {\n gte_stsz4(&sz0, &sz1, &sz2, &sz3);\n zmax = sz2;\n if (zmax < sz3) {\n zmax = sz3;\n }\n ztmp = sz0;\n if (ztmp < sz1) {\n ztmp = sz1;\n }\n if (ztmp < zmax) {\n ztmp = zmax;\n }\n p = ztmp >> 2;\n } else {\n gte_avsz4();\n gte_stotz(&p);\n }\n gte_ldrgb(&prim->rgb);\n gte_ldv3(&nrm[prim->n0], &nrm[prim->n1], &nrm[prim->n2]);\n gte_ncct();\n gte_strgb3_g3(pk);\n gte_ldv0(&nrm[prim->n3]);\n gte_nccs();\n gte_strgb(&pk->rgb3);\n\n op = &ot[p >> shift];\n pk->tag = (*op & 0xffffff) | 0x08000000;\n *op = (u32)pk & 0xffffff;\n pk++;\n if (D_800A2B78 != 0) {\n if (pk[-1].code & 2) {\n dm = (GDrMode *)pk;\n op = &ot[p >> shift];\n dm->len = 1;\n dm->code0 = 0xe100000a | ((D_800A2B78 & 3) << 5);\n *(u32 *)dm = (*op & 0xffffff) | 0x01000000;\n *op = (u32)dm & 0xffffff;\n pk = (GPolyG4 *)((u8 *)dm + 8);\n }\n }\n }\n return pk;\n}\n"} diff --git a/src/800.c b/src/800.c index f10f1b11e8..d66f5315e2 100644 --- a/src/800.c +++ b/src/800.c @@ -15900,7 +15900,7 @@ extern s32 D_80078D88[]; extern s32 D_800A2B78; void *func_80025504(GFace *prim, GVec8 *vtx, GVec8 *nrm, GPolyG4 *poly, s32 n, s32 shift, - u32 *ot) + u32 *ot) { s32 flag; s32 p; @@ -15908,74 +15908,73 @@ void *func_80025504(GFace *prim, GVec8 *vtx, GVec8 *nrm, GPolyG4 *poly, s32 n, s s32 zmax, ztmp; u32 *op; GDrMode *dm; - GFace *fp; - register GFace *p0 __asm__("$4") = prim; // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus9) + GPolyG4 *pk = poly; /* the output cursor is walked as a LOCAL copy (its biv's initial value is then the + * parameter's pseudo, loop.c:6327/4120, so poly's pseudo is tied back into $a3); + * the face list is walked through the PARAMETER itself (its giv init reads $a0). */ - __asm__("" : "=r"(poly) : "0"(poly)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus9) - fp = p0; - for (; n != 0; n--, fp++) { - gte_ldv3(&vtx[fp->v0], &vtx[fp->v1], &vtx[fp->v2]); - gte_rtpt(); - gte_stflg(&flag); - if (flag & 0xffffefff) { - continue; + for (; n != 0; n--, prim++) { + gte_ldv3(&vtx[prim->v0], &vtx[prim->v1], &vtx[prim->v2]); + gte_rtpt(); + gte_stflg(&flag); + if (flag & 0xffffefff) { + continue; + } + gte_nclip(); + gte_stopz(&p); + if (p <= 0) { + continue; + } + gte_stsxy3_ft3(pk); + gte_ldv0(&vtx[prim->v3]); + gte_rtps(); + gte_stflg(&flag); + if (flag & 0xffffefff) { + continue; + } + gte_stsxy(&pk->xy3); + if (D_80078D88[0] & 0x8000) { + gte_stsz4(&sz0, &sz1, &sz2, &sz3); + zmax = sz2; + if (zmax < sz3) { + zmax = sz3; } - gte_nclip(); - gte_stopz(&p); - if (p <= 0) { - continue; + ztmp = sz0; + if (ztmp < sz1) { + ztmp = sz1; } - gte_stsxy3_ft3(poly); - gte_ldv0(&vtx[fp->v3]); - gte_rtps(); - gte_stflg(&flag); - if (flag & 0xffffefff) { - continue; + if (ztmp < zmax) { + ztmp = zmax; } - gte_stsxy(&poly->xy3); - if (D_80078D88[0] & 0x8000) { - gte_stsz4(&sz0, &sz1, &sz2, &sz3); - zmax = sz2; - if (zmax < sz3) { - zmax = sz3; - } - ztmp = sz0; - if (ztmp < sz1) { - ztmp = sz1; - } - if (ztmp < zmax) { - ztmp = zmax; - } - p = ztmp >> 2; - } else { - gte_avsz4(); - gte_stotz(&p); - } - gte_ldrgb(&fp->rgb); - gte_ldv3(&nrm[fp->n0], &nrm[fp->n1], &nrm[fp->n2]); - gte_ncct(); - gte_strgb3_g3(poly); - gte_ldv0(&nrm[fp->n3]); - gte_nccs(); - gte_strgb(&poly->rgb3); + p = ztmp >> 2; + } else { + gte_avsz4(); + gte_stotz(&p); + } + gte_ldrgb(&prim->rgb); + gte_ldv3(&nrm[prim->n0], &nrm[prim->n1], &nrm[prim->n2]); + gte_ncct(); + gte_strgb3_g3(pk); + gte_ldv0(&nrm[prim->n3]); + gte_nccs(); + gte_strgb(&pk->rgb3); - op = &ot[p >> shift]; - poly->tag = (*op & 0xffffff) | 0x08000000; - *op = (u32)poly & 0xffffff; - poly++; - if (D_800A2B78 != 0) { - if (poly[-1].code & 2) { - dm = (GDrMode *)poly; - op = &ot[p >> shift]; - dm->len = 1; - dm->code0 = 0xe100000a | ((D_800A2B78 & 3) << 5); - *(u32 *)dm = (*op & 0xffffff) | 0x01000000; - *op = (u32)dm & 0xffffff; - poly = (GPolyG4 *)((u8 *)dm + 8); - } + op = &ot[p >> shift]; + pk->tag = (*op & 0xffffff) | 0x08000000; + *op = (u32)pk & 0xffffff; + pk++; + if (D_800A2B78 != 0) { + if (pk[-1].code & 2) { + dm = (GDrMode *)pk; + op = &ot[p >> shift]; + dm->len = 1; + dm->code0 = 0xe100000a | ((D_800A2B78 & 3) << 5); + *(u32 *)dm = (*op & 0xffffff) | 0x01000000; + *op = (u32)dm & 0xffffff; + pk = (GPolyG4 *)((u8 *)dm + 8); } + } } - return poly; + return pk; }