From a1015eda64dd3356385e9942e05e9fc40586a052 Mon Sep 17 00:00:00 2001 From: Drew T <50529377+Druthulu@users.noreply.github.com> Date: Fri, 11 Sep 2026 02:47:17 -0600 Subject: [PATCH] =?UTF-8?q?phase-36:=20S104=20s104=5Fe19=20=E2=80=94=20fun?= =?UTF-8?q?c=5F801809E4=20banked=20at=200=20through=20the=20whole-object?= =?UTF-8?q?=20gate=20+=20propagated=20=E2=80=94=20pin=20=E2=86=92=200:=20a?= =?UTF-8?q?=20block-local=20mask=20per=20loop=20(allocno=5Fcompare=20globa?= =?UTF-8?q?l.c:594-607)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .run/P36/delever/calibration.json | 350 +++++++++++----------- .run/P36/delever/ledger.jsonl | 1 + src/ov_SC01_080/ov_SC01_080_jr_8017AE2C.c | 157 +++++----- 3 files changed, 256 insertions(+), 252 deletions(-) diff --git a/.run/P36/delever/calibration.json b/.run/P36/delever/calibration.json index 83a291cb4..a29ec8422 100644 --- a/.run/P36/delever/calibration.json +++ b/.run/P36/delever/calibration.json @@ -1,7 +1,7 @@ { - "head": "5390d85d4", + "head": "e247ff62f", "stamp": "15956e4a96c4", - "generated": "2026-09-11 02:46", + "generated": "2026-09-11 02:47", "aliases": [ "main", "ov_SC03_014", @@ -21,207 +21,207 @@ "main": { "objects": 85, "identical": 85, - "seconds": 6.415999999999998, - "mean_s": 0.075 + "seconds": 6.426, + "mean_s": 0.076 }, "ov_SC03_014": { "objects": 32, "identical": 32, - "seconds": 4.473, - "mean_s": 0.14 + "seconds": 4.377999999999999, + "mean_s": 0.137 }, "ov_SC03_015": { "objects": 32, "identical": 32, - "seconds": 4.326, - "mean_s": 0.135 + "seconds": 4.281000000000001, + "mean_s": 0.134 }, "ov_SC04_011": { "objects": 28, "identical": 28, - "seconds": 3.7210000000000005, - "mean_s": 0.133 + "seconds": 3.6850000000000005, + "mean_s": 0.132 } }, "per_object_seconds": { - "build/src/800.o": 0.693, - "build/src/800_b.o": 0.075, - "build/src/800_b_2.o": 0.278, - "build/src/800_b_o0a.o": 0.074, - "build/src/800_c.o": 0.19, - "build/src/800b2.o": 0.073, + "build/src/800.o": 0.7, + "build/src/800_b.o": 0.066, + "build/src/800_b_2.o": 0.305, + "build/src/800_b_o0a.o": 0.072, + "build/src/800_c.o": 0.185, + "build/src/800b2.o": 0.08, "build/src/apicard1.o": 0.059, - "build/src/apicard2.o": 0.072, - "build/src/apicard3.o": 0.072, - "build/src/apicard4.o": 0.058, - "build/src/apicard5.o": 0.081, - "build/src/apicard6.o": 0.056, - "build/src/apicard7.o": 0.075, - "build/src/boot.o": 0.083, - "build/src/gap.o": 0.061, - "build/src/libapi1.o": 0.06, - "build/src/libapi2.o": 0.059, - "build/src/libc2_1.o": 0.06, - "build/src/libc2_2.o": 0.061, - "build/src/libcd1.o": 0.075, + "build/src/apicard2.o": 0.07, + "build/src/apicard3.o": 0.06, + "build/src/apicard4.o": 0.074, + "build/src/apicard5.o": 0.072, + "build/src/apicard6.o": 0.069, + "build/src/apicard7.o": 0.061, + "build/src/boot.o": 0.087, + "build/src/gap.o": 0.07, + "build/src/libapi1.o": 0.063, + "build/src/libapi2.o": 0.058, + "build/src/libc2_1.o": 0.063, + "build/src/libc2_2.o": 0.059, + "build/src/libcd1.o": 0.064, "build/src/libcd2.o": 0.066, - "build/src/libetc.o": 0.077, - "build/src/libgpu.o": 0.054, - "build/src/libgpu2.o": 0.074, - "build/src/libgs1.o": 0.065, - "build/src/libgs2.o": 0.068, - "build/src/libgs3.o": 0.071, - "build/src/libgs4.o": 0.067, - "build/src/libgs5.o": 0.056, - "build/src/libgs6.o": 0.078, - "build/src/libgs7.o": 0.065, - "build/src/libgs8.o": 0.061, - "build/src/libgte1.o": 0.065, - "build/src/libgte10.o": 0.065, - "build/src/libgte11.o": 0.058, - "build/src/libgte12.o": 0.06, - "build/src/libgte13.o": 0.062, - "build/src/libgte14.o": 0.066, - "build/src/libgte15.o": 0.065, - "build/src/libgte16.o": 0.061, - "build/src/libgte17.o": 0.058, - "build/src/libgte18.o": 0.069, - "build/src/libgte19.o": 0.068, - "build/src/libgte2.o": 0.06, - "build/src/libgte20.o": 0.06, - "build/src/libgte21.o": 0.059, - "build/src/libgte22.o": 0.068, - "build/src/libgte23.o": 0.06, - "build/src/libgte24.o": 0.061, - "build/src/libgte25.o": 0.062, - "build/src/libgte26.o": 0.066, - "build/src/libgte27.o": 0.059, - "build/src/libgte28.o": 0.056, - "build/src/libgte29.o": 0.053, - "build/src/libgte3.o": 0.07, + "build/src/libetc.o": 0.065, + "build/src/libgpu.o": 0.058, + "build/src/libgpu2.o": 0.064, + "build/src/libgs1.o": 0.055, + "build/src/libgs2.o": 0.061, + "build/src/libgs3.o": 0.064, + "build/src/libgs4.o": 0.066, + "build/src/libgs5.o": 0.055, + "build/src/libgs6.o": 0.079, + "build/src/libgs7.o": 0.062, + "build/src/libgs8.o": 0.059, + "build/src/libgte1.o": 0.061, + "build/src/libgte10.o": 0.054, + "build/src/libgte11.o": 0.057, + "build/src/libgte12.o": 0.062, + "build/src/libgte13.o": 0.058, + "build/src/libgte14.o": 0.059, + "build/src/libgte15.o": 0.061, + "build/src/libgte16.o": 0.059, + "build/src/libgte17.o": 0.063, + "build/src/libgte18.o": 0.063, + "build/src/libgte19.o": 0.064, + "build/src/libgte2.o": 0.058, + "build/src/libgte20.o": 0.057, + "build/src/libgte21.o": 0.06, + "build/src/libgte22.o": 0.057, + "build/src/libgte23.o": 0.064, + "build/src/libgte24.o": 0.066, + "build/src/libgte25.o": 0.068, + "build/src/libgte26.o": 0.058, + "build/src/libgte27.o": 0.061, + "build/src/libgte28.o": 0.066, + "build/src/libgte29.o": 0.045, + "build/src/libgte3.o": 0.066, "build/src/libgte30.o": 0.065, - "build/src/libgte4.o": 0.062, - "build/src/libgte5.o": 0.065, - "build/src/libgte6.o": 0.06, - "build/src/libgte7.o": 0.06, - "build/src/libgte8.o": 0.065, - "build/src/libgte9.o": 0.064, - "build/src/libmcrd1.o": 0.063, - "build/src/libmcrd2.o": 0.061, - "build/src/libpad1.o": 0.06, - "build/src/libpad2.o": 0.071, - "build/src/sgap.o": 0.062, - "build/src/sgap_2.o": 0.058, - "build/src/sgap_3.o": 0.058, - "build/src/sgap_4.o": 0.067, - "build/src/sgap_5.o": 0.054, - "build/src/sgap_6.o": 0.059, - "build/src/sgap_8.o": 0.07, - "build/src/snd1.o": 0.068, - "build/src/snd10.o": 0.06, - "build/src/snd11.o": 0.055, - "build/src/snd12.o": 0.06, - "build/src/snd2.o": 0.064, - "build/src/snd3.o": 0.06, - "build/src/snd4.o": 0.059, - "build/src/snd5.o": 0.06, - "build/src/snd6.o": 0.067, - "build/src/snd7.o": 0.07, - "build/src/snd8.o": 0.06, - "build/src/snd9.o": 0.061, - "build/src/ov_SC03_014/ov_SC03_014.o": 0.119, - "build/src/ov_SC03_014/ov_SC03_014_after.o": 0.489, + "build/src/libgte4.o": 0.063, + "build/src/libgte5.o": 0.061, + "build/src/libgte6.o": 0.059, + "build/src/libgte7.o": 0.058, + "build/src/libgte8.o": 0.055, + "build/src/libgte9.o": 0.062, + "build/src/libmcrd1.o": 0.08, + "build/src/libmcrd2.o": 0.062, + "build/src/libpad1.o": 0.073, + "build/src/libpad2.o": 0.058, + "build/src/sgap.o": 0.072, + "build/src/sgap_2.o": 0.066, + "build/src/sgap_3.o": 0.067, + "build/src/sgap_4.o": 0.071, + "build/src/sgap_5.o": 0.075, + "build/src/sgap_6.o": 0.062, + "build/src/sgap_8.o": 0.069, + "build/src/snd1.o": 0.056, + "build/src/snd10.o": 0.071, + "build/src/snd11.o": 0.058, + "build/src/snd12.o": 0.065, + "build/src/snd2.o": 0.066, + "build/src/snd3.o": 0.059, + "build/src/snd4.o": 0.073, + "build/src/snd5.o": 0.075, + "build/src/snd6.o": 0.063, + "build/src/snd7.o": 0.053, + "build/src/snd8.o": 0.064, + "build/src/snd9.o": 0.067, + "build/src/ov_SC03_014/ov_SC03_014.o": 0.108, + "build/src/ov_SC03_014/ov_SC03_014_after.o": 0.515, "build/src/ov_SC03_014/ov_SC03_014_jr_8012ACE0.o": 0.373, - "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.058, - "build/src/ov_SC03_014/ov_SC03_014_jr_80135D20.o": 0.113, - "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.108, - "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.08, - "build/src/ov_SC03_014/ov_SC03_014_jr_80140608.o": 0.165, - "build/src/ov_SC03_014/ov_SC03_014_jr_8015444C.o": 0.079, - "build/src/ov_SC03_014/ov_SC03_014_jr_80154C24.o": 0.165, - "build/src/ov_SC03_014/ov_SC03_014_jr_801588CC.o": 0.091, - "build/src/ov_SC03_014/ov_SC03_014_jr_80159C84.o": 0.074, - "build/src/ov_SC03_014/ov_SC03_014_jr_8015A3C8.o": 0.061, - "build/src/ov_SC03_014/ov_SC03_014_jr_8015AE2C.o": 0.091, - "build/src/ov_SC03_014/ov_SC03_014_jr_8015C32C.o": 0.476, - "build/src/ov_SC03_014/ov_SC03_014_jr_8016AB6C.o": 0.237, - "build/src/ov_SC03_014/ov_SC03_014_jr_80171B4C.o": 0.102, - "build/src/ov_SC03_014/ov_SC03_014_jr_801734BC.o": 0.197, - "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.1, + "build/src/ov_SC03_014/ov_SC03_014_jr_80135888.o": 0.059, + "build/src/ov_SC03_014/ov_SC03_014_jr_80135A4C.o": 0.068, + "build/src/ov_SC03_014/ov_SC03_014_jr_80135D20.o": 0.121, + "build/src/ov_SC03_014/ov_SC03_014_jr_801380E0.o": 0.154, + "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.075, + "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.17, + "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.158, + "build/src/ov_SC03_014/ov_SC03_014_jr_801588CC.o": 0.077, + "build/src/ov_SC03_014/ov_SC03_014_jr_80159C84.o": 0.056, + "build/src/ov_SC03_014/ov_SC03_014_jr_8015A3C8.o": 0.053, + "build/src/ov_SC03_014/ov_SC03_014_jr_8015AE2C.o": 0.085, + "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.244, + "build/src/ov_SC03_014/ov_SC03_014_jr_80171B4C.o": 0.093, + "build/src/ov_SC03_014/ov_SC03_014_jr_801734BC.o": 0.175, + "build/src/ov_SC03_014/ov_SC03_014_jr_801789AC.o": 0.05, + "build/src/ov_SC03_014/ov_SC03_014_jr_80178D40.o": 0.082, "build/src/ov_SC03_014/ov_SC03_014_jr_8017A4AC.o": 0.055, - "build/src/ov_SC03_014/ov_SC03_014_jr_8017AE2C.o": 0.157, - "build/src/ov_SC03_014/ov_SC03_014_jr_8017EB7C.o": 0.194, - "build/src/ov_SC03_014/ov_SC03_014_jr_80184440.o": 0.048, - "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.058, + "build/src/ov_SC03_014/ov_SC03_014_jr_8017AE2C.o": 0.178, + "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.254, + "build/src/ov_SC03_014/ov_SC03_014_o0b.o": 0.055, + "build/src/ov_SC03_014/ov_SC03_014_o0c.o": 0.049, "build/src/ov_SC03_014/ov_SC03_014_o0d.o": 0.052, "build/src/ov_SC03_014/ov_SC03_014_o0e.o": 0.071, - "build/src/ov_SC03_015/ov_SC03_015.o": 0.129, - "build/src/ov_SC03_015/ov_SC03_015_after.o": 0.496, - "build/src/ov_SC03_015/ov_SC03_015_jr_8012ACE0.o": 0.371, - "build/src/ov_SC03_015/ov_SC03_015_jr_80135888.o": 0.044, - "build/src/ov_SC03_015/ov_SC03_015_jr_80135A4C.o": 0.047, - "build/src/ov_SC03_015/ov_SC03_015_jr_80135D20.o": 0.118, - "build/src/ov_SC03_015/ov_SC03_015_jr_801380E0.o": 0.146, - "build/src/ov_SC03_015/ov_SC03_015_jr_8013C98C.o": 0.107, - "build/src/ov_SC03_015/ov_SC03_015_jr_8013F350.o": 0.06, - "build/src/ov_SC03_015/ov_SC03_015_jr_8013FFD8.o": 0.059, - "build/src/ov_SC03_015/ov_SC03_015_jr_80140608.o": 0.17, - "build/src/ov_SC03_015/ov_SC03_015_jr_8015444C.o": 0.066, - "build/src/ov_SC03_015/ov_SC03_015_jr_80154C24.o": 0.142, - "build/src/ov_SC03_015/ov_SC03_015_jr_801588CC.o": 0.08, - "build/src/ov_SC03_015/ov_SC03_015_jr_80159C84.o": 0.065, - "build/src/ov_SC03_015/ov_SC03_015_jr_8015A3C8.o": 0.06, - "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.437, - "build/src/ov_SC03_015/ov_SC03_015_jr_8016AB6C.o": 0.242, - "build/src/ov_SC03_015/ov_SC03_015_jr_80171B4C.o": 0.097, - "build/src/ov_SC03_015/ov_SC03_015_jr_801734BC.o": 0.181, + "build/src/ov_SC03_015/ov_SC03_015.o": 0.118, + "build/src/ov_SC03_015/ov_SC03_015_after.o": 0.485, + "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.053, + "build/src/ov_SC03_015/ov_SC03_015_jr_80135A4C.o": 0.05, + "build/src/ov_SC03_015/ov_SC03_015_jr_80135D20.o": 0.117, + "build/src/ov_SC03_015/ov_SC03_015_jr_801380E0.o": 0.141, + "build/src/ov_SC03_015/ov_SC03_015_jr_8013C98C.o": 0.111, + "build/src/ov_SC03_015/ov_SC03_015_jr_8013F350.o": 0.076, + "build/src/ov_SC03_015/ov_SC03_015_jr_8013FFD8.o": 0.065, + "build/src/ov_SC03_015/ov_SC03_015_jr_80140608.o": 0.161, + "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.145, + "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.059, + "build/src/ov_SC03_015/ov_SC03_015_jr_8015A3C8.o": 0.068, + "build/src/ov_SC03_015/ov_SC03_015_jr_8015AE2C.o": 0.079, + "build/src/ov_SC03_015/ov_SC03_015_jr_8015C32C.o": 0.413, + "build/src/ov_SC03_015/ov_SC03_015_jr_8016AB6C.o": 0.257, + "build/src/ov_SC03_015/ov_SC03_015_jr_80171B4C.o": 0.088, + "build/src/ov_SC03_015/ov_SC03_015_jr_801734BC.o": 0.202, "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.086, - "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.15, - "build/src/ov_SC03_015/ov_SC03_015_jr_8017EB7C.o": 0.188, - "build/src/ov_SC03_015/ov_SC03_015_jr_80184440.o": 0.066, - "build/src/ov_SC03_015/ov_SC03_015_jr_801848E4.o": 0.269, - "build/src/ov_SC03_015/ov_SC03_015_o0b.o": 0.065, - "build/src/ov_SC03_015/ov_SC03_015_o0c.o": 0.054, - "build/src/ov_SC03_015/ov_SC03_015_o0d.o": 0.057, - "build/src/ov_SC03_015/ov_SC03_015_o0e.o": 0.068, - "build/src/ov_SC04_011/ov_SC04_011.o": 0.109, - "build/src/ov_SC04_011/ov_SC04_011_after.o": 0.397, + "build/src/ov_SC03_015/ov_SC03_015_jr_80178D40.o": 0.1, + "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.158, + "build/src/ov_SC03_015/ov_SC03_015_jr_8017EB7C.o": 0.182, + "build/src/ov_SC03_015/ov_SC03_015_jr_80184440.o": 0.04, + "build/src/ov_SC03_015/ov_SC03_015_jr_801848E4.o": 0.254, + "build/src/ov_SC03_015/ov_SC03_015_o0b.o": 0.056, + "build/src/ov_SC03_015/ov_SC03_015_o0c.o": 0.06, + "build/src/ov_SC03_015/ov_SC03_015_o0d.o": 0.05, + "build/src/ov_SC03_015/ov_SC03_015_o0e.o": 0.072, + "build/src/ov_SC04_011/ov_SC04_011.o": 0.098, + "build/src/ov_SC04_011/ov_SC04_011_after.o": 0.402, "build/src/ov_SC04_011/ov_SC04_011_jr_8012ACE0.o": 0.325, "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.052, - "build/src/ov_SC04_011/ov_SC04_011_jr_80135D20.o": 0.113, - "build/src/ov_SC04_011/ov_SC04_011_jr_801380E0.o": 0.152, - "build/src/ov_SC04_011/ov_SC04_011_jr_8013C98C.o": 0.102, - "build/src/ov_SC04_011/ov_SC04_011_jr_8013F350.o": 0.076, - "build/src/ov_SC04_011/ov_SC04_011_jr_8013FFD8.o": 0.057, - "build/src/ov_SC04_011/ov_SC04_011_jr_80140608.o": 0.168, - "build/src/ov_SC04_011/ov_SC04_011_jr_8015444C.o": 0.063, - "build/src/ov_SC04_011/ov_SC04_011_jr_80154C24.o": 0.153, - "build/src/ov_SC04_011/ov_SC04_011_jr_801588CC.o": 0.083, + "build/src/ov_SC04_011/ov_SC04_011_jr_80135D20.o": 0.12, + "build/src/ov_SC04_011/ov_SC04_011_jr_801380E0.o": 0.143, + "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.058, + "build/src/ov_SC04_011/ov_SC04_011_jr_80140608.o": 0.165, + "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.15, + "build/src/ov_SC04_011/ov_SC04_011_jr_801588CC.o": 0.082, "build/src/ov_SC04_011/ov_SC04_011_jr_80159C84.o": 0.056, - "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.332, - "build/src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.o": 0.215, - "build/src/ov_SC04_011/ov_SC04_011_jr_80171B4C.o": 0.099, - "build/src/ov_SC04_011/ov_SC04_011_jr_801734BC.o": 0.155, - "build/src/ov_SC04_011/ov_SC04_011_jr_801789AC.o": 0.043, + "build/src/ov_SC04_011/ov_SC04_011_jr_8015A3C8.o": 0.061, + "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.343, + "build/src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.o": 0.206, + "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.18, + "build/src/ov_SC04_011/ov_SC04_011_jr_801789AC.o": 0.052, "build/src/ov_SC04_011/ov_SC04_011_jr_80178D40.o": 0.084, - "build/src/ov_SC04_011/ov_SC04_011_jr_8017A4AC.o": 0.067, - "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.402, - "build/src/ov_SC04_011/ov_SC04_011_o0b.o": 0.048, - "build/src/ov_SC04_011/ov_SC04_011_o0c.o": 0.059 + "build/src/ov_SC04_011/ov_SC04_011_jr_8017A4AC.o": 0.06, + "build/src/ov_SC04_011/ov_SC04_011_jr_8017AE2C.o": 0.089, + "build/src/ov_SC04_011/ov_SC04_011_jr_8017D494.o": 0.411, + "build/src/ov_SC04_011/ov_SC04_011_o0b.o": 0.041, + "build/src/ov_SC04_011/ov_SC04_011_o0c.o": 0.048 }, "ok": true, - "seconds": 2.2 + "seconds": 2.1 } diff --git a/.run/P36/delever/ledger.jsonl b/.run/P36/delever/ledger.jsonl index decbb49fa..439434dd6 100644 --- a/.run/P36/delever/ledger.jsonl +++ b/.run/P36/delever/ledger.jsonl @@ -29464,3 +29464,4 @@ {"ts": "2026-09-11 02:45:34", "label": "s104_e18", "rung": "E", "calib": {"head": "17aabe964", "stamp": "15956e4a96c4"}, "tu": "src/ov_SC02_028/ov_SC02_028_jr_8017D898.c", "fn": "func_80180970", "addr": 2149058928, "aliases": null, "header": false, "includers": 0, "nhash_before": "a78ea91e24ae7e46be716d87dd4a87126790e8b9", "nhash_after": "a54c426308029942ef04da85eda967e417d380a8", "source": ".run/P36/agents/ov_SC02_027__func_80182868/scratch/copy_SC02_028_func_80180970.c", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.157, "objects": ["build/src/ov_SC02_028/ov_SC02_028_jr_8017D898.o"], "before_text": "void func_80180970(void *a0)\n{\n extern void func_8012C1B8(void);\n extern void func_8012CAE4(void *a0);\n extern void func_8001C214(s32 a0, s32 a1);\n extern s32 func_80029178(s32);\n extern void func_80180B4C(void *a0);\n\n extern s32 D_801A6578;\n extern s32 D_801A4CFC[];\n extern Stride8_u16_80182868_80180970 D_801A4D0C[];\n extern Stride8_u16_80182868_80180970 D_801A4D0E[];\n extern Stride8_u16_80182868_80180970 D_801A4D10[];\n extern Stride8_s16_80182868_80180970 D_801A4D12[];\n extern s16 D_801A4CC0[];\n\n s32 v0;\n s16 state;\n s16 i;\n s16 id;\n\n if ((*(s32 *)((s32)a0 + 0x20) = v0 = ((s32 (*)(void))func_8012C1B8)()) == 0) {\n func_8012CAE4(a0);\n return;\n }\n\n /* \u00a767: launder v0 at the statement where the target's `addu a0,v0,zero`\n * copy actually lands (the func_8001C214 call site), not right after\n * func_8012C1B8 returns -- an unconstrained copy gets hoisted early. */\n __asm__ __volatile__(\"\" : \"=r\"(v0) : \"0\"(v0)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus9)\n func_8001C214(v0, (s32)&D_801A6578);\n\n *(u32 *)(*(s32 *)((s32)a0 + 0x20) + 0x28) = 0x2000200;\n\n *(u32 *)((s32)a0 + 0x58) = (s32)D_801A4CFC | 0x10000000;\n\n *(u8 *)((s32)a0 + 0x75) = 0;\n if (*(s16 *)((s32)a0 + 0x70) == 1) {\n *(s32 *)(*(s32 *)((s32)a0 + 0x20) + 0x4) |= 0x80000000;\n *(u16 *)((s32)a0 + 0x5C) = 0;\n } else {\n *(u16 *)((s32)a0 + 0x5C) = 0xCC00;\n }\n\n *(s16 *)((s32)a0 + 0x6) = D_801A4D0C[*(s16 *)((s32)a0 + 0x70)].v;\n *(s16 *)((s32)a0 + 0xA) = D_801A4D0E[*(s16 *)((s32)a0 + 0x70)].v;\n *(s16 *)((s32)a0 + 0xE) = D_801A4D10[*(s16 *)((s32)a0 + 0x70)].v;\n func_80180B4C(a0);\n\n if (*(s16 *)((s32)a0 + 0x70) == 3) {\n *(u16 *)(*(s32 *)((s32)a0 + 0x20) + 0x10) = 0x800;\n }\n\n if ((func_80029178(0xAE) & 0xFF) == 0) {\n return;\n }\n\n if (D_801A4CC0[0] != 0) {\n state = *(s16 *)((s32)a0 + 0x70);\n i = 0;\n for (;;) {\n id = D_801A4CC0[i + 1];\n if (id == state) {\n if (id >= 2) {\n if (D_801A4D12[id].v != 0) {\n *(s16 *)((s32)a0 + 0x6) -= 0x200;\n } else {\n *(s16 *)((s32)a0 + 0x6) += 0x200;\n }\n }\n }\n i += 2;\n if (D_801A4CC0[i] == 0) {\n break;\n }\n }\n }\n}\n", "after_text": "void func_80180970(void *a0)\n{\n extern void func_8012C1B8(void);\n extern void func_8012CAE4(void *a0);\n extern void func_8001C214(s32 a0, s32 a1);\n extern s32 func_80029178(s32);\n extern void func_80180B4C(void *a0);\n\n extern s32 D_801A6578;\n extern s32 D_801A4CFC[];\n extern Stride8_u16_80182868_80180970 D_801A4D0C[];\n extern Stride8_u16_80182868_80180970 D_801A4D0E[];\n extern Stride8_u16_80182868_80180970 D_801A4D10[];\n extern Stride8_s16_80182868_80180970 D_801A4D12[];\n extern s16 D_801A4CC0[];\n\n s32 v0;\n s16 state;\n s16 i;\n s16 id;\n\n v0 = ((s32 (*)(void))func_8012C1B8)();\n *(s32 *)((s32)a0 + 0x20) = v0;\n if (v0 == 0) {\n func_8012CAE4(a0);\n return;\n }\n\n func_8001C214(v0, (s32)&D_801A6578);\n\n *(u32 *)(*(s32 *)((s32)a0 + 0x20) + 0x28) = 0x2000200;\n\n *(u32 *)((s32)a0 + 0x58) = (s32)D_801A4CFC | 0x10000000;\n\n *(u8 *)((s32)a0 + 0x75) = 0;\n if (*(s16 *)((s32)a0 + 0x70) == 1) {\n *(s32 *)(*(s32 *)((s32)a0 + 0x20) + 0x4) |= 0x80000000;\n *(u16 *)((s32)a0 + 0x5C) = 0;\n } else {\n *(u16 *)((s32)a0 + 0x5C) = 0xCC00;\n }\n\n *(s16 *)((s32)a0 + 0x6) = D_801A4D0C[*(s16 *)((s32)a0 + 0x70)].v;\n *(s16 *)((s32)a0 + 0xA) = D_801A4D0E[*(s16 *)((s32)a0 + 0x70)].v;\n *(s16 *)((s32)a0 + 0xE) = D_801A4D10[*(s16 *)((s32)a0 + 0x70)].v;\n func_80180B4C(a0);\n\n if (*(s16 *)((s32)a0 + 0x70) == 3) {\n *(u16 *)(*(s32 *)((s32)a0 + 0x20) + 0x10) = 0x800;\n }\n\n if ((func_80029178(0xAE) & 0xFF) == 0) {\n return;\n }\n\n if (D_801A4CC0[0] != 0) {\n state = *(s16 *)((s32)a0 + 0x70);\n i = 0;\n for (;;) {\n id = D_801A4CC0[i + 1];\n if (id == state) {\n if (id >= 2) {\n if (D_801A4D12[id].v != 0) {\n *(s16 *)((s32)a0 + 0x6) -= 0x200;\n } else {\n *(s16 *)((s32)a0 + 0x6) += 0x200;\n }\n }\n }\n i += 2;\n if (D_801A4CC0[i] == 0) {\n break;\n }\n }\n }\n}\n"} {"ts": "2026-09-11 02:46:41", "label": "s104_e19", "rung": "E", "calib": {"head": "26735ce18", "stamp": "15956e4a96c4"}, "tu": "src/ov_SC01_080/ov_SC01_080_jr_8017AE2C.c", "fn": "func_80180598", "addr": 2149057944, "aliases": null, "header": false, "includers": 0, "nhash_before": "1a4629b35a1e4eee65cb66b41e7097e5fc2326ac", "nhash_after": "22db24db84a24a07f9f1d6737936fcd191e809cf", "source": ".run/P36/agents/ov_SC01_080__func_80180598/body.c", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.19, "objects": ["build/src/ov_SC01_080/ov_SC01_080_jr_8017AE2C.o"], "before_text": "void func_80180598(s32 arg0)\n{\n register s32 param_1 __asm__(\"$16\") = arg0; // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus7)\n register s32 iVar1 __asm__(\"$17\"); // !FAKE: pin $17 \u2014 NEEDED DIFFERS (P36 rung B tus7)\n s32 ret;\n s32 v0;\n\n ret = ((s32 (*)(void))func_8012C1B8)();\n *(s32 *)(param_1 + 0x20) = ret;\n iVar1 = ret;\n if (ret == 0) {\n ((void (*)(s32))func_8012CAE4)(param_1);\n } else {\n extern s32 D_801ACC1C;\n func_8001C810(iVar1, (s32)&D_801ACC1C);\n func_8001D0E8(iVar1, 0x800, 0x800);\n func_8012A828(param_1, D_80189D04);\n *(s32 *)(param_1 + 8) = 0;\n v0 = *(s16 *)(param_1 + 0xA);\n *(s32 *)(param_1 + 0xC) = 0;\n *(s32 *)(param_1 + 4) = 0;\n D_80127190 = v0;\n *(u32 *)(*(s32 *)(param_1 + 0x20) + 4) |= 0x40000040;\n *(u16 *)(param_1 + 2) += 1;\n }\n}\n", "after_text": "void func_80180598(s32 arg0)\n{\n s32 obj;\n s32 ret;\n s32 v;\n\n ret = ((s32 (*)(void))func_8012C1B8)();\n obj = ret;\n *(s32 *)(arg0 + 0x20) = ret;\n if (ret == 0) {\n ((void (*)(s32))func_8012CAE4)(arg0);\n return;\n }\n {\n extern s32 D_801ACC1C;\n func_8001C810(obj, (s32)&D_801ACC1C);\n }\n func_8001D0E8(obj, 0x800, 0x800);\n func_8012A828(arg0, D_80189D04);\n *(s32 *)(arg0 + 8) = 0;\n v = *(s16 *)(arg0 + 0xA);\n *(s32 *)(arg0 + 0xC) = 0;\n *(s32 *)(arg0 + 4) = 0;\n D_80127190 = v;\n *(u32 *)(*(s32 *)(arg0 + 0x20) + 4) |= 0x40000040;\n *(u16 *)(arg0 + 2) += 1;\n}\n"} {"ts": "2026-09-11 02:46:58", "label": "s104_e19", "rung": "E", "calib": {"head": "5390d85d4", "stamp": "15956e4a96c4"}, "tu": "src/ov_SC01_080/ov_SC01_080_jr_8017AE2C.c", "fn": "func_8018230C", "addr": 2149065484, "aliases": null, "header": false, "includers": 0, "nhash_before": "db5d3eee8da7143978ea1f6ec1f3827ae3a600c4", "nhash_after": "760148c32572fbbad33b07b455e3b6e66fcf6824", "source": ".run/P36/agents/ov_SC01_080__func_8018230C/body.c", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.189, "objects": ["build/src/ov_SC01_080/ov_SC01_080_jr_8017AE2C.o"], "before_text": "void func_8018230C(s32 arg0) {\n u16 base[3];\n struct { s16 vx, vy, vz, pad; } v[16];\n s32 buf[2];\n u16 *bp;\n s32 i;\n s32 j;\n s32 d;\n s32 c;\n s32 acc;\n s32 w;\n s32 ang;\n\n c = *(s32 *)(arg0 + 0x1C);\n acc = 0;\n for (; c >= 0; c--, acc += D_8018A308) {\n if (c < *(s32 *)(arg0 + 0x1C) - 0x10) {\n break;\n }\n w = D_8018A304 + D_8018A306 * c;\n bp = base;\n {\n register u16 z __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus7)\n base[0] = *(u16 *)(arg0 + 6);\n base[1] = *(u16 *)(arg0 + 0xA);\n z = *(u16 *)(arg0 + 0xE);\n base[2] = z;\n base[1] = base[1] - D_8018A302 * c;\n }\n for (i = 0, ang = 0; i < 16; i++, ang += 0x100) {\n func_8012B0B4((unsigned int *)buf, ang, w);\n d = buf[0];\n v[i].vx = bp[0] + d;\n v[i].vy = bp[1];\n v[i].vz = bp[2] + (d >> 16);\n }\n i = 0;\n do {\n j = i + 1;\n func_8012D3B4((s32)&v[i], (s32)&v[j & 0xF], acc);\n i = j;\n } while (i < 16);\n }\n if (*(s32 *)(arg0 + 0x1C) == 0x10) {\n *(u32 *)(*(s32 *)(arg0 + 0x20) + 4) &= 0x7FFFFFFF;\n }\n if (func_8012BEE8(arg0) != 0) {\n func_801824D0(arg0);\n }\n}\n", "after_text": "void func_8018230C(s32 arg0) {\n u16 base[3];\n struct { s16 vx, vy, vz, pad; } v[16];\n s32 buf[2];\n u16 *bp;\n s32 i;\n s32 j;\n s32 d;\n s32 c;\n s32 acc;\n s32 w;\n s32 ang;\n\n c = *(s32 *)(arg0 + 0x1C);\n acc = 0;\n for (; c >= 0; c--, acc += D_8018A308) {\n if (c < *(s32 *)(arg0 + 0x1C) - 0x10) {\n break;\n }\n bp = base;\n base[0] = *(u16 *)(arg0 + 6);\n base[1] = *(u16 *)(arg0 + 0xA);\n base[2] = *(u16 *)(arg0 + 0xE);\n base[1] = base[1] - D_8018A302 * c;\n w = D_8018A304 + D_8018A306 * c;\n for (i = 0, ang = 0; i < 16; i++, ang += 0x100) {\n func_8012B0B4((unsigned int *)buf, ang, w);\n d = buf[0];\n v[i].vx = bp[0] + d;\n v[i].vy = bp[1];\n v[i].vz = bp[2] + (d >> 16);\n }\n i = 0;\n do {\n j = i + 1;\n func_8012D3B4((s32)&v[i], (s32)&v[j & 0xF], acc);\n i = j;\n } while (i < 16);\n }\n if (*(s32 *)(arg0 + 0x1C) == 0x10) {\n *(u32 *)(*(s32 *)(arg0 + 0x20) + 4) &= 0x7FFFFFFF;\n }\n if (func_8012BEE8(arg0) != 0) {\n func_801824D0(arg0);\n }\n}\n"} +{"ts": "2026-09-11 02:47:15", "label": "s104_e19", "rung": "E", "calib": {"head": "e247ff62f", "stamp": "15956e4a96c4"}, "tu": "src/ov_SC01_080/ov_SC01_080_jr_8017AE2C.c", "fn": "func_801809E4", "addr": 2149059044, "aliases": null, "header": false, "includers": 0, "nhash_before": "53c6d951d78014544d74372aa8eb1737e1588a71", "nhash_after": "82d92685f1c72a2f9beea80617faad197efbf04b", "source": ".run/P36/agents/ov_SC01_080__func_801809E4/body.c", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.191, "objects": ["build/src/ov_SC01_080/ov_SC01_080_jr_8017AE2C.o"], "before_text": "void func_801809E4(s32 param_1) {\n s16 i;\n /* cookbook s.17 register pin: the 0x2C mask is a loop-invariant pseudo live\n across jal func_801291C0, so it needs a call-saved reg. Every pin-free\n spelling tried (decl order, s32/u16/int, a separate k var for 0x19)\n allocates it $s2 and gives the 0x19 hoist $s3 -- the exact inverse of the\n target (21-ins residual, register-only). Pinning $s3 = $19 restores the\n target allocation. */\n register s16 mask __asm__(\"$19\"); // !FAKE: pin $19 \u2014 NEEDED DIFFERS (P36 rung B tus7)\n u8 *p;\n\n if (*(s32 *)(param_1 + 0x1C) != 0) {\n if ((*(s32 *)(param_1 + 0x1C) & 3) == 0) {\n func_8012913C(0x1A);\n }\n *(s32 *)(param_1 + 0x1C) = *(s32 *)(param_1 + 0x1C) - 1;\n i = 0;\n do {\n p = func_801291C0();\n if (p != 0) {\n *(u16 *)p = 0x19;\n *(u16 *)(p + 0x2C) = 0;\n *(s32 *)(p + 0x34) = (s32)&D_801C5D40 + (*(s16 *)(param_1 + 0xDC) << 5);\n *(s16 *)(param_1 + 0xDC) = *(s16 *)(param_1 + 0xDC) + 1;\n if (*(s16 *)(param_1 + 0xDC) >= 0xC0) {\n *(s16 *)(param_1 + 0xDC) = 0;\n }\n }\n i = i + 1;\n } while (i < 1);\n mask = 0xFF;\n i = 0;\n do {\n p = func_801291C0();\n if (p != 0) {\n *(u16 *)p = 0x19;\n *(u16 *)(p + 0x2C) = mask;\n *(s32 *)(p + 0x34) = (s32)&D_801C5D40 + (*(s16 *)(param_1 + 0xDC) << 5);\n *(s16 *)(param_1 + 0xDC) = *(s16 *)(param_1 + 0xDC) + 1;\n if (*(s16 *)(param_1 + 0xDC) >= 0xC0) {\n *(s16 *)(param_1 + 0xDC) = 0;\n }\n }\n i = i + 1;\n } while (i < 1);\n mask = 0x1FF;\n i = 0;\n do {\n p = func_801291C0();\n if (p != 0) {\n *(u16 *)p = 0x19;\n *(u16 *)(p + 0x2C) = mask;\n *(s32 *)(p + 0x34) = (s32)&D_801C5D40 + (*(s16 *)(param_1 + 0xDC) << 5);\n *(s16 *)(param_1 + 0xDC) = *(s16 *)(param_1 + 0xDC) + 1;\n if (*(s16 *)(param_1 + 0xDC) >= 0xC0) {\n *(s16 *)(param_1 + 0xDC) = 0;\n }\n }\n i = i + 1;\n } while (i < 1);\n mask = 0x3FF;\n i = 0;\n do {\n p = func_801291C0();\n if (p != 0) {\n *(u16 *)p = 0x19;\n *(u16 *)(p + 0x2C) = mask;\n *(s32 *)(p + 0x34) = (s32)&D_801C5D40 + (*(s16 *)(param_1 + 0xDC) << 5);\n *(s16 *)(param_1 + 0xDC) = *(s16 *)(param_1 + 0xDC) + 1;\n if (*(s16 *)(param_1 + 0xDC) >= 0xC0) {\n *(s16 *)(param_1 + 0xDC) = 0;\n }\n }\n i = i + 1;\n } while (i < 2);\n } else {\n mask = 0x3FF;\n i = 0;\n do {\n p = func_801291C0();\n if (p != 0) {\n *(u16 *)p = 0x19;\n *(u16 *)(p + 0x2C) = mask;\n *(s32 *)(p + 0x34) = (s32)&D_801C5D40 + (*(s16 *)(param_1 + 0xDC) << 5);\n *(s16 *)(param_1 + 0xDC) = *(s16 *)(param_1 + 0xDC) + 1;\n if (*(s16 *)(param_1 + 0xDC) >= 0xC0) {\n *(s16 *)(param_1 + 0xDC) = 0;\n }\n }\n i = i + 1;\n } while (i < 2);\n }\n if (D_80127188 == 3) {\n mask = -0x7C01;\n i = 0;\n do {\n p = func_801291C0();\n if (p != 0) {\n *(u16 *)p = 0x19;\n *(u16 *)(p + 0x2C) = mask;\n *(s32 *)(p + 0x34) = (s32)&D_801C5D40 + (*(s16 *)(param_1 + 0xDC) << 5);\n *(s16 *)(param_1 + 0xDC) = *(s16 *)(param_1 + 0xDC) + 1;\n if (*(s16 *)(param_1 + 0xDC) >= 0xC0) {\n *(s16 *)(param_1 + 0xDC) = 0;\n }\n }\n i = i + 1;\n } while (i < 0x80);\n *(s32 *)(param_1 + 0x1C) = 0x40;\n *(s16 *)(param_1 + 2) = *(s16 *)(param_1 + 2) + 1;\n }\n}\n", "after_text": "void func_801809E4(s32 param_1) {\n s16 i;\n u8 *p;\n\n if (*(s32 *)(param_1 + 0x1C) != 0) {\n if ((*(s32 *)(param_1 + 0x1C) & 3) == 0) {\n func_8012913C(0x1A);\n }\n *(s32 *)(param_1 + 0x1C) = *(s32 *)(param_1 + 0x1C) - 1;\n i = 0;\n do {\n p = func_801291C0();\n if (p != 0) {\n *(u16 *)p = 0x19;\n *(u16 *)(p + 0x2C) = 0;\n *(s32 *)(p + 0x34) = (s32)&D_801C5D40 + (*(s16 *)(param_1 + 0xDC) << 5);\n *(s16 *)(param_1 + 0xDC) = *(s16 *)(param_1 + 0xDC) + 1;\n if (*(s16 *)(param_1 + 0xDC) >= 0xC0) {\n *(s16 *)(param_1 + 0xDC) = 0;\n }\n }\n i = i + 1;\n } while (i < 1);\n {\n s16 mask = 0xFF;\n i = 0;\n do {\n p = func_801291C0();\n if (p != 0) {\n *(u16 *)p = 0x19;\n *(u16 *)(p + 0x2C) = mask;\n *(s32 *)(p + 0x34) = (s32)&D_801C5D40 + (*(s16 *)(param_1 + 0xDC) << 5);\n *(s16 *)(param_1 + 0xDC) = *(s16 *)(param_1 + 0xDC) + 1;\n if (*(s16 *)(param_1 + 0xDC) >= 0xC0) {\n *(s16 *)(param_1 + 0xDC) = 0;\n }\n }\n i = i + 1;\n } while (i < 1);\n }\n {\n s16 mask = 0x1FF;\n i = 0;\n do {\n p = func_801291C0();\n if (p != 0) {\n *(u16 *)p = 0x19;\n *(u16 *)(p + 0x2C) = mask;\n *(s32 *)(p + 0x34) = (s32)&D_801C5D40 + (*(s16 *)(param_1 + 0xDC) << 5);\n *(s16 *)(param_1 + 0xDC) = *(s16 *)(param_1 + 0xDC) + 1;\n if (*(s16 *)(param_1 + 0xDC) >= 0xC0) {\n *(s16 *)(param_1 + 0xDC) = 0;\n }\n }\n i = i + 1;\n } while (i < 1);\n }\n {\n s16 mask = 0x3FF;\n i = 0;\n do {\n p = func_801291C0();\n if (p != 0) {\n *(u16 *)p = 0x19;\n *(u16 *)(p + 0x2C) = mask;\n *(s32 *)(p + 0x34) = (s32)&D_801C5D40 + (*(s16 *)(param_1 + 0xDC) << 5);\n *(s16 *)(param_1 + 0xDC) = *(s16 *)(param_1 + 0xDC) + 1;\n if (*(s16 *)(param_1 + 0xDC) >= 0xC0) {\n *(s16 *)(param_1 + 0xDC) = 0;\n }\n }\n i = i + 1;\n } while (i < 2);\n }\n } else {\n {\n s16 mask = 0x3FF;\n i = 0;\n do {\n p = func_801291C0();\n if (p != 0) {\n *(u16 *)p = 0x19;\n *(u16 *)(p + 0x2C) = mask;\n *(s32 *)(p + 0x34) = (s32)&D_801C5D40 + (*(s16 *)(param_1 + 0xDC) << 5);\n *(s16 *)(param_1 + 0xDC) = *(s16 *)(param_1 + 0xDC) + 1;\n if (*(s16 *)(param_1 + 0xDC) >= 0xC0) {\n *(s16 *)(param_1 + 0xDC) = 0;\n }\n }\n i = i + 1;\n } while (i < 2);\n }\n }\n if (D_80127188 == 3) {\n {\n s16 mask = -0x7C01;\n i = 0;\n do {\n p = func_801291C0();\n if (p != 0) {\n *(u16 *)p = 0x19;\n *(u16 *)(p + 0x2C) = mask;\n *(s32 *)(p + 0x34) = (s32)&D_801C5D40 + (*(s16 *)(param_1 + 0xDC) << 5);\n *(s16 *)(param_1 + 0xDC) = *(s16 *)(param_1 + 0xDC) + 1;\n if (*(s16 *)(param_1 + 0xDC) >= 0xC0) {\n *(s16 *)(param_1 + 0xDC) = 0;\n }\n }\n i = i + 1;\n } while (i < 0x80);\n }\n *(s32 *)(param_1 + 0x1C) = 0x40;\n *(s16 *)(param_1 + 2) = *(s16 *)(param_1 + 2) + 1;\n }\n}\n"} diff --git a/src/ov_SC01_080/ov_SC01_080_jr_8017AE2C.c b/src/ov_SC01_080/ov_SC01_080_jr_8017AE2C.c index df4b64e04..5c96721ed 100644 --- a/src/ov_SC01_080/ov_SC01_080_jr_8017AE2C.c +++ b/src/ov_SC01_080/ov_SC01_080_jr_8017AE2C.c @@ -6102,13 +6102,6 @@ extern s32 D_80127188; void func_801809E4(s32 param_1) { s16 i; - /* cookbook s.17 register pin: the 0x2C mask is a loop-invariant pseudo live - across jal func_801291C0, so it needs a call-saved reg. Every pin-free - spelling tried (decl order, s32/u16/int, a separate k var for 0x19) - allocates it $s2 and gives the 0x19 hoist $s3 -- the exact inverse of the - target (21-ins residual, register-only). Pinning $s3 = $19 restores the - target allocation. */ - register s16 mask __asm__("$19"); // !FAKE: pin $19 — NEEDED DIFFERS (P36 rung B tus7) u8 *p; if (*(s32 *)(param_1 + 0x1C) != 0) { @@ -6130,84 +6123,94 @@ void func_801809E4(s32 param_1) { } i = i + 1; } while (i < 1); - mask = 0xFF; - i = 0; - do { - p = func_801291C0(); - if (p != 0) { - *(u16 *)p = 0x19; - *(u16 *)(p + 0x2C) = mask; - *(s32 *)(p + 0x34) = (s32)&D_801C5D40 + (*(s16 *)(param_1 + 0xDC) << 5); - *(s16 *)(param_1 + 0xDC) = *(s16 *)(param_1 + 0xDC) + 1; - if (*(s16 *)(param_1 + 0xDC) >= 0xC0) { - *(s16 *)(param_1 + 0xDC) = 0; + { + s16 mask = 0xFF; + i = 0; + do { + p = func_801291C0(); + if (p != 0) { + *(u16 *)p = 0x19; + *(u16 *)(p + 0x2C) = mask; + *(s32 *)(p + 0x34) = (s32)&D_801C5D40 + (*(s16 *)(param_1 + 0xDC) << 5); + *(s16 *)(param_1 + 0xDC) = *(s16 *)(param_1 + 0xDC) + 1; + if (*(s16 *)(param_1 + 0xDC) >= 0xC0) { + *(s16 *)(param_1 + 0xDC) = 0; + } } - } - i = i + 1; - } while (i < 1); - mask = 0x1FF; - i = 0; - do { - p = func_801291C0(); - if (p != 0) { - *(u16 *)p = 0x19; - *(u16 *)(p + 0x2C) = mask; - *(s32 *)(p + 0x34) = (s32)&D_801C5D40 + (*(s16 *)(param_1 + 0xDC) << 5); - *(s16 *)(param_1 + 0xDC) = *(s16 *)(param_1 + 0xDC) + 1; - if (*(s16 *)(param_1 + 0xDC) >= 0xC0) { - *(s16 *)(param_1 + 0xDC) = 0; + i = i + 1; + } while (i < 1); + } + { + s16 mask = 0x1FF; + i = 0; + do { + p = func_801291C0(); + if (p != 0) { + *(u16 *)p = 0x19; + *(u16 *)(p + 0x2C) = mask; + *(s32 *)(p + 0x34) = (s32)&D_801C5D40 + (*(s16 *)(param_1 + 0xDC) << 5); + *(s16 *)(param_1 + 0xDC) = *(s16 *)(param_1 + 0xDC) + 1; + if (*(s16 *)(param_1 + 0xDC) >= 0xC0) { + *(s16 *)(param_1 + 0xDC) = 0; + } } - } - i = i + 1; - } while (i < 1); - mask = 0x3FF; - i = 0; - do { - p = func_801291C0(); - if (p != 0) { - *(u16 *)p = 0x19; - *(u16 *)(p + 0x2C) = mask; - *(s32 *)(p + 0x34) = (s32)&D_801C5D40 + (*(s16 *)(param_1 + 0xDC) << 5); - *(s16 *)(param_1 + 0xDC) = *(s16 *)(param_1 + 0xDC) + 1; - if (*(s16 *)(param_1 + 0xDC) >= 0xC0) { - *(s16 *)(param_1 + 0xDC) = 0; + i = i + 1; + } while (i < 1); + } + { + s16 mask = 0x3FF; + i = 0; + do { + p = func_801291C0(); + if (p != 0) { + *(u16 *)p = 0x19; + *(u16 *)(p + 0x2C) = mask; + *(s32 *)(p + 0x34) = (s32)&D_801C5D40 + (*(s16 *)(param_1 + 0xDC) << 5); + *(s16 *)(param_1 + 0xDC) = *(s16 *)(param_1 + 0xDC) + 1; + if (*(s16 *)(param_1 + 0xDC) >= 0xC0) { + *(s16 *)(param_1 + 0xDC) = 0; + } } - } - i = i + 1; - } while (i < 2); + i = i + 1; + } while (i < 2); + } } else { - mask = 0x3FF; - i = 0; - do { - p = func_801291C0(); - if (p != 0) { - *(u16 *)p = 0x19; - *(u16 *)(p + 0x2C) = mask; - *(s32 *)(p + 0x34) = (s32)&D_801C5D40 + (*(s16 *)(param_1 + 0xDC) << 5); - *(s16 *)(param_1 + 0xDC) = *(s16 *)(param_1 + 0xDC) + 1; - if (*(s16 *)(param_1 + 0xDC) >= 0xC0) { - *(s16 *)(param_1 + 0xDC) = 0; + { + s16 mask = 0x3FF; + i = 0; + do { + p = func_801291C0(); + if (p != 0) { + *(u16 *)p = 0x19; + *(u16 *)(p + 0x2C) = mask; + *(s32 *)(p + 0x34) = (s32)&D_801C5D40 + (*(s16 *)(param_1 + 0xDC) << 5); + *(s16 *)(param_1 + 0xDC) = *(s16 *)(param_1 + 0xDC) + 1; + if (*(s16 *)(param_1 + 0xDC) >= 0xC0) { + *(s16 *)(param_1 + 0xDC) = 0; + } } - } - i = i + 1; - } while (i < 2); + i = i + 1; + } while (i < 2); + } } if (D_80127188 == 3) { - mask = -0x7C01; - i = 0; - do { - p = func_801291C0(); - if (p != 0) { - *(u16 *)p = 0x19; - *(u16 *)(p + 0x2C) = mask; - *(s32 *)(p + 0x34) = (s32)&D_801C5D40 + (*(s16 *)(param_1 + 0xDC) << 5); - *(s16 *)(param_1 + 0xDC) = *(s16 *)(param_1 + 0xDC) + 1; - if (*(s16 *)(param_1 + 0xDC) >= 0xC0) { - *(s16 *)(param_1 + 0xDC) = 0; + { + s16 mask = -0x7C01; + i = 0; + do { + p = func_801291C0(); + if (p != 0) { + *(u16 *)p = 0x19; + *(u16 *)(p + 0x2C) = mask; + *(s32 *)(p + 0x34) = (s32)&D_801C5D40 + (*(s16 *)(param_1 + 0xDC) << 5); + *(s16 *)(param_1 + 0xDC) = *(s16 *)(param_1 + 0xDC) + 1; + if (*(s16 *)(param_1 + 0xDC) >= 0xC0) { + *(s16 *)(param_1 + 0xDC) = 0; + } } - } - i = i + 1; - } while (i < 0x80); + i = i + 1; + } while (i < 0x80); + } *(s32 *)(param_1 + 0x1C) = 0x40; *(s16 *)(param_1 + 2) = *(s16 *)(param_1 + 2) + 1; }