From a2552106bcd0feee3712a59dd174c8f110aaaaa3 Mon Sep 17 00:00:00 2001 From: Drew T <50529377+Druthulu@users.noreply.github.com> Date: Fri, 11 Sep 2026 06:28:46 -0600 Subject: [PATCH] =?UTF-8?q?phase-36:=20S104=20s104=5Fe37=20=E2=80=94=20fun?= =?UTF-8?q?c=5F801860E8=20banked=20at=200=20through=20the=20whole-object?= =?UTF-8?q?=20gate=20+=20propagated=20=E2=80=94=20e37=20copy?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .run/P36/delever/calibration.json | 344 +++++++++++----------- .run/P36/delever/ledger.jsonl | 1 + src/ov_SC03_118/ov_SC03_118_jr_80183830.c | 21 +- 3 files changed, 178 insertions(+), 188 deletions(-) diff --git a/.run/P36/delever/calibration.json b/.run/P36/delever/calibration.json index f6a9cb8a8..bb46a04eb 100644 --- a/.run/P36/delever/calibration.json +++ b/.run/P36/delever/calibration.json @@ -1,5 +1,5 @@ { - "head": "2e5b6f070", + "head": "a7ce4408a", "stamp": "15956e4a96c4", "generated": "2026-09-11 06:28", "aliases": [ @@ -21,204 +21,204 @@ "main": { "objects": 85, "identical": 85, - "seconds": 6.188999999999999, + "seconds": 6.181999999999999, "mean_s": 0.073 }, "ov_SC03_014": { "objects": 32, "identical": 32, - "seconds": 4.377999999999998, - "mean_s": 0.137 + "seconds": 4.3340000000000005, + "mean_s": 0.135 }, "ov_SC03_015": { "objects": 32, "identical": 32, - "seconds": 4.203, + "seconds": 4.184, "mean_s": 0.131 }, "ov_SC04_011": { "objects": 28, "identical": 28, - "seconds": 3.6220000000000003, - "mean_s": 0.129 + "seconds": 3.6800000000000006, + "mean_s": 0.131 } }, "per_object_seconds": { - "build/src/800.o": 0.686, - "build/src/800_b.o": 0.075, - "build/src/800_b_2.o": 0.273, - "build/src/800_b_o0a.o": 0.058, - "build/src/800_c.o": 0.184, - "build/src/800b2.o": 0.075, - "build/src/apicard1.o": 0.062, - "build/src/apicard2.o": 0.06, - "build/src/apicard3.o": 0.079, - "build/src/apicard4.o": 0.087, - "build/src/apicard5.o": 0.057, - "build/src/apicard6.o": 0.08, - "build/src/apicard7.o": 0.054, - "build/src/boot.o": 0.102, - "build/src/gap.o": 0.075, - "build/src/libapi1.o": 0.057, - "build/src/libapi2.o": 0.056, - "build/src/libc2_1.o": 0.058, - "build/src/libc2_2.o": 0.054, - "build/src/libcd1.o": 0.068, - "build/src/libcd2.o": 0.052, - "build/src/libetc.o": 0.058, - "build/src/libgpu.o": 0.06, - "build/src/libgpu2.o": 0.065, - "build/src/libgs1.o": 0.059, - "build/src/libgs2.o": 0.051, - "build/src/libgs3.o": 0.049, - "build/src/libgs4.o": 0.054, + "build/src/800.o": 0.718, + "build/src/800_b.o": 0.069, + "build/src/800_b_2.o": 0.281, + "build/src/800_b_o0a.o": 0.056, + "build/src/800_c.o": 0.173, + "build/src/800b2.o": 0.072, + "build/src/apicard1.o": 0.061, + "build/src/apicard2.o": 0.067, + "build/src/apicard3.o": 0.061, + "build/src/apicard4.o": 0.075, + "build/src/apicard5.o": 0.069, + "build/src/apicard6.o": 0.075, + "build/src/apicard7.o": 0.063, + "build/src/boot.o": 0.094, + "build/src/gap.o": 0.063, + "build/src/libapi1.o": 0.053, + "build/src/libapi2.o": 0.058, + "build/src/libc2_1.o": 0.064, + "build/src/libc2_2.o": 0.048, + "build/src/libcd1.o": 0.074, + "build/src/libcd2.o": 0.056, + "build/src/libetc.o": 0.059, + "build/src/libgpu.o": 0.053, + "build/src/libgpu2.o": 0.073, + "build/src/libgs1.o": 0.056, + "build/src/libgs2.o": 0.054, + "build/src/libgs3.o": 0.047, + "build/src/libgs4.o": 0.063, "build/src/libgs5.o": 0.052, - "build/src/libgs6.o": 0.065, + "build/src/libgs6.o": 0.073, "build/src/libgs7.o": 0.059, - "build/src/libgs8.o": 0.053, - "build/src/libgte1.o": 0.056, - "build/src/libgte10.o": 0.063, + "build/src/libgs8.o": 0.06, + "build/src/libgte1.o": 0.058, + "build/src/libgte10.o": 0.054, "build/src/libgte11.o": 0.058, - "build/src/libgte12.o": 0.056, + "build/src/libgte12.o": 0.051, "build/src/libgte13.o": 0.06, - "build/src/libgte14.o": 0.061, - "build/src/libgte15.o": 0.072, - "build/src/libgte16.o": 0.067, - "build/src/libgte17.o": 0.045, - "build/src/libgte18.o": 0.059, - "build/src/libgte19.o": 0.056, - "build/src/libgte2.o": 0.059, - "build/src/libgte20.o": 0.062, - "build/src/libgte21.o": 0.058, - "build/src/libgte22.o": 0.06, - "build/src/libgte23.o": 0.057, - "build/src/libgte24.o": 0.054, - "build/src/libgte25.o": 0.066, - "build/src/libgte26.o": 0.06, - "build/src/libgte27.o": 0.052, - "build/src/libgte28.o": 0.062, - "build/src/libgte29.o": 0.06, - "build/src/libgte3.o": 0.066, - "build/src/libgte30.o": 0.064, - "build/src/libgte4.o": 0.057, - "build/src/libgte5.o": 0.062, - "build/src/libgte6.o": 0.058, - "build/src/libgte7.o": 0.058, - "build/src/libgte8.o": 0.061, - "build/src/libgte9.o": 0.064, - "build/src/libmcrd1.o": 0.07, - "build/src/libmcrd2.o": 0.061, - "build/src/libpad1.o": 0.069, - "build/src/libpad2.o": 0.063, - "build/src/sgap.o": 0.062, - "build/src/sgap_2.o": 0.06, - "build/src/sgap_3.o": 0.059, - "build/src/sgap_4.o": 0.068, - "build/src/sgap_5.o": 0.059, - "build/src/sgap_6.o": 0.054, - "build/src/sgap_8.o": 0.069, - "build/src/snd1.o": 0.065, - "build/src/snd10.o": 0.058, + "build/src/libgte14.o": 0.053, + "build/src/libgte15.o": 0.054, + "build/src/libgte16.o": 0.06, + "build/src/libgte17.o": 0.058, + "build/src/libgte18.o": 0.062, + "build/src/libgte19.o": 0.058, + "build/src/libgte2.o": 0.058, + "build/src/libgte20.o": 0.061, + "build/src/libgte21.o": 0.059, + "build/src/libgte22.o": 0.059, + "build/src/libgte23.o": 0.06, + "build/src/libgte24.o": 0.064, + "build/src/libgte25.o": 0.063, + "build/src/libgte26.o": 0.053, + "build/src/libgte27.o": 0.057, + "build/src/libgte28.o": 0.052, + "build/src/libgte29.o": 0.052, + "build/src/libgte3.o": 0.054, + "build/src/libgte30.o": 0.06, + "build/src/libgte4.o": 0.06, + "build/src/libgte5.o": 0.058, + "build/src/libgte6.o": 0.059, + "build/src/libgte7.o": 0.057, + "build/src/libgte8.o": 0.088, + "build/src/libgte9.o": 0.058, + "build/src/libmcrd1.o": 0.076, + "build/src/libmcrd2.o": 0.062, + "build/src/libpad1.o": 0.059, + "build/src/libpad2.o": 0.065, + "build/src/sgap.o": 0.06, + "build/src/sgap_2.o": 0.063, + "build/src/sgap_3.o": 0.057, + "build/src/sgap_4.o": 0.062, + "build/src/sgap_5.o": 0.061, + "build/src/sgap_6.o": 0.061, + "build/src/sgap_8.o": 0.065, + "build/src/snd1.o": 0.067, + "build/src/snd10.o": 0.063, "build/src/snd11.o": 0.058, - "build/src/snd12.o": 0.059, - "build/src/snd2.o": 0.065, - "build/src/snd3.o": 0.064, - "build/src/snd4.o": 0.06, - "build/src/snd5.o": 0.053, - "build/src/snd6.o": 0.065, - "build/src/snd7.o": 0.06, - "build/src/snd8.o": 0.06, - "build/src/snd9.o": 0.058, - "build/src/ov_SC03_014/ov_SC03_014.o": 0.125, - "build/src/ov_SC03_014/ov_SC03_014_after.o": 0.468, - "build/src/ov_SC03_014/ov_SC03_014_jr_8012ACE0.o": 0.377, + "build/src/snd12.o": 0.055, + "build/src/snd2.o": 0.068, + "build/src/snd3.o": 0.058, + "build/src/snd4.o": 0.048, + "build/src/snd5.o": 0.066, + "build/src/snd6.o": 0.064, + "build/src/snd7.o": 0.065, + "build/src/snd8.o": 0.059, + "build/src/snd9.o": 0.063, + "build/src/ov_SC03_014/ov_SC03_014.o": 0.112, + "build/src/ov_SC03_014/ov_SC03_014_after.o": 0.474, + "build/src/ov_SC03_014/ov_SC03_014_jr_8012ACE0.o": 0.376, "build/src/ov_SC03_014/ov_SC03_014_jr_80135888.o": 0.055, - "build/src/ov_SC03_014/ov_SC03_014_jr_80135A4C.o": 0.054, - "build/src/ov_SC03_014/ov_SC03_014_jr_80135D20.o": 0.118, - "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.109, - "build/src/ov_SC03_014/ov_SC03_014_jr_8013F350.o": 0.072, - "build/src/ov_SC03_014/ov_SC03_014_jr_8013FFD8.o": 0.065, - "build/src/ov_SC03_014/ov_SC03_014_jr_80140608.o": 0.174, - "build/src/ov_SC03_014/ov_SC03_014_jr_8015444C.o": 0.074, - "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.094, - "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.056, - "build/src/ov_SC03_014/ov_SC03_014_jr_8015AE2C.o": 0.08, - "build/src/ov_SC03_014/ov_SC03_014_jr_8015C32C.o": 0.478, - "build/src/ov_SC03_014/ov_SC03_014_jr_8016AB6C.o": 0.266, - "build/src/ov_SC03_014/ov_SC03_014_jr_80171B4C.o": 0.081, - "build/src/ov_SC03_014/ov_SC03_014_jr_801734BC.o": 0.177, - "build/src/ov_SC03_014/ov_SC03_014_jr_801789AC.o": 0.057, - "build/src/ov_SC03_014/ov_SC03_014_jr_80178D40.o": 0.093, - "build/src/ov_SC03_014/ov_SC03_014_jr_8017A4AC.o": 0.054, - "build/src/ov_SC03_014/ov_SC03_014_jr_8017AE2C.o": 0.152, - "build/src/ov_SC03_014/ov_SC03_014_jr_8017EB7C.o": 0.181, - "build/src/ov_SC03_014/ov_SC03_014_jr_80184440.o": 0.049, - "build/src/ov_SC03_014/ov_SC03_014_jr_801848E4.o": 0.253, - "build/src/ov_SC03_014/ov_SC03_014_o0b.o": 0.058, - "build/src/ov_SC03_014/ov_SC03_014_o0c.o": 0.058, - "build/src/ov_SC03_014/ov_SC03_014_o0d.o": 0.052, - "build/src/ov_SC03_014/ov_SC03_014_o0e.o": 0.06, - "build/src/ov_SC03_015/ov_SC03_015.o": 0.119, - "build/src/ov_SC03_015/ov_SC03_015_after.o": 0.472, - "build/src/ov_SC03_015/ov_SC03_015_jr_8012ACE0.o": 0.351, - "build/src/ov_SC03_015/ov_SC03_015_jr_80135888.o": 0.047, - "build/src/ov_SC03_015/ov_SC03_015_jr_80135A4C.o": 0.046, - "build/src/ov_SC03_015/ov_SC03_015_jr_80135D20.o": 0.093, - "build/src/ov_SC03_015/ov_SC03_015_jr_801380E0.o": 0.126, - "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.076, - "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.169, + "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.124, + "build/src/ov_SC03_014/ov_SC03_014_jr_801380E0.o": 0.152, + "build/src/ov_SC03_014/ov_SC03_014_jr_8013C98C.o": 0.099, + "build/src/ov_SC03_014/ov_SC03_014_jr_8013F350.o": 0.07, + "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.183, + "build/src/ov_SC03_014/ov_SC03_014_jr_8015444C.o": 0.069, + "build/src/ov_SC03_014/ov_SC03_014_jr_80154C24.o": 0.16, + "build/src/ov_SC03_014/ov_SC03_014_jr_801588CC.o": 0.099, + "build/src/ov_SC03_014/ov_SC03_014_jr_80159C84.o": 0.06, + "build/src/ov_SC03_014/ov_SC03_014_jr_8015A3C8.o": 0.063, + "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.461, + "build/src/ov_SC03_014/ov_SC03_014_jr_8016AB6C.o": 0.243, + "build/src/ov_SC03_014/ov_SC03_014_jr_80171B4C.o": 0.091, + "build/src/ov_SC03_014/ov_SC03_014_jr_801734BC.o": 0.176, + "build/src/ov_SC03_014/ov_SC03_014_jr_801789AC.o": 0.053, + "build/src/ov_SC03_014/ov_SC03_014_jr_80178D40.o": 0.09, + "build/src/ov_SC03_014/ov_SC03_014_jr_8017A4AC.o": 0.06, + "build/src/ov_SC03_014/ov_SC03_014_jr_8017AE2C.o": 0.156, + "build/src/ov_SC03_014/ov_SC03_014_jr_8017EB7C.o": 0.161, + "build/src/ov_SC03_014/ov_SC03_014_jr_80184440.o": 0.041, + "build/src/ov_SC03_014/ov_SC03_014_jr_801848E4.o": 0.258, + "build/src/ov_SC03_014/ov_SC03_014_o0b.o": 0.053, + "build/src/ov_SC03_014/ov_SC03_014_o0c.o": 0.056, + "build/src/ov_SC03_014/ov_SC03_014_o0d.o": 0.05, + "build/src/ov_SC03_014/ov_SC03_014_o0e.o": 0.068, + "build/src/ov_SC03_015/ov_SC03_015.o": 0.114, + "build/src/ov_SC03_015/ov_SC03_015_after.o": 0.471, + "build/src/ov_SC03_015/ov_SC03_015_jr_8012ACE0.o": 0.372, + "build/src/ov_SC03_015/ov_SC03_015_jr_80135888.o": 0.052, + "build/src/ov_SC03_015/ov_SC03_015_jr_80135A4C.o": 0.044, + "build/src/ov_SC03_015/ov_SC03_015_jr_80135D20.o": 0.091, + "build/src/ov_SC03_015/ov_SC03_015_jr_801380E0.o": 0.147, + "build/src/ov_SC03_015/ov_SC03_015_jr_8013C98C.o": 0.085, + "build/src/ov_SC03_015/ov_SC03_015_jr_8013F350.o": 0.065, + "build/src/ov_SC03_015/ov_SC03_015_jr_8013FFD8.o": 0.055, + "build/src/ov_SC03_015/ov_SC03_015_jr_80140608.o": 0.168, "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.154, - "build/src/ov_SC03_015/ov_SC03_015_jr_801588CC.o": 0.082, - "build/src/ov_SC03_015/ov_SC03_015_jr_80159C84.o": 0.063, - "build/src/ov_SC03_015/ov_SC03_015_jr_8015A3C8.o": 0.067, - "build/src/ov_SC03_015/ov_SC03_015_jr_8015AE2C.o": 0.082, - "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.255, - "build/src/ov_SC03_015/ov_SC03_015_jr_80171B4C.o": 0.101, - "build/src/ov_SC03_015/ov_SC03_015_jr_801734BC.o": 0.185, + "build/src/ov_SC03_015/ov_SC03_015_jr_80154C24.o": 0.146, + "build/src/ov_SC03_015/ov_SC03_015_jr_801588CC.o": 0.078, + "build/src/ov_SC03_015/ov_SC03_015_jr_80159C84.o": 0.06, + "build/src/ov_SC03_015/ov_SC03_015_jr_8015A3C8.o": 0.066, + "build/src/ov_SC03_015/ov_SC03_015_jr_8015AE2C.o": 0.08, + "build/src/ov_SC03_015/ov_SC03_015_jr_8015C32C.o": 0.42, + "build/src/ov_SC03_015/ov_SC03_015_jr_8016AB6C.o": 0.251, + "build/src/ov_SC03_015/ov_SC03_015_jr_80171B4C.o": 0.1, + "build/src/ov_SC03_015/ov_SC03_015_jr_801734BC.o": 0.192, "build/src/ov_SC03_015/ov_SC03_015_jr_801789AC.o": 0.051, - "build/src/ov_SC03_015/ov_SC03_015_jr_80178D40.o": 0.092, - "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.137, - "build/src/ov_SC03_015/ov_SC03_015_jr_8017EB7C.o": 0.169, - "build/src/ov_SC03_015/ov_SC03_015_jr_80184440.o": 0.053, - "build/src/ov_SC03_015/ov_SC03_015_jr_801848E4.o": 0.266, - "build/src/ov_SC03_015/ov_SC03_015_o0b.o": 0.051, - "build/src/ov_SC03_015/ov_SC03_015_o0c.o": 0.061, - "build/src/ov_SC03_015/ov_SC03_015_o0d.o": 0.048, - "build/src/ov_SC03_015/ov_SC03_015_o0e.o": 0.065, - "build/src/ov_SC04_011/ov_SC04_011.o": 0.094, - "build/src/ov_SC04_011/ov_SC04_011_after.o": 0.398, - "build/src/ov_SC04_011/ov_SC04_011_jr_8012ACE0.o": 0.323, - "build/src/ov_SC04_011/ov_SC04_011_jr_80135888.o": 0.05, - "build/src/ov_SC04_011/ov_SC04_011_jr_80135A4C.o": 0.054, - "build/src/ov_SC04_011/ov_SC04_011_jr_80135D20.o": 0.097, - "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.109, - "build/src/ov_SC04_011/ov_SC04_011_jr_8013F350.o": 0.066, - "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.154, - "build/src/ov_SC04_011/ov_SC04_011_jr_8015444C.o": 0.071, + "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.058, + "build/src/ov_SC03_015/ov_SC03_015_jr_8017AE2C.o": 0.153, + "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.041, + "build/src/ov_SC03_015/ov_SC03_015_jr_801848E4.o": 0.254, + "build/src/ov_SC03_015/ov_SC03_015_o0b.o": 0.061, + "build/src/ov_SC03_015/ov_SC03_015_o0c.o": 0.055, + "build/src/ov_SC03_015/ov_SC03_015_o0d.o": 0.054, + "build/src/ov_SC03_015/ov_SC03_015_o0e.o": 0.062, + "build/src/ov_SC04_011/ov_SC04_011.o": 0.113, + "build/src/ov_SC04_011/ov_SC04_011_after.o": 0.407, + "build/src/ov_SC04_011/ov_SC04_011_jr_8012ACE0.o": 0.315, + "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.052, + "build/src/ov_SC04_011/ov_SC04_011_jr_80135D20.o": 0.098, + "build/src/ov_SC04_011/ov_SC04_011_jr_801380E0.o": 0.155, + "build/src/ov_SC04_011/ov_SC04_011_jr_8013C98C.o": 0.099, + "build/src/ov_SC04_011/ov_SC04_011_jr_8013F350.o": 0.072, + "build/src/ov_SC04_011/ov_SC04_011_jr_8013FFD8.o": 0.063, + "build/src/ov_SC04_011/ov_SC04_011_jr_80140608.o": 0.158, + "build/src/ov_SC04_011/ov_SC04_011_jr_8015444C.o": 0.064, "build/src/ov_SC04_011/ov_SC04_011_jr_80154C24.o": 0.163, - "build/src/ov_SC04_011/ov_SC04_011_jr_801588CC.o": 0.084, - "build/src/ov_SC04_011/ov_SC04_011_jr_80159C84.o": 0.053, - "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.079, - "build/src/ov_SC04_011/ov_SC04_011_jr_8015C32C.o": 0.327, - "build/src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.o": 0.193, + "build/src/ov_SC04_011/ov_SC04_011_jr_801588CC.o": 0.075, + "build/src/ov_SC04_011/ov_SC04_011_jr_80159C84.o": 0.06, + "build/src/ov_SC04_011/ov_SC04_011_jr_8015A3C8.o": 0.056, + "build/src/ov_SC04_011/ov_SC04_011_jr_8015AE2C.o": 0.091, + "build/src/ov_SC04_011/ov_SC04_011_jr_8015C32C.o": 0.326, + "build/src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.o": 0.204, "build/src/ov_SC04_011/ov_SC04_011_jr_80171B4C.o": 0.087, - "build/src/ov_SC04_011/ov_SC04_011_jr_801734BC.o": 0.153, - "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.075, - "build/src/ov_SC04_011/ov_SC04_011_jr_8017A4AC.o": 0.061, - "build/src/ov_SC04_011/ov_SC04_011_jr_8017AE2C.o": 0.105, - "build/src/ov_SC04_011/ov_SC04_011_jr_8017D494.o": 0.409, + "build/src/ov_SC04_011/ov_SC04_011_jr_801734BC.o": 0.174, + "build/src/ov_SC04_011/ov_SC04_011_jr_801789AC.o": 0.055, + "build/src/ov_SC04_011/ov_SC04_011_jr_80178D40.o": 0.081, + "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.093, + "build/src/ov_SC04_011/ov_SC04_011_jr_8017D494.o": 0.408, "build/src/ov_SC04_011/ov_SC04_011_o0b.o": 0.048, "build/src/ov_SC04_011/ov_SC04_011_o0c.o": 0.052 }, diff --git a/.run/P36/delever/ledger.jsonl b/.run/P36/delever/ledger.jsonl index 2da690635..b2a34e466 100644 --- a/.run/P36/delever/ledger.jsonl +++ b/.run/P36/delever/ledger.jsonl @@ -29569,3 +29569,4 @@ {"ts": "2026-09-11 06:27:52", "label": "s104_e37", "rung": "E", "calib": {"head": "5ade115a2", "stamp": "15956e4a96c4"}, "tu": "src/ov_SC03_095/ov_SC03_095_jr_8017BEBC.c", "fn": "func_8017D960", "addr": 2149046624, "aliases": null, "header": false, "includers": 0, "nhash_before": "ab5492fecf037eb87dedb19e70c8c70772053553", "nhash_after": "b38d5f3e10c039213f90acdf0ae3381d6f043ea7", "source": "propagate:src/ov_SC03_096/ov_SC03_096_jr_8017BEBC.c:func_8017EE6C", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.122, "objects": ["build/src/ov_SC03_095/ov_SC03_095_jr_8017BEBC.o"], "before_text": "void func_8017D960(void *a0) {\n\n extern s32 D_80126B58;\n extern u16 D_80126B62;\n extern u16 D_80126B66;\n extern s16 D_80191B6C[];\n extern s16 D_80191B6E[];\n extern s16 D_80191B70;\n extern s16 D_80191B72;\n extern s32 D_8019BD18;\n\n s16 *p = (s16 *)&D_80126B58;\n s32 flag;\n s32 cond;\n\n __asm__ __volatile__(\"\" : \"=r\"(p) : \"0\"(p)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus9)\n\n flag = 0;\n if (*(s16 *)((char *)a0 + 0x70) == 2) {\n goto CASE2;\n }\n if (*(s16 *)((char *)a0 + 0x70) < 3) {\n goto CASE01;\n }\n if (*(s16 *)((char *)a0 + 0x70) == 3) {\n goto CASE3;\n }\n goto TAIL;\n\nCASE01:\n if (*(s16 *)((char *)a0 + 0x70) < 0) {\n goto TAIL;\n }\n if (*(s16 *)&D_80126B66 < *(s16 *)((char *)a0 + 0xE)) {\n cond = *(s16 *)((char *)a0 + 0xE) + D_80191B6C[*(s16 *)((char *)a0 + 0x70)] < *(s16 *)&D_80126B66;\n goto CHECK;\n }\n goto TAIL;\n\nCASE2:\n if (*(s16 *)&D_80126B66 > *(s16 *)((char *)a0 + 0xE)) {\n cond = *(s16 *)&D_80126B66 < *(s16 *)((char *)a0 + 0xE) + D_80191B70;\n goto CHECK;\n }\n goto TAIL;\n\nCASE3:\n if (*(s16 *)&D_80126B62 > *(s16 *)((char *)a0 + 0xA)) {\n if (*(s16 *)&D_80126B62 < *(s16 *)((char *)a0 + 0xA) + D_80191B72) {\n goto SUCCESS;\n }\n }\n {\n s16 base = p[3];\n s16 posx = *(s16 *)((char *)a0 + 0x6);\n if (base < posx) {\n __asm__ __volatile__(\"\" ::: \"memory\"); // !FAKE: barrier memory \u2014 NEEDED DIFFERS (P36 rung B tus9)\n cond = posx + D_80191B6E[*(s16 *)((char *)a0 + 0x70)] < base;\n goto CHECK;\n }\n }\n goto TAIL;\n\nCHECK:\n if (!cond) {\n goto TAIL;\n }\nSUCCESS:\n flag = 1;\n\nTAIL:\n if (flag != 0 && D_8019BD18 == 0) {\n func_8017DD98(0x12F);\n ((void (*)(void *))func_8017DB10)(a0);\n } else {\n if (*(s16 *)((char *)a0 + 0xFE) != 0) {\n s16 t = *(s16 *)((char *)a0 + 0xFE) - 0x10;\n *(s16 *)((char *)a0 + 0xFE) = t;\n if (t < 0) {\n *(s16 *)((char *)a0 + 0xFE) = 0;\n }\n }\n }\n func_8017DD30(a0);\n}\n", "after_text": "void func_8017D960(void *a0) {\n\n extern s32 D_80126B58;\n extern u16 D_80126B62;\n extern u16 D_80126B66;\n extern s16 D_80191B6C[];\n extern s16 D_80191B6E[];\n extern s16 D_80191B70;\n extern s16 D_80191B72;\n extern s32 D_8019BD18;\n\n s16 *p = (s16 *)&D_80126B58;\n s32 flag;\n\n flag = 0;\n switch (*(s16 *)((char *)a0 + 0x70)) {\n case 0:\n case 1:\n if (*(s16 *)&D_80126B66 < *(s16 *)((char *)a0 + 0xE) &&\n *(s16 *)((char *)a0 + 0xE) + D_80191B6C[*(s16 *)((char *)a0 + 0x70)] < *(s16 *)&D_80126B66) {\n flag = 1;\n }\n break;\n case 2:\n if (*(s16 *)&D_80126B66 > *(s16 *)((char *)a0 + 0xE) &&\n *(s16 *)&D_80126B66 < *(s16 *)((char *)a0 + 0xE) + D_80191B70) {\n flag = 1;\n }\n break;\n case 3:\n if (*(s16 *)&D_80126B62 > *(s16 *)((char *)a0 + 0xA) &&\n *(s16 *)&D_80126B62 < *(s16 *)((char *)a0 + 0xA) + D_80191B72) {\n flag = 1;\n } else if (p[3] < *(s16 *)((char *)a0 + 0x6) &&\n *(s16 *)((char *)a0 + 0x6) + D_80191B6E[*(s16 *)((char *)a0 + 0x70)] < p[3]) {\n flag = 1;\n }\n break;\n }\n\n if (flag != 0 && D_8019BD18 == 0) {\n func_8017DD98(0x12F);\n ((void (*)(void *))func_8017DB10)(a0);\n } else {\n if (*(s16 *)((char *)a0 + 0xFE) != 0) {\n s16 t = *(s16 *)((char *)a0 + 0xFE) - 0x10;\n *(s16 *)((char *)a0 + 0xFE) = t;\n if (t < 0) {\n *(s16 *)((char *)a0 + 0xFE) = 0;\n }\n }\n }\n func_8017DD30(a0);\n}\n"} {"ts": "2026-09-11 06:28:10", "label": "s104_e37", "rung": "E", "calib": {"head": "158da88a6", "stamp": "15956e4a96c4"}, "tu": "src/ov_SC03_093/ov_SC03_093_jr_8017D898.c", "fn": "func_8017F398", "addr": 2149053336, "aliases": null, "header": false, "includers": 0, "nhash_before": "d060e1b8e21a3ee5b9177adf698c03d5fa83c13e", "nhash_after": "94a6c74c96665cd7b3da649f46ca27bcf00fa4bb", "source": ".run/P36/agents/ov_SC03_097__func_8017F7E4/scratch/copies/ov_SC03_093__func_8017F398.c", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.123, "objects": ["build/src/ov_SC03_093/ov_SC03_093_jr_8017D898.o"], "before_text": "void func_8017F398(void *a0) {\n\n s16 *p = (s16 *)&D_80126B58;\n s32 flag;\n s32 cond;\n\n __asm__ __volatile__(\"\" : \"=r\"(p) : \"0\"(p)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus9)\n\n flag = 0;\n if (*(s16 *)((char *)a0 + 0x70) == 2) {\n goto CASE2;\n }\n if (*(s16 *)((char *)a0 + 0x70) < 3) {\n goto CASE01;\n }\n if (*(s16 *)((char *)a0 + 0x70) == 3) {\n goto CASE3;\n }\n goto TAIL;\n\nCASE01:\n if (*(s16 *)((char *)a0 + 0x70) < 0) {\n goto TAIL;\n }\n if (*(s16 *)&D_80126B66 < *(s16 *)((char *)a0 + 0xE)) {\n cond = *(s16 *)((char *)a0 + 0xE) + D_801A1228[*(s16 *)((char *)a0 + 0x70)] < *(s16 *)&D_80126B66;\n goto CHECK;\n }\n goto TAIL;\n\nCASE2:\n if (*(s16 *)&D_80126B66 > *(s16 *)((char *)a0 + 0xE)) {\n cond = *(s16 *)&D_80126B66 < *(s16 *)((char *)a0 + 0xE) + D_801A122C;\n goto CHECK;\n }\n goto TAIL;\n\nCASE3:\n if (*(s16 *)&D_80126B62 > *(s16 *)((char *)a0 + 0xA)) {\n if (*(s16 *)&D_80126B62 < *(s16 *)((char *)a0 + 0xA) + D_801A122E) {\n goto SUCCESS;\n }\n }\n {\n s16 base = p[3];\n s16 posx = *(s16 *)((char *)a0 + 0x6);\n if (base < posx) {\n __asm__ __volatile__(\"\" ::: \"memory\"); // !FAKE: barrier memory \u2014 NEEDED DIFFERS (P36 rung B tus9)\n cond = posx + D_801A122A[*(s16 *)((char *)a0 + 0x70)] < base;\n goto CHECK;\n }\n }\n goto TAIL;\n\nCHECK:\n if (!cond) {\n goto TAIL;\n }\nSUCCESS:\n flag = 1;\n\nTAIL:\n if (flag != 0 && D_801CC560 == 0) {\n func_8017F7D0(0x12F);\n func_8017F548(a0);\n } else {\n if (*(s16 *)((char *)a0 + 0xFE) != 0) {\n s16 t = *(s16 *)((char *)a0 + 0xFE) - 0x10;\n *(s16 *)((char *)a0 + 0xFE) = t;\n if (t < 0) {\n *(s16 *)((char *)a0 + 0xFE) = 0;\n }\n }\n }\n func_8017F768(a0);\n}\n", "after_text": "void func_8017F398(void *a0) {\n\n extern s32 D_80126B58;\n extern u16 D_80126B62;\n extern u16 D_80126B66;\n extern s16 D_801A1228[];\n extern s16 D_801A122A[];\n extern s16 D_801A122C;\n extern s16 D_801A122E;\n extern s32 D_801CC560;\n\n s16 *p = (s16 *)&D_80126B58;\n s32 flag;\n\n flag = 0;\n switch (*(s16 *)((char *)a0 + 0x70)) {\n case 0:\n case 1:\n if (*(s16 *)&D_80126B66 < *(s16 *)((char *)a0 + 0xE) &&\n *(s16 *)((char *)a0 + 0xE) + D_801A1228[*(s16 *)((char *)a0 + 0x70)] < *(s16 *)&D_80126B66) {\n flag = 1;\n }\n break;\n case 2:\n if (*(s16 *)&D_80126B66 > *(s16 *)((char *)a0 + 0xE) &&\n *(s16 *)&D_80126B66 < *(s16 *)((char *)a0 + 0xE) + D_801A122C) {\n flag = 1;\n }\n break;\n case 3:\n if (*(s16 *)&D_80126B62 > *(s16 *)((char *)a0 + 0xA) &&\n *(s16 *)&D_80126B62 < *(s16 *)((char *)a0 + 0xA) + D_801A122E) {\n flag = 1;\n } else if (p[3] < *(s16 *)((char *)a0 + 0x6) &&\n *(s16 *)((char *)a0 + 0x6) + D_801A122A[*(s16 *)((char *)a0 + 0x70)] < p[3]) {\n flag = 1;\n }\n break;\n }\n\n if (flag != 0 && D_801CC560 == 0) {\n func_8017F7D0(0x12F);\n func_8017F548(a0);\n } else {\n if (*(s16 *)((char *)a0 + 0xFE) != 0) {\n s16 t = *(s16 *)((char *)a0 + 0xFE) - 0x10;\n *(s16 *)((char *)a0 + 0xFE) = t;\n if (t < 0) {\n *(s16 *)((char *)a0 + 0xFE) = 0;\n }\n }\n }\n func_8017F768(a0);\n}\n"} {"ts": "2026-09-11 06:28:28", "label": "s104_e37", "rung": "E", "calib": {"head": "2e5b6f070", "stamp": "15956e4a96c4"}, "tu": "src/ov_SC03_014/ov_SC03_014_jr_801848E4.c", "fn": "func_8018B23C", "addr": 2149102140, "aliases": null, "header": false, "includers": 0, "nhash_before": "19c4a254ad608eddb5c235d7b2eeda0e12109828", "nhash_after": "dc6a96672eef738a503d3a12ef6199c8ae42b884", "source": ".run/P36/agents/ov_SC03_097__func_80182498/scratch/copies/ov_SC03_014__func_8018B23C.c", "verdict": "LEVER-FREE", "sites": [], "compiles": 2, "seconds": 0.33, "objects": ["build/src/ov_SC03_014/ov_SC03_014_jr_801848E4.o", "build/src/ov_SC03_015/ov_SC03_015_jr_801848E4.o"], "before_text": "void func_8018B23C(s32 a0) {\n\n extern s16 D_801EACE4;\n extern u8 *D_800A5E60;\n extern s32 D_800AE620;\n extern u8 D_800A6518[];\n extern Ot_8018B23C D_800A651C[];\n\n s32 m[8]; /* sp+0x10 */\n u8 sv[8]; /* sp+0x30 */\n u16 out[4]; /* sp+0x38 */\n s32 scale[4]; /* sp+0x40 */\n\n u8 *q;\n Rec_8018B23C *p;\n s32 x;\n s32 y;\n s32 ang;\n\n q = D_800A5E60;\n\n *(Mat32_8018B23C *)m = *(Mat32_8018B23C *)&D_800AE620;\n\n D_800A5E60 = q + 0x14;\n *(u8 *)(q + 3) = 4;\n *(u8 *)(q + 7) = 0x22;\n *(u8 *)(q + 4) = D_801EACE0;\n *(u8 *)(q + 5) = D_801EACE1;\n *(u8 *)(q + 6) = D_801EACE2;\n\n p = (Rec_8018B23C *)((s32)&D_801EACE4 + (a0 << 4));\n x = p->fA + (u16)D_801EACD8;\n y = p->fE + (u16)D_801EACDA;\n RotMatrixZ(p->f6, m);\n\n scale[0] = *(s16 *)((s32)p + 2);\n scale[1] = *(s16 *)((s32)p + 2);\n scale[2] = *(s16 *)((s32)p + 2);\n func_8004901C(m, scale);\n\n *(s16 *)(sv + 4) = 0;\n *(s16 *)(sv + 2) = 0;\n *(s16 *)(sv + 0) = p->f0;\n {\n void *svp = sv;\n void *outp = out;\n ApplyMatrixSV(m, svp, outp);\n __asm__ __volatile__(\"\" : \"=r\"(svp)); // !FAKE: launder out-only \u2014 NEEDED DIFFERS (P36 rung B tus10)\n __asm__ __volatile__(\"\" : \"=r\"(outp)); // !FAKE: launder out-only \u2014 NEEDED DIFFERS (P36 rung B tus10)\n }\n\n *(s16 *)(q + 0x8) = x + ((s16)out[0] >> 1) * 3;\n *(s16 *)(q + 0xA) = y + ((s16)out[1] >> 1) * 3;\n *(s16 *)(q + 0xC) = x - ((s16)out[0] >> 1);\n *(s16 *)(q + 0xE) = y - ((s16)out[1] >> 1);\n x = x + out[0];\n *(s16 *)(q + 0x10) = x;\n y = y + out[1];\n *(s16 *)(q + 0x12) = y;\n\n ang = -0x400;\n if (p->f0 & 1) {\n ang = 0x400;\n }\n RotMatrixZ(ang, m);\n\n *(s16 *)(sv + 0) = 2;\n {\n /* lever C: sp+0x10 IS &m, but spelled so cse cannot fold it to $s4 */\n register u8 *spr __asm__(\"$29\"); // !FAKE: pin $29 \u2014 NEEDED DIFFERS (P36 rung B tus10)\n ApplyMatrixSV(spr + 0x10, sv, out);\n }\n\n *(s16 *)(q + 0x10) = *(u16 *)(q + 0x10) + out[0];\n *(s16 *)(q + 0x12) = *(u16 *)(q + 0x12) + out[1];\n\n {\n Bidx_8018B23C *bp = (Bidx_8018B23C *)&D_800B9A02;\n\n /* addPrim(&D_800A651C[bp->f].a[0x10], q) */\n ((PTag_8018B23C *)q)->addr =\n ((PTag_8018B23C *)(D_800A651C[bp->f].a + 0x40))->addr;\n ((PTag_8018B23C *)(D_800A651C[bp->f].a + 0x40))->addr = (u32)q;\n func_80016638(&D_800A6518[bp->f * 20], 0x10, 1);\n }\n}\n", "after_text": "void func_8018B23C(s32 a0) {\n\n extern s16 D_801EACE4;\n extern u8 *D_800A5E60;\n extern s32 D_800AE620;\n extern u8 D_800A6518[];\n extern Ot_8018B23C D_800A651C[];\n\n s32 m[8]; /* sp+0x10 */\n u8 sv[8]; /* sp+0x30 */\n u16 out[4]; /* sp+0x38 */\n s32 scale[4]; /* sp+0x40 */\n\n u8 *q;\n Rec_8018B23C *p;\n s32 x;\n s32 y;\n\n q = D_800A5E60;\n\n *(Mat32_8018B23C *)m = *(Mat32_8018B23C *)&D_800AE620;\n\n D_800A5E60 = q + 0x14;\n *(u8 *)(q + 3) = 4;\n *(u8 *)(q + 7) = 0x22;\n *(u8 *)(q + 4) = D_801EACE0;\n *(u8 *)(q + 5) = D_801EACE1;\n *(u8 *)(q + 6) = D_801EACE2;\n\n p = (Rec_8018B23C *)((s32)&D_801EACE4 + (a0 << 4));\n x = p->fA + (u16)D_801EACD8;\n y = p->fE + (u16)D_801EACDA;\n RotMatrixZ(p->f6, m);\n\n scale[0] = *(s16 *)((s32)p + 2);\n scale[1] = *(s16 *)((s32)p + 2);\n scale[2] = *(s16 *)((s32)p + 2);\n func_8004901C(m, scale);\n\n *(s16 *)(sv + 4) = 0;\n *(s16 *)(sv + 2) = 0;\n *(s16 *)(sv + 0) = p->f0;\n ApplyMatrixSV(m, sv, out);\n\n *(s16 *)(q + 0x8) = x + ((s16)out[0] >> 1) * 3;\n *(s16 *)(q + 0xA) = y + ((s16)out[1] >> 1) * 3;\n *(s16 *)(q + 0xC) = x - ((s16)out[0] >> 1);\n *(s16 *)(q + 0xE) = y - ((s16)out[1] >> 1);\n x = x + out[0];\n *(s16 *)(q + 0x10) = x;\n y = y + out[1];\n *(s16 *)(q + 0x12) = y;\n\n if (p->f0 & 1) {\n RotMatrixZ(0x400, m);\n } else {\n RotMatrixZ(-0x400, m);\n }\n\n *(s16 *)(sv + 0) = 2;\n ApplyMatrixSV(m, sv, out);\n\n *(s16 *)(q + 0x10) = *(u16 *)(q + 0x10) + out[0];\n *(s16 *)(q + 0x12) = *(u16 *)(q + 0x12) + out[1];\n\n {\n Bidx_8018B23C *bp = (Bidx_8018B23C *)&D_800B9A02;\n\n /* addPrim(&D_800A651C[bp->f].a[0x10], q) */\n ((PTag_8018B23C *)q)->addr =\n ((PTag_8018B23C *)(D_800A651C[bp->f].a + 0x40))->addr;\n ((PTag_8018B23C *)(D_800A651C[bp->f].a + 0x40))->addr = (u32)q;\n func_80016638(&D_800A6518[bp->f * 20], 0x10, 1);\n }\n}\n"} +{"ts": "2026-09-11 06:28:44", "label": "s104_e37", "rung": "E", "calib": {"head": "a7ce4408a", "stamp": "15956e4a96c4"}, "tu": "src/ov_SC03_118/ov_SC03_118_jr_80183830.c", "fn": "func_801860E8", "addr": 2149081320, "aliases": null, "header": false, "includers": 0, "nhash_before": "70b3b4ae9bba7a37fb266487f217cfb6dfbfeaaf", "nhash_after": "49ce409bb746212295020c003799942c8e57a03c", "source": ".run/P36/agents/ov_SC03_097__func_80182498/scratch/copies/ov_SC03_118__func_801860E8.c", "verdict": "LEVER-FREE", "sites": [], "compiles": 2, "seconds": 0.164, "objects": ["build/src/ov_SC03_118/ov_SC03_118_jr_80183830.o", "build/src/ov_SC03_119/ov_SC03_119_jr_80183830.o"], "before_text": "void func_801860E8(s32 a0) {\n\n extern s16 D_801D4360;\n extern s16 D_801D4362;\n extern u8 D_801D4368;\n extern u8 D_801D4369;\n extern u8 D_801D436A;\n\n extern s16 D_801D436C;\n extern u8 *D_800A5E60;\n extern s32 D_800AE620;\n extern u8 D_800A6518[];\n extern Ot_8018B23C_801860E8 D_800A651C[];\n\n s32 m[8]; /* sp+0x10 */\n u8 sv[8]; /* sp+0x30 */\n u16 out[4]; /* sp+0x38 */\n s32 scale[4]; /* sp+0x40 */\n\n u8 *q;\n Rec_8018B23C_801860E8 *p;\n s32 x;\n s32 y;\n s32 ang;\n\n q = D_800A5E60;\n\n *(Mat32_8018B23C_801860E8 *)m = *(Mat32_8018B23C_801860E8 *)&D_800AE620;\n\n D_800A5E60 = q + 0x14;\n *(u8 *)(q + 3) = 4;\n *(u8 *)(q + 7) = 0x22;\n *(u8 *)(q + 4) = D_801D4368;\n *(u8 *)(q + 5) = D_801D4369;\n *(u8 *)(q + 6) = D_801D436A;\n\n p = (Rec_8018B23C_801860E8 *)((s32)&D_801D436C + (a0 << 4));\n x = p->fA + (u16)D_801D4360;\n y = p->fE + (u16)D_801D4362;\n RotMatrixZ(p->f6, m);\n\n scale[0] = *(s16 *)((s32)p + 2);\n scale[1] = *(s16 *)((s32)p + 2);\n scale[2] = *(s16 *)((s32)p + 2);\n func_8004901C(m, scale);\n\n *(s16 *)(sv + 4) = 0;\n *(s16 *)(sv + 2) = 0;\n *(s16 *)(sv + 0) = p->f0;\n {\n void *svp = sv;\n void *outp = out;\n ApplyMatrixSV(m, svp, outp);\n __asm__ __volatile__(\"\" : \"=r\"(svp)); // !FAKE: launder out-only \u2014 NEEDED DIFFERS (P36 rung B tus10)\n __asm__ __volatile__(\"\" : \"=r\"(outp)); // !FAKE: launder out-only \u2014 NEEDED DIFFERS (P36 rung B tus10)\n }\n\n *(s16 *)(q + 0x8) = x + ((s16)out[0] >> 1) * 3;\n *(s16 *)(q + 0xA) = y + ((s16)out[1] >> 1) * 3;\n *(s16 *)(q + 0xC) = x - ((s16)out[0] >> 1);\n *(s16 *)(q + 0xE) = y - ((s16)out[1] >> 1);\n x = x + out[0];\n *(s16 *)(q + 0x10) = x;\n y = y + out[1];\n *(s16 *)(q + 0x12) = y;\n\n ang = -0x400;\n if (p->f0 & 1) {\n ang = 0x400;\n }\n RotMatrixZ(ang, m);\n\n *(s16 *)(sv + 0) = 2;\n {\n /* lever C: sp+0x10 IS &m, but spelled so cse cannot fold it to $s4 */\n register u8 *spr __asm__(\"$29\"); // !FAKE: pin $29 \u2014 NEEDED DIFFERS (P36 rung B tus10)\n ApplyMatrixSV(spr + 0x10, sv, out);\n }\n\n *(s16 *)(q + 0x10) = *(u16 *)(q + 0x10) + out[0];\n *(s16 *)(q + 0x12) = *(u16 *)(q + 0x12) + out[1];\n\n {\n Bidx_8018B23C_801860E8 *bp = (Bidx_8018B23C_801860E8 *)&D_800B9A02;\n\n /* addPrim(&D_800A651C[bp->f].a[0x10], q) */\n ((PTag_8018B23C_801860E8 *)q)->addr =\n ((PTag_8018B23C_801860E8 *)(D_800A651C[bp->f].a + 0x40))->addr;\n ((PTag_8018B23C_801860E8 *)(D_800A651C[bp->f].a + 0x40))->addr = (u32)q;\n func_80016638(&D_800A6518[bp->f * 20], 0x10, 1);\n }\n}\n", "after_text": "void func_801860E8(s32 a0) {\n\n extern s16 D_801D4360;\n extern s16 D_801D4362;\n extern u8 D_801D4368;\n extern u8 D_801D4369;\n extern u8 D_801D436A;\n\n extern s16 D_801D436C;\n extern u8 *D_800A5E60;\n extern s32 D_800AE620;\n extern u8 D_800A6518[];\n extern Ot_8018B23C_801860E8 D_800A651C[];\n\n s32 m[8]; /* sp+0x10 */\n u8 sv[8]; /* sp+0x30 */\n u16 out[4]; /* sp+0x38 */\n s32 scale[4]; /* sp+0x40 */\n\n u8 *q;\n Rec_8018B23C_801860E8 *p;\n s32 x;\n s32 y;\n\n q = D_800A5E60;\n\n *(Mat32_8018B23C_801860E8 *)m = *(Mat32_8018B23C_801860E8 *)&D_800AE620;\n\n D_800A5E60 = q + 0x14;\n *(u8 *)(q + 3) = 4;\n *(u8 *)(q + 7) = 0x22;\n *(u8 *)(q + 4) = D_801D4368;\n *(u8 *)(q + 5) = D_801D4369;\n *(u8 *)(q + 6) = D_801D436A;\n\n p = (Rec_8018B23C_801860E8 *)((s32)&D_801D436C + (a0 << 4));\n x = p->fA + (u16)D_801D4360;\n y = p->fE + (u16)D_801D4362;\n RotMatrixZ(p->f6, m);\n\n scale[0] = *(s16 *)((s32)p + 2);\n scale[1] = *(s16 *)((s32)p + 2);\n scale[2] = *(s16 *)((s32)p + 2);\n func_8004901C(m, scale);\n\n *(s16 *)(sv + 4) = 0;\n *(s16 *)(sv + 2) = 0;\n *(s16 *)(sv + 0) = p->f0;\n ApplyMatrixSV(m, sv, out);\n\n *(s16 *)(q + 0x8) = x + ((s16)out[0] >> 1) * 3;\n *(s16 *)(q + 0xA) = y + ((s16)out[1] >> 1) * 3;\n *(s16 *)(q + 0xC) = x - ((s16)out[0] >> 1);\n *(s16 *)(q + 0xE) = y - ((s16)out[1] >> 1);\n x = x + out[0];\n *(s16 *)(q + 0x10) = x;\n y = y + out[1];\n *(s16 *)(q + 0x12) = y;\n\n if (p->f0 & 1) {\n RotMatrixZ(0x400, m);\n } else {\n RotMatrixZ(-0x400, m);\n }\n\n *(s16 *)(sv + 0) = 2;\n ApplyMatrixSV(m, sv, out);\n\n *(s16 *)(q + 0x10) = *(u16 *)(q + 0x10) + out[0];\n *(s16 *)(q + 0x12) = *(u16 *)(q + 0x12) + out[1];\n\n {\n Bidx_8018B23C_801860E8 *bp = (Bidx_8018B23C_801860E8 *)&D_800B9A02;\n\n /* addPrim(&D_800A651C[bp->f].a[0x10], q) */\n ((PTag_8018B23C_801860E8 *)q)->addr =\n ((PTag_8018B23C_801860E8 *)(D_800A651C[bp->f].a + 0x40))->addr;\n ((PTag_8018B23C_801860E8 *)(D_800A651C[bp->f].a + 0x40))->addr = (u32)q;\n func_80016638(&D_800A6518[bp->f * 20], 0x10, 1);\n }\n}\n"} diff --git a/src/ov_SC03_118/ov_SC03_118_jr_80183830.c b/src/ov_SC03_118/ov_SC03_118_jr_80183830.c index 7e1b59643..558248c55 100644 --- a/src/ov_SC03_118/ov_SC03_118_jr_80183830.c +++ b/src/ov_SC03_118/ov_SC03_118_jr_80183830.c @@ -4902,7 +4902,6 @@ void func_801860E8(s32 a0) { Rec_8018B23C_801860E8 *p; s32 x; s32 y; - s32 ang; q = D_800A5E60; @@ -4928,13 +4927,7 @@ void func_801860E8(s32 a0) { *(s16 *)(sv + 4) = 0; *(s16 *)(sv + 2) = 0; *(s16 *)(sv + 0) = p->f0; - { - void *svp = sv; - void *outp = out; - ApplyMatrixSV(m, svp, outp); - __asm__ __volatile__("" : "=r"(svp)); // !FAKE: launder out-only — NEEDED DIFFERS (P36 rung B tus10) - __asm__ __volatile__("" : "=r"(outp)); // !FAKE: launder out-only — NEEDED DIFFERS (P36 rung B tus10) - } + ApplyMatrixSV(m, sv, out); *(s16 *)(q + 0x8) = x + ((s16)out[0] >> 1) * 3; *(s16 *)(q + 0xA) = y + ((s16)out[1] >> 1) * 3; @@ -4945,18 +4938,14 @@ void func_801860E8(s32 a0) { y = y + out[1]; *(s16 *)(q + 0x12) = y; - ang = -0x400; if (p->f0 & 1) { - ang = 0x400; + RotMatrixZ(0x400, m); + } else { + RotMatrixZ(-0x400, m); } - RotMatrixZ(ang, m); *(s16 *)(sv + 0) = 2; - { - /* lever C: sp+0x10 IS &m, but spelled so cse cannot fold it to $s4 */ - register u8 *spr __asm__("$29"); // !FAKE: pin $29 — NEEDED DIFFERS (P36 rung B tus10) - ApplyMatrixSV(spr + 0x10, sv, out); - } + ApplyMatrixSV(m, sv, out); *(s16 *)(q + 0x10) = *(u16 *)(q + 0x10) + out[0]; *(s16 *)(q + 0x12) = *(u16 *)(q + 0x12) + out[1];