From fa11bde64bd40eff79e0727af7825fbd4bbca0b2 Mon Sep 17 00:00:00 2001 From: Drew T <50529377+Druthulu@users.noreply.github.com> Date: Fri, 11 Sep 2026 01:55:44 -0600 Subject: [PATCH] =?UTF-8?q?phase-36:=20S104=20s104=5Fe5=20=E2=80=94=20func?= =?UTF-8?q?=5F80186858=20banked=20at=200=20through=20the=20whole-object=20?= =?UTF-8?q?gate=20+=20propagated=20=E2=80=94=20e5=20copy?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .run/P36/delever/calibration.json | 374 +++++++++++----------- .run/P36/delever/ledger.jsonl | 1 + src/ov_SC06_033/ov_SC06_033_jr_80186574.c | 19 +- 3 files changed, 195 insertions(+), 199 deletions(-) diff --git a/.run/P36/delever/calibration.json b/.run/P36/delever/calibration.json index f160d90a4..dcd6169de 100644 --- a/.run/P36/delever/calibration.json +++ b/.run/P36/delever/calibration.json @@ -1,5 +1,5 @@ { - "head": "30a9a2095", + "head": "2561d27b3", "stamp": "15956e4a96c4", "generated": "2026-09-11 01:55", "aliases": [ @@ -21,207 +21,207 @@ "main": { "objects": 85, "identical": 85, - "seconds": 6.497000000000001, - "mean_s": 0.076 + "seconds": 7.933000000000003, + "mean_s": 0.093 }, "ov_SC03_014": { "objects": 32, "identical": 32, - "seconds": 4.579000000000001, - "mean_s": 0.143 + "seconds": 5.275999999999999, + "mean_s": 0.165 }, "ov_SC03_015": { "objects": 32, "identical": 32, - "seconds": 4.367, - "mean_s": 0.136 + "seconds": 5.105000000000001, + "mean_s": 0.16 }, "ov_SC04_011": { "objects": 28, "identical": 28, - "seconds": 3.8040000000000003, - "mean_s": 0.136 + "seconds": 4.364000000000001, + "mean_s": 0.156 } }, "per_object_seconds": { - "build/src/800.o": 0.734, - "build/src/800_b.o": 0.075, - "build/src/800_b_2.o": 0.306, - "build/src/800_b_o0a.o": 0.074, - "build/src/800_c.o": 0.182, - "build/src/800b2.o": 0.077, - "build/src/apicard1.o": 0.057, - "build/src/apicard2.o": 0.072, - "build/src/apicard3.o": 0.095, - "build/src/apicard4.o": 0.064, - "build/src/apicard5.o": 0.076, - "build/src/apicard6.o": 0.063, - "build/src/apicard7.o": 0.075, - "build/src/boot.o": 0.074, - "build/src/gap.o": 0.054, - "build/src/libapi1.o": 0.071, - "build/src/libapi2.o": 0.056, - "build/src/libc2_1.o": 0.06, - "build/src/libc2_2.o": 0.055, - "build/src/libcd1.o": 0.075, - "build/src/libcd2.o": 0.058, - "build/src/libetc.o": 0.061, - "build/src/libgpu.o": 0.054, - "build/src/libgpu2.o": 0.072, - "build/src/libgs1.o": 0.074, - "build/src/libgs2.o": 0.06, - "build/src/libgs3.o": 0.065, - "build/src/libgs4.o": 0.072, - "build/src/libgs5.o": 0.063, - "build/src/libgs6.o": 0.071, - "build/src/libgs7.o": 0.063, - "build/src/libgs8.o": 0.064, - "build/src/libgte1.o": 0.067, - "build/src/libgte10.o": 0.056, - "build/src/libgte11.o": 0.062, - "build/src/libgte12.o": 0.063, - "build/src/libgte13.o": 0.063, - "build/src/libgte14.o": 0.062, - "build/src/libgte15.o": 0.059, - "build/src/libgte16.o": 0.065, - "build/src/libgte17.o": 0.05, - "build/src/libgte18.o": 0.063, - "build/src/libgte19.o": 0.059, - "build/src/libgte2.o": 0.062, - "build/src/libgte20.o": 0.063, - "build/src/libgte21.o": 0.064, - "build/src/libgte22.o": 0.059, - "build/src/libgte23.o": 0.055, - "build/src/libgte24.o": 0.054, - "build/src/libgte25.o": 0.074, - "build/src/libgte26.o": 0.061, - "build/src/libgte27.o": 0.064, - "build/src/libgte28.o": 0.056, - "build/src/libgte29.o": 0.068, - "build/src/libgte3.o": 0.062, - "build/src/libgte30.o": 0.067, - "build/src/libgte4.o": 0.058, - "build/src/libgte5.o": 0.064, - "build/src/libgte6.o": 0.06, - "build/src/libgte7.o": 0.067, - "build/src/libgte8.o": 0.068, - "build/src/libgte9.o": 0.056, - "build/src/libmcrd1.o": 0.089, - "build/src/libmcrd2.o": 0.061, - "build/src/libpad1.o": 0.063, - "build/src/libpad2.o": 0.067, - "build/src/sgap.o": 0.066, - "build/src/sgap_2.o": 0.067, - "build/src/sgap_3.o": 0.061, - "build/src/sgap_4.o": 0.062, - "build/src/sgap_5.o": 0.058, - "build/src/sgap_6.o": 0.077, - "build/src/sgap_8.o": 0.072, - "build/src/snd1.o": 0.069, - "build/src/snd10.o": 0.06, - "build/src/snd11.o": 0.061, - "build/src/snd12.o": 0.057, - "build/src/snd2.o": 0.063, - "build/src/snd3.o": 0.055, - "build/src/snd4.o": 0.064, - "build/src/snd5.o": 0.062, - "build/src/snd6.o": 0.061, - "build/src/snd7.o": 0.061, - "build/src/snd8.o": 0.057, - "build/src/snd9.o": 0.061, - "build/src/ov_SC03_014/ov_SC03_014.o": 0.128, - "build/src/ov_SC03_014/ov_SC03_014_after.o": 0.498, - "build/src/ov_SC03_014/ov_SC03_014_jr_8012ACE0.o": 0.385, - "build/src/ov_SC03_014/ov_SC03_014_jr_80135888.o": 0.056, - "build/src/ov_SC03_014/ov_SC03_014_jr_80135A4C.o": 0.062, - "build/src/ov_SC03_014/ov_SC03_014_jr_80135D20.o": 0.133, - "build/src/ov_SC03_014/ov_SC03_014_jr_801380E0.o": 0.147, - "build/src/ov_SC03_014/ov_SC03_014_jr_8013C98C.o": 0.121, - "build/src/ov_SC03_014/ov_SC03_014_jr_8013F350.o": 0.082, - "build/src/ov_SC03_014/ov_SC03_014_jr_8013FFD8.o": 0.069, - "build/src/ov_SC03_014/ov_SC03_014_jr_80140608.o": 0.183, - "build/src/ov_SC03_014/ov_SC03_014_jr_8015444C.o": 0.078, - "build/src/ov_SC03_014/ov_SC03_014_jr_80154C24.o": 0.163, - "build/src/ov_SC03_014/ov_SC03_014_jr_801588CC.o": 0.102, - "build/src/ov_SC03_014/ov_SC03_014_jr_80159C84.o": 0.072, - "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.087, - "build/src/ov_SC03_014/ov_SC03_014_jr_8015C32C.o": 0.473, - "build/src/ov_SC03_014/ov_SC03_014_jr_8016AB6C.o": 0.269, - "build/src/ov_SC03_014/ov_SC03_014_jr_80171B4C.o": 0.098, - "build/src/ov_SC03_014/ov_SC03_014_jr_801734BC.o": 0.183, - "build/src/ov_SC03_014/ov_SC03_014_jr_801789AC.o": 0.052, - "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.067, - "build/src/ov_SC03_014/ov_SC03_014_jr_8017AE2C.o": 0.161, - "build/src/ov_SC03_014/ov_SC03_014_jr_8017EB7C.o": 0.174, - "build/src/ov_SC03_014/ov_SC03_014_jr_80184440.o": 0.053, - "build/src/ov_SC03_014/ov_SC03_014_jr_801848E4.o": 0.282, - "build/src/ov_SC03_014/ov_SC03_014_o0b.o": 0.057, - "build/src/ov_SC03_014/ov_SC03_014_o0c.o": 0.061, - "build/src/ov_SC03_014/ov_SC03_014_o0d.o": 0.052, - "build/src/ov_SC03_014/ov_SC03_014_o0e.o": 0.066, - "build/src/ov_SC03_015/ov_SC03_015.o": 0.111, - "build/src/ov_SC03_015/ov_SC03_015_after.o": 0.499, - "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.054, - "build/src/ov_SC03_015/ov_SC03_015_jr_80135A4C.o": 0.048, - "build/src/ov_SC03_015/ov_SC03_015_jr_80135D20.o": 0.098, - "build/src/ov_SC03_015/ov_SC03_015_jr_801380E0.o": 0.151, - "build/src/ov_SC03_015/ov_SC03_015_jr_8013C98C.o": 0.108, - "build/src/ov_SC03_015/ov_SC03_015_jr_8013F350.o": 0.064, - "build/src/ov_SC03_015/ov_SC03_015_jr_8013FFD8.o": 0.061, - "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.068, - "build/src/ov_SC03_015/ov_SC03_015_jr_80154C24.o": 0.149, - "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.062, - "build/src/ov_SC03_015/ov_SC03_015_jr_8015A3C8.o": 0.075, - "build/src/ov_SC03_015/ov_SC03_015_jr_8015AE2C.o": 0.084, - "build/src/ov_SC03_015/ov_SC03_015_jr_8015C32C.o": 0.423, - "build/src/ov_SC03_015/ov_SC03_015_jr_8016AB6C.o": 0.252, - "build/src/ov_SC03_015/ov_SC03_015_jr_80171B4C.o": 0.096, - "build/src/ov_SC03_015/ov_SC03_015_jr_801734BC.o": 0.194, - "build/src/ov_SC03_015/ov_SC03_015_jr_801789AC.o": 0.058, - "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.062, - "build/src/ov_SC03_015/ov_SC03_015_jr_8017AE2C.o": 0.159, - "build/src/ov_SC03_015/ov_SC03_015_jr_8017EB7C.o": 0.207, - "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.271, - "build/src/ov_SC03_015/ov_SC03_015_o0b.o": 0.062, - "build/src/ov_SC03_015/ov_SC03_015_o0c.o": 0.06, - "build/src/ov_SC03_015/ov_SC03_015_o0d.o": 0.054, - "build/src/ov_SC03_015/ov_SC03_015_o0e.o": 0.068, - "build/src/ov_SC04_011/ov_SC04_011.o": 0.123, - "build/src/ov_SC04_011/ov_SC04_011_after.o": 0.421, - "build/src/ov_SC04_011/ov_SC04_011_jr_8012ACE0.o": 0.332, - "build/src/ov_SC04_011/ov_SC04_011_jr_80135888.o": 0.053, - "build/src/ov_SC04_011/ov_SC04_011_jr_80135A4C.o": 0.048, - "build/src/ov_SC04_011/ov_SC04_011_jr_80135D20.o": 0.106, - "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.104, - "build/src/ov_SC04_011/ov_SC04_011_jr_8013F350.o": 0.075, - "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.17, - "build/src/ov_SC04_011/ov_SC04_011_jr_8015444C.o": 0.068, - "build/src/ov_SC04_011/ov_SC04_011_jr_80154C24.o": 0.159, - "build/src/ov_SC04_011/ov_SC04_011_jr_801588CC.o": 0.093, - "build/src/ov_SC04_011/ov_SC04_011_jr_80159C84.o": 0.061, - "build/src/ov_SC04_011/ov_SC04_011_jr_8015A3C8.o": 0.07, - "build/src/ov_SC04_011/ov_SC04_011_jr_8015AE2C.o": 0.088, - "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.199, - "build/src/ov_SC04_011/ov_SC04_011_jr_80171B4C.o": 0.095, - "build/src/ov_SC04_011/ov_SC04_011_jr_801734BC.o": 0.17, - "build/src/ov_SC04_011/ov_SC04_011_jr_801789AC.o": 0.061, - "build/src/ov_SC04_011/ov_SC04_011_jr_80178D40.o": 0.087, - "build/src/ov_SC04_011/ov_SC04_011_jr_8017A4AC.o": 0.07, - "build/src/ov_SC04_011/ov_SC04_011_jr_8017AE2C.o": 0.099, - "build/src/ov_SC04_011/ov_SC04_011_jr_8017D494.o": 0.413, - "build/src/ov_SC04_011/ov_SC04_011_o0b.o": 0.047, - "build/src/ov_SC04_011/ov_SC04_011_o0c.o": 0.051 + "build/src/800.o": 0.811, + "build/src/800_b.o": 0.091, + "build/src/800_b_2.o": 0.332, + "build/src/800_b_o0a.o": 0.103, + "build/src/800_c.o": 0.21, + "build/src/800b2.o": 0.083, + "build/src/apicard1.o": 0.07, + "build/src/apicard2.o": 0.076, + "build/src/apicard3.o": 0.09, + "build/src/apicard4.o": 0.073, + "build/src/apicard5.o": 0.072, + "build/src/apicard6.o": 0.099, + "build/src/apicard7.o": 0.086, + "build/src/boot.o": 0.124, + "build/src/gap.o": 0.079, + "build/src/libapi1.o": 0.082, + "build/src/libapi2.o": 0.063, + "build/src/libc2_1.o": 0.079, + "build/src/libc2_2.o": 0.069, + "build/src/libcd1.o": 0.112, + "build/src/libcd2.o": 0.066, + "build/src/libetc.o": 0.081, + "build/src/libgpu.o": 0.095, + "build/src/libgpu2.o": 0.103, + "build/src/libgs1.o": 0.08, + "build/src/libgs2.o": 0.071, + "build/src/libgs3.o": 0.07, + "build/src/libgs4.o": 0.078, + "build/src/libgs5.o": 0.101, + "build/src/libgs6.o": 0.083, + "build/src/libgs7.o": 0.066, + "build/src/libgs8.o": 0.067, + "build/src/libgte1.o": 0.07, + "build/src/libgte10.o": 0.087, + "build/src/libgte11.o": 0.075, + "build/src/libgte12.o": 0.096, + "build/src/libgte13.o": 0.067, + "build/src/libgte14.o": 0.095, + "build/src/libgte15.o": 0.072, + "build/src/libgte16.o": 0.068, + "build/src/libgte17.o": 0.072, + "build/src/libgte18.o": 0.073, + "build/src/libgte19.o": 0.063, + "build/src/libgte2.o": 0.097, + "build/src/libgte20.o": 0.081, + "build/src/libgte21.o": 0.068, + "build/src/libgte22.o": 0.061, + "build/src/libgte23.o": 0.088, + "build/src/libgte24.o": 0.067, + "build/src/libgte25.o": 0.062, + "build/src/libgte26.o": 0.067, + "build/src/libgte27.o": 0.066, + "build/src/libgte28.o": 0.083, + "build/src/libgte29.o": 0.072, + "build/src/libgte3.o": 0.068, + "build/src/libgte30.o": 0.069, + "build/src/libgte4.o": 0.076, + "build/src/libgte5.o": 0.071, + "build/src/libgte6.o": 0.112, + "build/src/libgte7.o": 0.12, + "build/src/libgte8.o": 0.083, + "build/src/libgte9.o": 0.069, + "build/src/libmcrd1.o": 0.073, + "build/src/libmcrd2.o": 0.062, + "build/src/libpad1.o": 0.078, + "build/src/libpad2.o": 0.085, + "build/src/sgap.o": 0.078, + "build/src/sgap_2.o": 0.074, + "build/src/sgap_3.o": 0.068, + "build/src/sgap_4.o": 0.094, + "build/src/sgap_5.o": 0.066, + "build/src/sgap_6.o": 0.08, + "build/src/sgap_8.o": 0.077, + "build/src/snd1.o": 0.081, + "build/src/snd10.o": 0.07, + "build/src/snd11.o": 0.094, + "build/src/snd12.o": 0.078, + "build/src/snd2.o": 0.077, + "build/src/snd3.o": 0.085, + "build/src/snd4.o": 0.068, + "build/src/snd5.o": 0.106, + "build/src/snd6.o": 0.091, + "build/src/snd7.o": 0.081, + "build/src/snd8.o": 0.071, + "build/src/snd9.o": 0.113, + "build/src/ov_SC03_014/ov_SC03_014.o": 0.133, + "build/src/ov_SC03_014/ov_SC03_014_after.o": 0.563, + "build/src/ov_SC03_014/ov_SC03_014_jr_8012ACE0.o": 0.438, + "build/src/ov_SC03_014/ov_SC03_014_jr_80135888.o": 0.066, + "build/src/ov_SC03_014/ov_SC03_014_jr_80135A4C.o": 0.063, + "build/src/ov_SC03_014/ov_SC03_014_jr_80135D20.o": 0.157, + "build/src/ov_SC03_014/ov_SC03_014_jr_801380E0.o": 0.205, + "build/src/ov_SC03_014/ov_SC03_014_jr_8013C98C.o": 0.119, + "build/src/ov_SC03_014/ov_SC03_014_jr_8013F350.o": 0.11, + "build/src/ov_SC03_014/ov_SC03_014_jr_8013FFD8.o": 0.095, + "build/src/ov_SC03_014/ov_SC03_014_jr_80140608.o": 0.199, + "build/src/ov_SC03_014/ov_SC03_014_jr_8015444C.o": 0.103, + "build/src/ov_SC03_014/ov_SC03_014_jr_80154C24.o": 0.189, + "build/src/ov_SC03_014/ov_SC03_014_jr_801588CC.o": 0.114, + "build/src/ov_SC03_014/ov_SC03_014_jr_80159C84.o": 0.086, + "build/src/ov_SC03_014/ov_SC03_014_jr_8015A3C8.o": 0.082, + "build/src/ov_SC03_014/ov_SC03_014_jr_8015AE2C.o": 0.105, + "build/src/ov_SC03_014/ov_SC03_014_jr_8015C32C.o": 0.518, + "build/src/ov_SC03_014/ov_SC03_014_jr_8016AB6C.o": 0.288, + "build/src/ov_SC03_014/ov_SC03_014_jr_80171B4C.o": 0.112, + "build/src/ov_SC03_014/ov_SC03_014_jr_801734BC.o": 0.222, + "build/src/ov_SC03_014/ov_SC03_014_jr_801789AC.o": 0.071, + "build/src/ov_SC03_014/ov_SC03_014_jr_80178D40.o": 0.11, + "build/src/ov_SC03_014/ov_SC03_014_jr_8017A4AC.o": 0.077, + "build/src/ov_SC03_014/ov_SC03_014_jr_8017AE2C.o": 0.185, + "build/src/ov_SC03_014/ov_SC03_014_jr_8017EB7C.o": 0.222, + "build/src/ov_SC03_014/ov_SC03_014_jr_80184440.o": 0.066, + "build/src/ov_SC03_014/ov_SC03_014_jr_801848E4.o": 0.308, + "build/src/ov_SC03_014/ov_SC03_014_o0b.o": 0.058, + "build/src/ov_SC03_014/ov_SC03_014_o0c.o": 0.069, + "build/src/ov_SC03_014/ov_SC03_014_o0d.o": 0.066, + "build/src/ov_SC03_014/ov_SC03_014_o0e.o": 0.077, + "build/src/ov_SC03_015/ov_SC03_015.o": 0.141, + "build/src/ov_SC03_015/ov_SC03_015_after.o": 0.547, + "build/src/ov_SC03_015/ov_SC03_015_jr_8012ACE0.o": 0.43, + "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.055, + "build/src/ov_SC03_015/ov_SC03_015_jr_80135D20.o": 0.131, + "build/src/ov_SC03_015/ov_SC03_015_jr_801380E0.o": 0.167, + "build/src/ov_SC03_015/ov_SC03_015_jr_8013C98C.o": 0.133, + "build/src/ov_SC03_015/ov_SC03_015_jr_8013F350.o": 0.075, + "build/src/ov_SC03_015/ov_SC03_015_jr_8013FFD8.o": 0.062, + "build/src/ov_SC03_015/ov_SC03_015_jr_80140608.o": 0.189, + "build/src/ov_SC03_015/ov_SC03_015_jr_8015444C.o": 0.089, + "build/src/ov_SC03_015/ov_SC03_015_jr_80154C24.o": 0.195, + "build/src/ov_SC03_015/ov_SC03_015_jr_801588CC.o": 0.095, + "build/src/ov_SC03_015/ov_SC03_015_jr_80159C84.o": 0.073, + "build/src/ov_SC03_015/ov_SC03_015_jr_8015A3C8.o": 0.081, + "build/src/ov_SC03_015/ov_SC03_015_jr_8015AE2C.o": 0.105, + "build/src/ov_SC03_015/ov_SC03_015_jr_8015C32C.o": 0.522, + "build/src/ov_SC03_015/ov_SC03_015_jr_8016AB6C.o": 0.304, + "build/src/ov_SC03_015/ov_SC03_015_jr_80171B4C.o": 0.112, + "build/src/ov_SC03_015/ov_SC03_015_jr_801734BC.o": 0.219, + "build/src/ov_SC03_015/ov_SC03_015_jr_801789AC.o": 0.065, + "build/src/ov_SC03_015/ov_SC03_015_jr_80178D40.o": 0.115, + "build/src/ov_SC03_015/ov_SC03_015_jr_8017A4AC.o": 0.071, + "build/src/ov_SC03_015/ov_SC03_015_jr_8017AE2C.o": 0.184, + "build/src/ov_SC03_015/ov_SC03_015_jr_8017EB7C.o": 0.246, + "build/src/ov_SC03_015/ov_SC03_015_jr_80184440.o": 0.059, + "build/src/ov_SC03_015/ov_SC03_015_jr_801848E4.o": 0.301, + "build/src/ov_SC03_015/ov_SC03_015_o0b.o": 0.067, + "build/src/ov_SC03_015/ov_SC03_015_o0c.o": 0.078, + "build/src/ov_SC03_015/ov_SC03_015_o0d.o": 0.066, + "build/src/ov_SC03_015/ov_SC03_015_o0e.o": 0.08, + "build/src/ov_SC04_011/ov_SC04_011.o": 0.135, + "build/src/ov_SC04_011/ov_SC04_011_after.o": 0.457, + "build/src/ov_SC04_011/ov_SC04_011_jr_8012ACE0.o": 0.389, + "build/src/ov_SC04_011/ov_SC04_011_jr_80135888.o": 0.061, + "build/src/ov_SC04_011/ov_SC04_011_jr_80135A4C.o": 0.06, + "build/src/ov_SC04_011/ov_SC04_011_jr_80135D20.o": 0.122, + "build/src/ov_SC04_011/ov_SC04_011_jr_801380E0.o": 0.164, + "build/src/ov_SC04_011/ov_SC04_011_jr_8013C98C.o": 0.121, + "build/src/ov_SC04_011/ov_SC04_011_jr_8013F350.o": 0.08, + "build/src/ov_SC04_011/ov_SC04_011_jr_8013FFD8.o": 0.069, + "build/src/ov_SC04_011/ov_SC04_011_jr_80140608.o": 0.19, + "build/src/ov_SC04_011/ov_SC04_011_jr_8015444C.o": 0.089, + "build/src/ov_SC04_011/ov_SC04_011_jr_80154C24.o": 0.174, + "build/src/ov_SC04_011/ov_SC04_011_jr_801588CC.o": 0.097, + "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.087, + "build/src/ov_SC04_011/ov_SC04_011_jr_8015AE2C.o": 0.106, + "build/src/ov_SC04_011/ov_SC04_011_jr_8015C32C.o": 0.372, + "build/src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.o": 0.23, + "build/src/ov_SC04_011/ov_SC04_011_jr_80171B4C.o": 0.11, + "build/src/ov_SC04_011/ov_SC04_011_jr_801734BC.o": 0.189, + "build/src/ov_SC04_011/ov_SC04_011_jr_801789AC.o": 0.07, + "build/src/ov_SC04_011/ov_SC04_011_jr_80178D40.o": 0.111, + "build/src/ov_SC04_011/ov_SC04_011_jr_8017A4AC.o": 0.075, + "build/src/ov_SC04_011/ov_SC04_011_jr_8017AE2C.o": 0.113, + "build/src/ov_SC04_011/ov_SC04_011_jr_8017D494.o": 0.498, + "build/src/ov_SC04_011/ov_SC04_011_o0b.o": 0.062, + "build/src/ov_SC04_011/ov_SC04_011_o0c.o": 0.067 }, "ok": true, - "seconds": 2.2 + "seconds": 2.5 } diff --git a/.run/P36/delever/ledger.jsonl b/.run/P36/delever/ledger.jsonl index 946e94c10..a3685b95a 100644 --- a/.run/P36/delever/ledger.jsonl +++ b/.run/P36/delever/ledger.jsonl @@ -29405,3 +29405,4 @@ {"ts": "2026-09-11 01:54:48", "label": "s104_e5", "rung": "E", "calib": {"head": "a1a0a80e2", "stamp": "15956e4a96c4"}, "tu": "src/ov_SC06_018/ov_SC06_018_jr_80187AEC.c", "fn": "func_8018AD74", "addr": 2149100916, "aliases": null, "header": false, "includers": 0, "nhash_before": "5cf426b9638201838f4f6f8c83154714c1922fde", "nhash_after": "8d4a5656fffc75dcc5fa2d3c72854b7c88197dae", "source": ".run/P36/agents/ov_SC06_018__func_8018AD74/body.c", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.189, "objects": ["build/src/ov_SC06_018/ov_SC06_018_jr_80187AEC.o"], "before_text": "void func_8018AD74(s32 p1, s32 p2, s32 p3, s32 p4)\n{\n /* [T51] block-scoped decls (house idiom in this TU, cf. func_8018AF88): a file-scope\n decl of these symbols would constrain every LATER function in the object. */\n extern Blk20_8018AF88 D_800AE620;\n extern s32 func_8012C658(s32, s32, s32);\n extern void RotMatrixY(s32 a0, void *a1);\n extern void func_800484EC(s32, s32, s32);\n extern u8 D_801CD468[];\n\n Blk20_8018AF88 local_30; /* sp+0x10 */\n Blk20_8018AF88 *m;\n s32 obj;\n s32 out[3]; /* sp+0x30, only [0] and [2] used */\n\n local_30 = D_800AE620;\n obj = func_8012C658((s16)p2, (s16)p3, p1);\n if (obj != 0) {\n __asm__(\"\" : \"=r\"(obj) : \"0\"(obj)); /* \u00a7350 birthing-boost kill; 0 bytes */ // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus9)\n m = &local_30;\n *(u16 *)(obj + 0xA) = *(u16 *)(obj + 0xA) - 0x80;\n RotMatrixY((s16)p4, m);\n func_800484EC((s32)m, (s32)&D_801CD468, (s32)out);\n *(s32 *)(obj + 0x10) = out[0];\n *(s32 *)(obj + 0x14) = 0xFFD80000;\n *(s32 *)(obj + 0x18) = out[2];\n }\n}\n", "after_text": "void func_8018AD74(s32 p1, s32 p2, s32 p3, s32 p4)\n{\n /* [T51] block-scoped decls (house idiom in this TU, cf. func_8018AF88): a file-scope\n decl of these symbols would constrain every LATER function in the object. */\n extern Blk20_8018AF88 D_800AE620;\n extern s32 func_8012C658(s32, s32, s32);\n extern void RotMatrixY(s32 a0, void *a1);\n extern void func_800484EC(s32, s32, s32);\n extern u8 D_801CD468[];\n\n Blk20_8018AF88 local_30; /* sp+0x10 */\n Blk20_8018AF88 *m;\n s32 obj;\n s32 out[3]; /* sp+0x30, only [0] and [2] used */\n\n local_30 = D_800AE620;\n obj = func_8012C658((s16)p2, (s16)p3, p1);\n do { } while (0); // !FAKE: do-while \u2014 its NOTE_INSN_LOOP_END ends cse1's extended block (cse.c:8054), so m below is not folded onto the struct copy's address pseudo (cse.c:846-862) and is set AFTER obj's copy: sched1 then ranks it last by LUID (sched.c:2428) (P36 S104 e5 minimum-lever)\n m = &local_30;\n if (obj != 0) {\n *(u16 *)(obj + 0xA) = *(u16 *)(obj + 0xA) - 0x80;\n RotMatrixY((s16)p4, m);\n func_800484EC((s32)m, (s32)&D_801CD468, (s32)out);\n *(s32 *)(obj + 0x10) = out[0];\n *(s32 *)(obj + 0x14) = 0xFFD80000;\n *(s32 *)(obj + 0x18) = out[2];\n }\n}\n"} {"ts": "2026-09-11 01:55:05", "label": "s104_e5", "rung": "E", "calib": {"head": "72d805da3", "stamp": "15956e4a96c4"}, "tu": "src/ov_SC06_018/ov_SC06_018_jr_80187AEC.c", "fn": "func_80187DD0", "addr": 2149088720, "aliases": null, "header": false, "includers": 0, "nhash_before": "8492e29ebd9132beb5d36d3fa05665d14f5ad0eb", "nhash_after": "5d926dd4f495cadf503bfe0ce98319c9c00ecf5b", "source": ".run/P36/agents/ov_SC06_018__func_80187DD0/body.c", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.187, "objects": ["build/src/ov_SC06_018/ov_SC06_018_jr_80187AEC.o"], "before_text": "void func_80187DD0(s32 param_1)\n{\n s32 t1 = *(s32 *)(param_1 + 0x64);\n s32 pad[2];\n\n if (*(s16 *)(t1 + 0x36) != *(s16 *)(param_1 + 0x10A)) {\n func_8012C218((void *)param_1);\n return;\n }\n {\n if ((*(u32 *)(t1 + 0xE0) & 4) != 0) {\n func_8012E8A8((u8 *)param_1);\n return;\n }\n {\n s32 a2 = *(s32 *)(*(s32 *)(t1 + 0x20) + 0x20);\n s32 a3 = param_1 + 0xFC;\n\n if (a2 != 0) {\n if ((a2 & 0x1000000) != 0) {\n s32 a1 = a2 & 0xFEFFFFFF;\n register u32 v0 __asm__(\"$2\"); // !FAKE: pin $2 \u2014 NEEDED DIFFERS (P36 rung B tus9)\n u32 a0;\n u32 v1a;\n u32 v1b;\n u32 v0b;\n u32 v1;\n\n *(u16 *)(param_1 + 0x102) = *(u16 *)(a1 + 0x66);\n\n v0 = *(u32 *)(a1 + 0x60);\n a0 = *(u8 *)(a1 + 0x61);\n v1a = (v0 & 0xF) << 8;\n a0 = a0 | v1a;\n v1b = ((s32)v0 >> 16) & 0xFF;\n v0b = (v0 & 0xF0) << 4;\n v1 = v1b | v0b;\n *(u16 *)(param_1 + 0x104) = (u16)a0;\n *(u16 *)(param_1 + 0x106) = (u16)v1;\n\n *(s16 *)(param_1 + 0xFC) = (s8)*(u8 *)(a1 + 0x63);\n *(s16 *)(param_1 + 0xFE) = (s8)*(u8 *)(a1 + 0x64);\n *(s16 *)(param_1 + 0x100) = (s8)*(u8 *)(a1 + 0x65);\n } else {\n *(UAlign12 *)(param_1 + 0xFC) = *(UAlign12 *)(a2 + 0x90);\n }\n *(s32 *)(*(s32 *)(param_1 + 0x20) + 0x20) = a3;\n }\n\n if ((*(u32 *)(t1 + 0xE0) & 0x80) != 0) {\n if (*(u16 *)(param_1 + 0x34) == 0) {\n s16 sVar2 = *(u16 *)(param_1 + 0x108) + 0x40;\n *(s16 *)(param_1 + 0x108) = sVar2;\n if (sVar2 > 0x200) {\n *(u16 *)(param_1 + 0x108) = 0x200;\n *(s16 *)(param_1 + 0x34) = *(s16 *)(param_1 + 0x34) + 1;\n }\n } else {\n u16 uVar3 = *(u16 *)(param_1 + 0x108) - 0x80;\n *(u16 *)(param_1 + 0x108) = uVar3;\n if ((s16)uVar3 < 0) {\n *(u16 *)(param_1 + 0x108) = 0;\n *(u16 *)(param_1 + 0x34) = 0;\n *(u32 *)(t1 + 0xE0) = *(u32 *)(t1 + 0xE0) & ~0x80;\n }\n }\n }\n\n *(u16 *)(a3 + 6) = *(u16 *)(a3 + 6) + *(u16 *)(param_1 + 0x108);\n\n *(u32 *)(param_1 + 4) = *(u32 *)(t1 + 4);\n *(u32 *)(param_1 + 8) = *(u32 *)(t1 + 8);\n *(u32 *)(param_1 + 0xC) = *(u32 *)(t1 + 0xC);\n\n *(UAlign8 *)(param_1 + 0x50) = *(UAlign8 *)(t1 + 0x50);\n\n {\n s32 dst = *(s32 *)(param_1 + 0x20);\n s32 src = *(s32 *)(t1 + 0x20);\n *(UAlign8 *)(dst + 0x10) = *(UAlign8 *)(src + 0x10);\n }\n {\n s32 dst = *(s32 *)(param_1 + 0x20);\n s32 src = *(s32 *)(t1 + 0x20);\n *(UAlign8 *)(dst + 0x18) = *(UAlign8 *)(src + 0x18);\n }\n {\n s32 src = *(s32 *)(t1 + 0x20);\n s32 dst = *(s32 *)(param_1 + 0x20);\n *(u32 *)(dst + 4) = *(u32 *)(src + 4);\n }\n {\n s32 src = *(s32 *)(t1 + 0x20);\n s32 dst = *(s32 *)(param_1 + 0x20);\n *(u16 *)(dst + 0x2C) = *(u16 *)(src + 0x2C);\n }\n }\n }\n}\n", "after_text": "void func_80187DD0(s32 param_1)\n{\n s32 t1 = *(s32 *)(param_1 + 0x64);\n s32 pad[2];\n\n if (*(s16 *)(t1 + 0x36) != *(s16 *)(param_1 + 0x10A)) {\n func_8012C218((void *)param_1);\n return;\n }\n {\n if ((*(u32 *)(t1 + 0xE0) & 4) != 0) {\n func_8012E8A8((u8 *)param_1);\n return;\n }\n {\n s32 a2 = *(s32 *)(*(s32 *)(t1 + 0x20) + 0x20);\n s32 a3 = param_1 + 0xFC;\n\n if (a2 != 0) {\n if ((a2 & 0x1000000) != 0) {\n s32 a1 = a2 & 0xFEFFFFFF;\n u32 v0;\n u32 a0;\n u32 v1;\n\n *(u16 *)(param_1 + 0x102) = *(u16 *)(a1 + 0x66);\n\n v0 = *(u32 *)(a1 + 0x60);\n a0 = *(u8 *)(a1 + 0x61) | ((v0 & 0xF) << 8);\n v1 = (((s32)v0 >> 16) & 0xFF) | ((v0 & 0xF0) << 4);\n do { // !FAKE: do-while \u2014 flow counts the stores' refs at loop depth 2 (flow.c:1440-1449, :2711 reg_n_refs += loop_depth), which lifts a0's quantity over a1's in qty_compare_1 (local-alloc.c:1598); its LOOP notes also keep sched1 from moving the 0x104 store above v1's or (sched.c:2053-2074), so w's quantity ties the (w & 0xF) one at 13333 and wins on qty number (P36 S104 e5 minimum-lever)\n *(u16 *)(param_1 + 0x104) = a0;\n *(u16 *)(param_1 + 0x106) = v1;\n } while (0);\n\n *(s16 *)(param_1 + 0xFC) = (s8)*(u8 *)(a1 + 0x63);\n *(s16 *)(param_1 + 0xFE) = (s8)*(u8 *)(a1 + 0x64);\n *(s16 *)(param_1 + 0x100) = (s8)*(u8 *)(a1 + 0x65);\n } else {\n *(UAlign12 *)(param_1 + 0xFC) = *(UAlign12 *)(a2 + 0x90);\n }\n *(s32 *)(*(s32 *)(param_1 + 0x20) + 0x20) = a3;\n }\n\n if ((*(u32 *)(t1 + 0xE0) & 0x80) != 0) {\n if (*(u16 *)(param_1 + 0x34) == 0) {\n s16 sVar2 = *(u16 *)(param_1 + 0x108) + 0x40;\n *(s16 *)(param_1 + 0x108) = sVar2;\n if (sVar2 > 0x200) {\n *(u16 *)(param_1 + 0x108) = 0x200;\n *(s16 *)(param_1 + 0x34) = *(s16 *)(param_1 + 0x34) + 1;\n }\n } else {\n u16 uVar3 = *(u16 *)(param_1 + 0x108) - 0x80;\n *(u16 *)(param_1 + 0x108) = uVar3;\n if ((s16)uVar3 < 0) {\n *(u16 *)(param_1 + 0x108) = 0;\n *(u16 *)(param_1 + 0x34) = 0;\n *(u32 *)(t1 + 0xE0) = *(u32 *)(t1 + 0xE0) & ~0x80;\n }\n }\n }\n\n *(u16 *)(a3 + 6) = *(u16 *)(a3 + 6) + *(u16 *)(param_1 + 0x108);\n\n *(u32 *)(param_1 + 4) = *(u32 *)(t1 + 4);\n *(u32 *)(param_1 + 8) = *(u32 *)(t1 + 8);\n *(u32 *)(param_1 + 0xC) = *(u32 *)(t1 + 0xC);\n\n *(UAlign8 *)(param_1 + 0x50) = *(UAlign8 *)(t1 + 0x50);\n\n {\n s32 dst = *(s32 *)(param_1 + 0x20);\n s32 src = *(s32 *)(t1 + 0x20);\n *(UAlign8 *)(dst + 0x10) = *(UAlign8 *)(src + 0x10);\n }\n {\n s32 dst = *(s32 *)(param_1 + 0x20);\n s32 src = *(s32 *)(t1 + 0x20);\n *(UAlign8 *)(dst + 0x18) = *(UAlign8 *)(src + 0x18);\n }\n {\n s32 src = *(s32 *)(t1 + 0x20);\n s32 dst = *(s32 *)(param_1 + 0x20);\n *(u32 *)(dst + 4) = *(u32 *)(src + 4);\n }\n {\n s32 src = *(s32 *)(t1 + 0x20);\n s32 dst = *(s32 *)(param_1 + 0x20);\n *(u16 *)(dst + 0x2C) = *(u16 *)(src + 0x2C);\n }\n }\n }\n}\n"} {"ts": "2026-09-11 01:55:24", "label": "s104_e5", "rung": "E", "calib": {"head": "30a9a2095", "stamp": "15956e4a96c4"}, "tu": "src/ov_SC06_022/ov_SC06_022_jr_80184A28.c", "fn": "func_80185E64", "addr": 2149080676, "aliases": null, "header": false, "includers": 0, "nhash_before": "8ad8ac49097346b63bde5dd3987ba9fba8201f9c", "nhash_after": "bb86f4fc30f21fbc358315dae8e2118a7085c1aa", "source": ".run/P36/agents/ov_SC06_018__func_80187DD0/scratch/copy_func_80185E64.c", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.215, "objects": ["build/src/ov_SC06_022/ov_SC06_022_jr_80184A28.o"], "before_text": "void func_80185E64(s32 param_1)\n{\n s32 t1 = *(s32 *)(param_1 + 0x64);\n s32 pad[2];\n\n if (*(s16 *)(t1 + 0x36) != *(s16 *)(param_1 + 0x10A)) {\n func_8012C218((void *)param_1);\n return;\n }\n {\n if ((*(u32 *)(t1 + 0xE0) & 4) != 0) {\n func_8012E8A8((u8 *)param_1);\n return;\n }\n {\n s32 a2 = *(s32 *)(*(s32 *)(t1 + 0x20) + 0x20);\n s32 a3 = param_1 + 0xFC;\n\n if (a2 != 0) {\n if ((a2 & 0x1000000) != 0) {\n s32 a1 = a2 & 0xFEFFFFFF;\n register u32 v0 __asm__(\"$2\"); // !FAKE: pin $2 \u2014 NEEDED DIFFERS (P36 rung B tus9)\n u32 a0;\n u32 v1a;\n u32 v1b;\n u32 v0b;\n u32 v1;\n\n *(u16 *)(param_1 + 0x102) = *(u16 *)(a1 + 0x66);\n\n v0 = *(u32 *)(a1 + 0x60);\n a0 = *(u8 *)(a1 + 0x61);\n v1a = (v0 & 0xF) << 8;\n a0 = a0 | v1a;\n v1b = ((s32)v0 >> 16) & 0xFF;\n v0b = (v0 & 0xF0) << 4;\n v1 = v1b | v0b;\n *(u16 *)(param_1 + 0x104) = (u16)a0;\n *(u16 *)(param_1 + 0x106) = (u16)v1;\n\n *(s16 *)(param_1 + 0xFC) = (s8)*(u8 *)(a1 + 0x63);\n *(s16 *)(param_1 + 0xFE) = (s8)*(u8 *)(a1 + 0x64);\n *(s16 *)(param_1 + 0x100) = (s8)*(u8 *)(a1 + 0x65);\n } else {\n *(UAlign12_80185E64 *)(param_1 + 0xFC) = *(UAlign12_80185E64 *)(a2 + 0x90);\n }\n *(s32 *)(*(s32 *)(param_1 + 0x20) + 0x20) = a3;\n }\n\n if ((*(u32 *)(t1 + 0xE0) & 0x80) != 0) {\n if (*(u16 *)(param_1 + 0x34) == 0) {\n s16 sVar2 = *(u16 *)(param_1 + 0x108) + 0x40;\n *(s16 *)(param_1 + 0x108) = sVar2;\n if (sVar2 > 0x200) {\n *(u16 *)(param_1 + 0x108) = 0x200;\n *(s16 *)(param_1 + 0x34) = *(s16 *)(param_1 + 0x34) + 1;\n }\n } else {\n u16 uVar3 = *(u16 *)(param_1 + 0x108) - 0x80;\n *(u16 *)(param_1 + 0x108) = uVar3;\n if ((s16)uVar3 < 0) {\n *(u16 *)(param_1 + 0x108) = 0;\n *(u16 *)(param_1 + 0x34) = 0;\n *(u32 *)(t1 + 0xE0) = *(u32 *)(t1 + 0xE0) & ~0x80;\n }\n }\n }\n\n *(u16 *)(a3 + 6) = *(u16 *)(a3 + 6) + *(u16 *)(param_1 + 0x108);\n\n *(u32 *)(param_1 + 4) = *(u32 *)(t1 + 4);\n *(u32 *)(param_1 + 8) = *(u32 *)(t1 + 8);\n *(u32 *)(param_1 + 0xC) = *(u32 *)(t1 + 0xC);\n\n *(UAlign8_80185E64 *)(param_1 + 0x50) = *(UAlign8_80185E64 *)(t1 + 0x50);\n\n {\n s32 dst = *(s32 *)(param_1 + 0x20);\n s32 src = *(s32 *)(t1 + 0x20);\n *(UAlign8_80185E64 *)(dst + 0x10) = *(UAlign8_80185E64 *)(src + 0x10);\n }\n {\n s32 dst = *(s32 *)(param_1 + 0x20);\n s32 src = *(s32 *)(t1 + 0x20);\n *(UAlign8_80185E64 *)(dst + 0x18) = *(UAlign8_80185E64 *)(src + 0x18);\n }\n {\n s32 src = *(s32 *)(t1 + 0x20);\n s32 dst = *(s32 *)(param_1 + 0x20);\n *(u32 *)(dst + 4) = *(u32 *)(src + 4);\n }\n {\n s32 src = *(s32 *)(t1 + 0x20);\n s32 dst = *(s32 *)(param_1 + 0x20);\n *(u16 *)(dst + 0x2C) = *(u16 *)(src + 0x2C);\n }\n }\n }\n}\n", "after_text": "void func_80185E64(s32 param_1)\n{\n s32 t1 = *(s32 *)(param_1 + 0x64);\n s32 pad[2];\n\n if (*(s16 *)(t1 + 0x36) != *(s16 *)(param_1 + 0x10A)) {\n func_8012C218((void *)param_1);\n return;\n }\n {\n if ((*(u32 *)(t1 + 0xE0) & 4) != 0) {\n func_8012E8A8((u8 *)param_1);\n return;\n }\n {\n s32 a2 = *(s32 *)(*(s32 *)(t1 + 0x20) + 0x20);\n s32 a3 = param_1 + 0xFC;\n\n if (a2 != 0) {\n if ((a2 & 0x1000000) != 0) {\n s32 a1 = a2 & 0xFEFFFFFF;\n u32 v0;\n u32 a0;\n u32 v1;\n\n *(u16 *)(param_1 + 0x102) = *(u16 *)(a1 + 0x66);\n\n v0 = *(u32 *)(a1 + 0x60);\n a0 = *(u8 *)(a1 + 0x61) | ((v0 & 0xF) << 8);\n v1 = (((s32)v0 >> 16) & 0xFF) | ((v0 & 0xF0) << 4);\n do { // !FAKE: do-while \u2014 flow counts the stores' refs at loop depth 2 (flow.c mark_used_regs, reg_n_refs += loop_depth), which lifts a0's quantity over a1's in qty_compare_1 (local-alloc.c:1598); its LOOP notes also keep sched1 from moving the 0x104 store above v1's or (sched.c:2053-2074), so w's quantity ties the (w & 0xF) one at 13333 and wins on qty number (P36 S104 e5 minimum-lever)\n *(u16 *)(param_1 + 0x104) = a0;\n *(u16 *)(param_1 + 0x106) = v1;\n } while (0);\n\n *(s16 *)(param_1 + 0xFC) = (s8)*(u8 *)(a1 + 0x63);\n *(s16 *)(param_1 + 0xFE) = (s8)*(u8 *)(a1 + 0x64);\n *(s16 *)(param_1 + 0x100) = (s8)*(u8 *)(a1 + 0x65);\n } else {\n *(UAlign12_80185E64 *)(param_1 + 0xFC) = *(UAlign12_80185E64 *)(a2 + 0x90);\n }\n *(s32 *)(*(s32 *)(param_1 + 0x20) + 0x20) = a3;\n }\n\n if ((*(u32 *)(t1 + 0xE0) & 0x80) != 0) {\n if (*(u16 *)(param_1 + 0x34) == 0) {\n s16 sVar2 = *(u16 *)(param_1 + 0x108) + 0x40;\n *(s16 *)(param_1 + 0x108) = sVar2;\n if (sVar2 > 0x200) {\n *(u16 *)(param_1 + 0x108) = 0x200;\n *(s16 *)(param_1 + 0x34) = *(s16 *)(param_1 + 0x34) + 1;\n }\n } else {\n u16 uVar3 = *(u16 *)(param_1 + 0x108) - 0x80;\n *(u16 *)(param_1 + 0x108) = uVar3;\n if ((s16)uVar3 < 0) {\n *(u16 *)(param_1 + 0x108) = 0;\n *(u16 *)(param_1 + 0x34) = 0;\n *(u32 *)(t1 + 0xE0) = *(u32 *)(t1 + 0xE0) & ~0x80;\n }\n }\n }\n\n *(u16 *)(a3 + 6) = *(u16 *)(a3 + 6) + *(u16 *)(param_1 + 0x108);\n\n *(u32 *)(param_1 + 4) = *(u32 *)(t1 + 4);\n *(u32 *)(param_1 + 8) = *(u32 *)(t1 + 8);\n *(u32 *)(param_1 + 0xC) = *(u32 *)(t1 + 0xC);\n\n *(UAlign8_80185E64 *)(param_1 + 0x50) = *(UAlign8_80185E64 *)(t1 + 0x50);\n\n {\n s32 dst = *(s32 *)(param_1 + 0x20);\n s32 src = *(s32 *)(t1 + 0x20);\n *(UAlign8_80185E64 *)(dst + 0x10) = *(UAlign8_80185E64 *)(src + 0x10);\n }\n {\n s32 dst = *(s32 *)(param_1 + 0x20);\n s32 src = *(s32 *)(t1 + 0x20);\n *(UAlign8_80185E64 *)(dst + 0x18) = *(UAlign8_80185E64 *)(src + 0x18);\n }\n {\n s32 src = *(s32 *)(t1 + 0x20);\n s32 dst = *(s32 *)(param_1 + 0x20);\n *(u32 *)(dst + 4) = *(u32 *)(src + 4);\n }\n {\n s32 src = *(s32 *)(t1 + 0x20);\n s32 dst = *(s32 *)(param_1 + 0x20);\n *(u16 *)(dst + 0x2C) = *(u16 *)(src + 0x2C);\n }\n }\n }\n}\n"} +{"ts": "2026-09-11 01:55:42", "label": "s104_e5", "rung": "E", "calib": {"head": "2561d27b3", "stamp": "15956e4a96c4"}, "tu": "src/ov_SC06_033/ov_SC06_033_jr_80186574.c", "fn": "func_80186858", "addr": 2149083224, "aliases": null, "header": false, "includers": 0, "nhash_before": "37590b3a969a6abc99c7adb92772054247f898f3", "nhash_after": "f51377e75a8a90981abd169c15cf509faadd87f4", "source": ".run/P36/agents/ov_SC06_018__func_80187DD0/scratch/copy_func_80186858.c", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.14, "objects": ["build/src/ov_SC06_033/ov_SC06_033_jr_80186574.o"], "before_text": "void func_80186858(s32 param_1)\n{\n s32 t1 = *(s32 *)(param_1 + 0x64);\n s32 pad[2];\n\n if (*(s16 *)(t1 + 0x36) != *(s16 *)(param_1 + 0x10A)) {\n func_8012C218((void *)param_1);\n return;\n }\n {\n if ((*(u32 *)(t1 + 0xE0) & 4) != 0) {\n func_8012E8A8((u8 *)param_1);\n return;\n }\n {\n s32 a2 = *(s32 *)(*(s32 *)(t1 + 0x20) + 0x20);\n s32 a3 = param_1 + 0xFC;\n\n if (a2 != 0) {\n if ((a2 & 0x1000000) != 0) {\n s32 a1 = a2 & 0xFEFFFFFF;\n register u32 v0 __asm__(\"$2\"); // !FAKE: pin $2 \u2014 NEEDED DIFFERS (P36 rung B tus9)\n u32 a0;\n u32 v1a;\n u32 v1b;\n u32 v0b;\n u32 v1;\n\n *(u16 *)(param_1 + 0x102) = *(u16 *)(a1 + 0x66);\n\n v0 = *(u32 *)(a1 + 0x60);\n a0 = *(u8 *)(a1 + 0x61);\n v1a = (v0 & 0xF) << 8;\n a0 = a0 | v1a;\n v1b = ((s32)v0 >> 16) & 0xFF;\n v0b = (v0 & 0xF0) << 4;\n v1 = v1b | v0b;\n *(u16 *)(param_1 + 0x104) = (u16)a0;\n *(u16 *)(param_1 + 0x106) = (u16)v1;\n\n *(s16 *)(param_1 + 0xFC) = (s8)*(u8 *)(a1 + 0x63);\n *(s16 *)(param_1 + 0xFE) = (s8)*(u8 *)(a1 + 0x64);\n *(s16 *)(param_1 + 0x100) = (s8)*(u8 *)(a1 + 0x65);\n } else {\n *(UAlign12_80186858 *)(param_1 + 0xFC) = *(UAlign12_80186858 *)(a2 + 0x90);\n }\n *(s32 *)(*(s32 *)(param_1 + 0x20) + 0x20) = a3;\n }\n\n if ((*(u32 *)(t1 + 0xE0) & 0x80) != 0) {\n if (*(u16 *)(param_1 + 0x34) == 0) {\n s16 sVar2 = *(u16 *)(param_1 + 0x108) + 0x40;\n *(s16 *)(param_1 + 0x108) = sVar2;\n if (sVar2 > 0x200) {\n *(u16 *)(param_1 + 0x108) = 0x200;\n *(s16 *)(param_1 + 0x34) = *(s16 *)(param_1 + 0x34) + 1;\n }\n } else {\n u16 uVar3 = *(u16 *)(param_1 + 0x108) - 0x80;\n *(u16 *)(param_1 + 0x108) = uVar3;\n if ((s16)uVar3 < 0) {\n *(u16 *)(param_1 + 0x108) = 0;\n *(u16 *)(param_1 + 0x34) = 0;\n *(u32 *)(t1 + 0xE0) = *(u32 *)(t1 + 0xE0) & ~0x80;\n }\n }\n }\n\n *(u16 *)(a3 + 6) = *(u16 *)(a3 + 6) + *(u16 *)(param_1 + 0x108);\n\n *(u32 *)(param_1 + 4) = *(u32 *)(t1 + 4);\n *(u32 *)(param_1 + 8) = *(u32 *)(t1 + 8);\n *(u32 *)(param_1 + 0xC) = *(u32 *)(t1 + 0xC);\n\n *(UAlign8_80186858 *)(param_1 + 0x50) = *(UAlign8_80186858 *)(t1 + 0x50);\n\n {\n s32 dst = *(s32 *)(param_1 + 0x20);\n s32 src = *(s32 *)(t1 + 0x20);\n *(UAlign8_80186858 *)(dst + 0x10) = *(UAlign8_80186858 *)(src + 0x10);\n }\n {\n s32 dst = *(s32 *)(param_1 + 0x20);\n s32 src = *(s32 *)(t1 + 0x20);\n *(UAlign8_80186858 *)(dst + 0x18) = *(UAlign8_80186858 *)(src + 0x18);\n }\n {\n s32 src = *(s32 *)(t1 + 0x20);\n s32 dst = *(s32 *)(param_1 + 0x20);\n *(u32 *)(dst + 4) = *(u32 *)(src + 4);\n }\n {\n s32 src = *(s32 *)(t1 + 0x20);\n s32 dst = *(s32 *)(param_1 + 0x20);\n *(u16 *)(dst + 0x2C) = *(u16 *)(src + 0x2C);\n }\n }\n }\n}\n", "after_text": "void func_80186858(s32 param_1)\n{\n s32 t1 = *(s32 *)(param_1 + 0x64);\n s32 pad[2];\n\n if (*(s16 *)(t1 + 0x36) != *(s16 *)(param_1 + 0x10A)) {\n func_8012C218((void *)param_1);\n return;\n }\n {\n if ((*(u32 *)(t1 + 0xE0) & 4) != 0) {\n func_8012E8A8((u8 *)param_1);\n return;\n }\n {\n s32 a2 = *(s32 *)(*(s32 *)(t1 + 0x20) + 0x20);\n s32 a3 = param_1 + 0xFC;\n\n if (a2 != 0) {\n if ((a2 & 0x1000000) != 0) {\n s32 a1 = a2 & 0xFEFFFFFF;\n u32 v0;\n u32 a0;\n u32 v1;\n\n *(u16 *)(param_1 + 0x102) = *(u16 *)(a1 + 0x66);\n\n v0 = *(u32 *)(a1 + 0x60);\n a0 = *(u8 *)(a1 + 0x61) | ((v0 & 0xF) << 8);\n v1 = (((s32)v0 >> 16) & 0xFF) | ((v0 & 0xF0) << 4);\n do { // !FAKE: do-while \u2014 flow counts the stores' refs at loop depth 2 (flow.c mark_used_regs, reg_n_refs += loop_depth), which lifts a0's quantity over a1's in qty_compare_1 (local-alloc.c:1598); its LOOP notes also keep sched1 from moving the 0x104 store above v1's or (sched.c:2053-2074), so w's quantity ties the (w & 0xF) one at 13333 and wins on qty number (P36 S104 e5 minimum-lever)\n *(u16 *)(param_1 + 0x104) = a0;\n *(u16 *)(param_1 + 0x106) = v1;\n } while (0);\n\n *(s16 *)(param_1 + 0xFC) = (s8)*(u8 *)(a1 + 0x63);\n *(s16 *)(param_1 + 0xFE) = (s8)*(u8 *)(a1 + 0x64);\n *(s16 *)(param_1 + 0x100) = (s8)*(u8 *)(a1 + 0x65);\n } else {\n *(UAlign12_80186858 *)(param_1 + 0xFC) = *(UAlign12_80186858 *)(a2 + 0x90);\n }\n *(s32 *)(*(s32 *)(param_1 + 0x20) + 0x20) = a3;\n }\n\n if ((*(u32 *)(t1 + 0xE0) & 0x80) != 0) {\n if (*(u16 *)(param_1 + 0x34) == 0) {\n s16 sVar2 = *(u16 *)(param_1 + 0x108) + 0x40;\n *(s16 *)(param_1 + 0x108) = sVar2;\n if (sVar2 > 0x200) {\n *(u16 *)(param_1 + 0x108) = 0x200;\n *(s16 *)(param_1 + 0x34) = *(s16 *)(param_1 + 0x34) + 1;\n }\n } else {\n u16 uVar3 = *(u16 *)(param_1 + 0x108) - 0x80;\n *(u16 *)(param_1 + 0x108) = uVar3;\n if ((s16)uVar3 < 0) {\n *(u16 *)(param_1 + 0x108) = 0;\n *(u16 *)(param_1 + 0x34) = 0;\n *(u32 *)(t1 + 0xE0) = *(u32 *)(t1 + 0xE0) & ~0x80;\n }\n }\n }\n\n *(u16 *)(a3 + 6) = *(u16 *)(a3 + 6) + *(u16 *)(param_1 + 0x108);\n\n *(u32 *)(param_1 + 4) = *(u32 *)(t1 + 4);\n *(u32 *)(param_1 + 8) = *(u32 *)(t1 + 8);\n *(u32 *)(param_1 + 0xC) = *(u32 *)(t1 + 0xC);\n\n *(UAlign8_80186858 *)(param_1 + 0x50) = *(UAlign8_80186858 *)(t1 + 0x50);\n\n {\n s32 dst = *(s32 *)(param_1 + 0x20);\n s32 src = *(s32 *)(t1 + 0x20);\n *(UAlign8_80186858 *)(dst + 0x10) = *(UAlign8_80186858 *)(src + 0x10);\n }\n {\n s32 dst = *(s32 *)(param_1 + 0x20);\n s32 src = *(s32 *)(t1 + 0x20);\n *(UAlign8_80186858 *)(dst + 0x18) = *(UAlign8_80186858 *)(src + 0x18);\n }\n {\n s32 src = *(s32 *)(t1 + 0x20);\n s32 dst = *(s32 *)(param_1 + 0x20);\n *(u32 *)(dst + 4) = *(u32 *)(src + 4);\n }\n {\n s32 src = *(s32 *)(t1 + 0x20);\n s32 dst = *(s32 *)(param_1 + 0x20);\n *(u16 *)(dst + 0x2C) = *(u16 *)(src + 0x2C);\n }\n }\n }\n}\n"} diff --git a/src/ov_SC06_033/ov_SC06_033_jr_80186574.c b/src/ov_SC06_033/ov_SC06_033_jr_80186574.c index 074b45c48..556f75052 100644 --- a/src/ov_SC06_033/ov_SC06_033_jr_80186574.c +++ b/src/ov_SC06_033/ov_SC06_033_jr_80186574.c @@ -3037,24 +3037,19 @@ void func_80186858(s32 param_1) if (a2 != 0) { if ((a2 & 0x1000000) != 0) { s32 a1 = a2 & 0xFEFFFFFF; - register u32 v0 __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus9) + u32 v0; u32 a0; - u32 v1a; - u32 v1b; - u32 v0b; u32 v1; *(u16 *)(param_1 + 0x102) = *(u16 *)(a1 + 0x66); v0 = *(u32 *)(a1 + 0x60); - a0 = *(u8 *)(a1 + 0x61); - v1a = (v0 & 0xF) << 8; - a0 = a0 | v1a; - v1b = ((s32)v0 >> 16) & 0xFF; - v0b = (v0 & 0xF0) << 4; - v1 = v1b | v0b; - *(u16 *)(param_1 + 0x104) = (u16)a0; - *(u16 *)(param_1 + 0x106) = (u16)v1; + a0 = *(u8 *)(a1 + 0x61) | ((v0 & 0xF) << 8); + v1 = (((s32)v0 >> 16) & 0xFF) | ((v0 & 0xF0) << 4); + do { // !FAKE: do-while — flow counts the stores' refs at loop depth 2 (flow.c mark_used_regs, reg_n_refs += loop_depth), which lifts a0's quantity over a1's in qty_compare_1 (local-alloc.c:1598); its LOOP notes also keep sched1 from moving the 0x104 store above v1's or (sched.c:2053-2074), so w's quantity ties the (w & 0xF) one at 13333 and wins on qty number (P36 S104 e5 minimum-lever) + *(u16 *)(param_1 + 0x104) = a0; + *(u16 *)(param_1 + 0x106) = v1; + } while (0); *(s16 *)(param_1 + 0xFC) = (s8)*(u8 *)(a1 + 0x63); *(s16 *)(param_1 + 0xFE) = (s8)*(u8 *)(a1 + 0x64);