From c4834ca814a0fb5fe5084a033ba5cd56f1247020 Mon Sep 17 00:00:00 2001 From: Drew T <50529377+Druthulu@users.noreply.github.com> Date: Fri, 11 Sep 2026 02:41:56 -0600 Subject: [PATCH] =?UTF-8?q?phase-36:=20S104=20s104=5Fe15=20=E2=80=94=20fun?= =?UTF-8?q?c=5F80015760=20banked=20at=200=20through=20the=20whole-object?= =?UTF-8?q?=20gate=20+=20propagated=20=E2=80=94=202=20pins=20=E2=86=92=200?= =?UTF-8?q?:=20set=20counts=20steer=20REG=5FEQUIV=20(local-alloc.c:1016-10?= =?UTF-8?q?64),=20loop.c's=20hoist=20(loop.c:705)=20and=20sched1=20births?= =?UTF-8?q?=20(sched.c:2465-2543)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .run/P36/delever/calibration.json | 358 +++++++++++++++--------------- .run/P36/delever/ledger.jsonl | 1 + src/800.c | 151 ++++++------- 3 files changed, 251 insertions(+), 259 deletions(-) diff --git a/.run/P36/delever/calibration.json b/.run/P36/delever/calibration.json index 1873e8fd4..e5c15a07a 100644 --- a/.run/P36/delever/calibration.json +++ b/.run/P36/delever/calibration.json @@ -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 diff --git a/.run/P36/delever/ledger.jsonl b/.run/P36/delever/ledger.jsonl index 1500831e5..18924ab4c 100644 --- a/.run/P36/delever/ledger.jsonl +++ b/.run/P36/delever/ledger.jsonl @@ -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"} diff --git a/src/800.c b/src/800.c index 97768e85c..0eb41e8f9 100644 --- a/src/800.c +++ b/src/800.c @@ -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[];