diff --git a/.run/P36/delever/calibration.json b/.run/P36/delever/calibration.json index 921834864..ed1d15221 100644 --- a/.run/P36/delever/calibration.json +++ b/.run/P36/delever/calibration.json @@ -1,7 +1,7 @@ { - "head": "9e6621168", + "head": "f0aba38fc", "stamp": "15956e4a96c4", - "generated": "2026-09-11 19:13", + "generated": "2026-09-11 19:14", "aliases": [ "main", "ov_SC03_014", @@ -21,207 +21,207 @@ "main": { "objects": 85, "identical": 85, - "seconds": 6.486999999999999, - "mean_s": 0.076 + "seconds": 7.345, + "mean_s": 0.086 }, "ov_SC03_014": { "objects": 32, "identical": 32, - "seconds": 4.3950000000000005, - "mean_s": 0.137 + "seconds": 4.751999999999999, + "mean_s": 0.148 }, "ov_SC03_015": { "objects": 32, "identical": 32, - "seconds": 4.3420000000000005, - "mean_s": 0.136 + "seconds": 4.545, + "mean_s": 0.142 }, "ov_SC04_011": { "objects": 28, "identical": 28, - "seconds": 3.7120000000000006, - "mean_s": 0.133 + "seconds": 3.9420000000000006, + "mean_s": 0.141 } }, "per_object_seconds": { - "build/src/800.o": 0.725, - "build/src/800_b.o": 0.07, - "build/src/800_b_2.o": 0.304, - "build/src/800_b_o0a.o": 0.068, - "build/src/800_c.o": 0.185, - "build/src/800b2.o": 0.073, - "build/src/apicard1.o": 0.061, - "build/src/apicard2.o": 0.08, - "build/src/apicard3.o": 0.061, - "build/src/apicard4.o": 0.066, - "build/src/apicard5.o": 0.074, - "build/src/apicard6.o": 0.09, - "build/src/apicard7.o": 0.071, - "build/src/boot.o": 0.091, - "build/src/gap.o": 0.06, - "build/src/libapi1.o": 0.052, - "build/src/libapi2.o": 0.06, - "build/src/libc2_1.o": 0.06, - "build/src/libc2_2.o": 0.058, - "build/src/libcd1.o": 0.065, - "build/src/libcd2.o": 0.052, - "build/src/libetc.o": 0.051, - "build/src/libgpu.o": 0.053, - "build/src/libgpu2.o": 0.081, - "build/src/libgs1.o": 0.058, - "build/src/libgs2.o": 0.062, - "build/src/libgs3.o": 0.06, - "build/src/libgs4.o": 0.058, - "build/src/libgs5.o": 0.06, - "build/src/libgs6.o": 0.072, - "build/src/libgs7.o": 0.077, - "build/src/libgs8.o": 0.054, - "build/src/libgte1.o": 0.058, - "build/src/libgte10.o": 0.054, - "build/src/libgte11.o": 0.056, - "build/src/libgte12.o": 0.062, - "build/src/libgte13.o": 0.063, - "build/src/libgte14.o": 0.053, - "build/src/libgte15.o": 0.063, - "build/src/libgte16.o": 0.06, - "build/src/libgte17.o": 0.063, - "build/src/libgte18.o": 0.061, - "build/src/libgte19.o": 0.067, - "build/src/libgte2.o": 0.062, - "build/src/libgte20.o": 0.064, - "build/src/libgte21.o": 0.066, - "build/src/libgte22.o": 0.063, - "build/src/libgte23.o": 0.063, - "build/src/libgte24.o": 0.063, - "build/src/libgte25.o": 0.065, - "build/src/libgte26.o": 0.06, - "build/src/libgte27.o": 0.061, - "build/src/libgte28.o": 0.063, - "build/src/libgte29.o": 0.055, - "build/src/libgte3.o": 0.067, - "build/src/libgte30.o": 0.063, - "build/src/libgte4.o": 0.061, - "build/src/libgte5.o": 0.07, - "build/src/libgte6.o": 0.064, - "build/src/libgte7.o": 0.065, - "build/src/libgte8.o": 0.066, - "build/src/libgte9.o": 0.068, - "build/src/libmcrd1.o": 0.075, - "build/src/libmcrd2.o": 0.062, - "build/src/libpad1.o": 0.066, - "build/src/libpad2.o": 0.065, - "build/src/sgap.o": 0.067, - "build/src/sgap_2.o": 0.063, - "build/src/sgap_3.o": 0.069, - "build/src/sgap_4.o": 0.073, - "build/src/sgap_5.o": 0.067, - "build/src/sgap_6.o": 0.064, - "build/src/sgap_8.o": 0.072, - "build/src/snd1.o": 0.068, - "build/src/snd10.o": 0.058, - "build/src/snd11.o": 0.062, - "build/src/snd12.o": 0.069, - "build/src/snd2.o": 0.069, - "build/src/snd3.o": 0.061, - "build/src/snd4.o": 0.054, - "build/src/snd5.o": 0.059, - "build/src/snd6.o": 0.07, - "build/src/snd7.o": 0.061, - "build/src/snd8.o": 0.063, - "build/src/snd9.o": 0.069, - "build/src/ov_SC03_014/ov_SC03_014.o": 0.127, - "build/src/ov_SC03_014/ov_SC03_014_after.o": 0.486, - "build/src/ov_SC03_014/ov_SC03_014_jr_8012ACE0.o": 0.387, - "build/src/ov_SC03_014/ov_SC03_014_jr_80135888.o": 0.06, - "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.112, - "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.079, + "build/src/800.o": 0.78, + "build/src/800_b.o": 0.086, + "build/src/800_b_2.o": 0.334, + "build/src/800_b_o0a.o": 0.069, + "build/src/800_c.o": 0.197, + "build/src/800b2.o": 0.08, + "build/src/apicard1.o": 0.07, + "build/src/apicard2.o": 0.064, + "build/src/apicard3.o": 0.087, + "build/src/apicard4.o": 0.068, + "build/src/apicard5.o": 0.064, + "build/src/apicard6.o": 0.085, + "build/src/apicard7.o": 0.073, + "build/src/boot.o": 0.117, + "build/src/gap.o": 0.088, + "build/src/libapi1.o": 0.072, + "build/src/libapi2.o": 0.065, + "build/src/libc2_1.o": 0.07, + "build/src/libc2_2.o": 0.062, + "build/src/libcd1.o": 0.076, + "build/src/libcd2.o": 0.069, + "build/src/libetc.o": 0.067, + "build/src/libgpu.o": 0.065, + "build/src/libgpu2.o": 0.074, + "build/src/libgs1.o": 0.063, + "build/src/libgs2.o": 0.085, + "build/src/libgs3.o": 0.068, + "build/src/libgs4.o": 0.059, + "build/src/libgs5.o": 0.064, + "build/src/libgs6.o": 0.09, + "build/src/libgs7.o": 0.065, + "build/src/libgs8.o": 0.062, + "build/src/libgte1.o": 0.067, + "build/src/libgte10.o": 0.061, + "build/src/libgte11.o": 0.063, + "build/src/libgte12.o": 0.068, + "build/src/libgte13.o": 0.068, + "build/src/libgte14.o": 0.071, + "build/src/libgte15.o": 0.066, + "build/src/libgte16.o": 0.069, + "build/src/libgte17.o": 0.064, + "build/src/libgte18.o": 0.064, + "build/src/libgte19.o": 0.063, + "build/src/libgte2.o": 0.068, + "build/src/libgte20.o": 0.061, + "build/src/libgte21.o": 0.069, + "build/src/libgte22.o": 0.07, + "build/src/libgte23.o": 0.072, + "build/src/libgte24.o": 0.078, + "build/src/libgte25.o": 0.072, + "build/src/libgte26.o": 0.066, + "build/src/libgte27.o": 0.065, + "build/src/libgte28.o": 0.06, + "build/src/libgte29.o": 0.074, + "build/src/libgte3.o": 0.071, + "build/src/libgte30.o": 0.073, + "build/src/libgte4.o": 0.082, + "build/src/libgte5.o": 0.074, + "build/src/libgte6.o": 0.075, + "build/src/libgte7.o": 0.077, + "build/src/libgte8.o": 0.075, + "build/src/libgte9.o": 0.075, + "build/src/libmcrd1.o": 0.099, + "build/src/libmcrd2.o": 0.079, + "build/src/libpad1.o": 0.084, + "build/src/libpad2.o": 0.083, + "build/src/sgap.o": 0.071, + "build/src/sgap_2.o": 0.096, + "build/src/sgap_3.o": 0.095, + "build/src/sgap_4.o": 0.077, + "build/src/sgap_5.o": 0.08, + "build/src/sgap_6.o": 0.078, + "build/src/sgap_8.o": 0.085, + "build/src/snd1.o": 0.089, + "build/src/snd10.o": 0.076, + "build/src/snd11.o": 0.068, + "build/src/snd12.o": 0.07, + "build/src/snd2.o": 0.078, + "build/src/snd3.o": 0.065, + "build/src/snd4.o": 0.082, + "build/src/snd5.o": 0.076, + "build/src/snd6.o": 0.076, + "build/src/snd7.o": 0.077, + "build/src/snd8.o": 0.072, + "build/src/snd9.o": 0.07, + "build/src/ov_SC03_014/ov_SC03_014.o": 0.132, + "build/src/ov_SC03_014/ov_SC03_014_after.o": 0.502, + "build/src/ov_SC03_014/ov_SC03_014_jr_8012ACE0.o": 0.41, + "build/src/ov_SC03_014/ov_SC03_014_jr_80135888.o": 0.073, + "build/src/ov_SC03_014/ov_SC03_014_jr_80135A4C.o": 0.065, + "build/src/ov_SC03_014/ov_SC03_014_jr_80135D20.o": 0.134, + "build/src/ov_SC03_014/ov_SC03_014_jr_801380E0.o": 0.16, + "build/src/ov_SC03_014/ov_SC03_014_jr_8013C98C.o": 0.117, + "build/src/ov_SC03_014/ov_SC03_014_jr_8013F350.o": 0.085, "build/src/ov_SC03_014/ov_SC03_014_jr_8013FFD8.o": 0.071, - "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.073, - "build/src/ov_SC03_014/ov_SC03_014_jr_80154C24.o": 0.153, - "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.061, - "build/src/ov_SC03_014/ov_SC03_014_jr_8015A3C8.o": 0.062, - "build/src/ov_SC03_014/ov_SC03_014_jr_8015AE2C.o": 0.094, - "build/src/ov_SC03_014/ov_SC03_014_jr_8015C32C.o": 0.42, - "build/src/ov_SC03_014/ov_SC03_014_jr_8016AB6C.o": 0.249, - "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.183, - "build/src/ov_SC03_014/ov_SC03_014_jr_801789AC.o": 0.059, - "build/src/ov_SC03_014/ov_SC03_014_jr_80178D40.o": 0.091, - "build/src/ov_SC03_014/ov_SC03_014_jr_8017A4AC.o": 0.069, - "build/src/ov_SC03_014/ov_SC03_014_jr_8017AE2C.o": 0.141, - "build/src/ov_SC03_014/ov_SC03_014_jr_8017EB7C.o": 0.189, - "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.277, - "build/src/ov_SC03_014/ov_SC03_014_o0b.o": 0.056, - "build/src/ov_SC03_014/ov_SC03_014_o0c.o": 0.053, - "build/src/ov_SC03_014/ov_SC03_014_o0d.o": 0.055, - "build/src/ov_SC03_014/ov_SC03_014_o0e.o": 0.062, - "build/src/ov_SC03_015/ov_SC03_015.o": 0.117, - "build/src/ov_SC03_015/ov_SC03_015_after.o": 0.49, - "build/src/ov_SC03_015/ov_SC03_015_jr_8012ACE0.o": 0.363, - "build/src/ov_SC03_015/ov_SC03_015_jr_80135888.o": 0.049, - "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.117, - "build/src/ov_SC03_015/ov_SC03_015_jr_801380E0.o": 0.152, - "build/src/ov_SC03_015/ov_SC03_015_jr_8013C98C.o": 0.101, - "build/src/ov_SC03_015/ov_SC03_015_jr_8013F350.o": 0.072, - "build/src/ov_SC03_015/ov_SC03_015_jr_8013FFD8.o": 0.046, - "build/src/ov_SC03_015/ov_SC03_015_jr_80140608.o": 0.166, - "build/src/ov_SC03_015/ov_SC03_015_jr_8015444C.o": 0.063, - "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.08, - "build/src/ov_SC03_015/ov_SC03_015_jr_80159C84.o": 0.066, - "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.086, - "build/src/ov_SC03_015/ov_SC03_015_jr_8015C32C.o": 0.466, - "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.089, - "build/src/ov_SC03_015/ov_SC03_015_jr_801734BC.o": 0.185, - "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.089, - "build/src/ov_SC03_015/ov_SC03_015_jr_8017A4AC.o": 0.067, - "build/src/ov_SC03_015/ov_SC03_015_jr_8017AE2C.o": 0.16, - "build/src/ov_SC03_015/ov_SC03_015_jr_8017EB7C.o": 0.192, - "build/src/ov_SC03_015/ov_SC03_015_jr_80184440.o": 0.045, - "build/src/ov_SC03_015/ov_SC03_015_jr_801848E4.o": 0.276, - "build/src/ov_SC03_015/ov_SC03_015_o0b.o": 0.062, - "build/src/ov_SC03_015/ov_SC03_015_o0c.o": 0.054, - "build/src/ov_SC03_015/ov_SC03_015_o0d.o": 0.053, - "build/src/ov_SC03_015/ov_SC03_015_o0e.o": 0.069, - "build/src/ov_SC04_011/ov_SC04_011.o": 0.12, - "build/src/ov_SC04_011/ov_SC04_011_after.o": 0.425, - "build/src/ov_SC04_011/ov_SC04_011_jr_8012ACE0.o": 0.32, - "build/src/ov_SC04_011/ov_SC04_011_jr_80135888.o": 0.049, - "build/src/ov_SC04_011/ov_SC04_011_jr_80135A4C.o": 0.047, - "build/src/ov_SC04_011/ov_SC04_011_jr_80135D20.o": 0.116, - "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.107, - "build/src/ov_SC04_011/ov_SC04_011_jr_8013F350.o": 0.057, - "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.148, - "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.147, - "build/src/ov_SC04_011/ov_SC04_011_jr_801588CC.o": 0.079, - "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.064, - "build/src/ov_SC04_011/ov_SC04_011_jr_8015AE2C.o": 0.099, - "build/src/ov_SC04_011/ov_SC04_011_jr_8015C32C.o": 0.353, - "build/src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.o": 0.21, - "build/src/ov_SC04_011/ov_SC04_011_jr_80171B4C.o": 0.089, - "build/src/ov_SC04_011/ov_SC04_011_jr_801734BC.o": 0.152, - "build/src/ov_SC04_011/ov_SC04_011_jr_801789AC.o": 0.05, - "build/src/ov_SC04_011/ov_SC04_011_jr_80178D40.o": 0.08, - "build/src/ov_SC04_011/ov_SC04_011_jr_8017A4AC.o": 0.059, - "build/src/ov_SC04_011/ov_SC04_011_jr_8017AE2C.o": 0.1, - "build/src/ov_SC04_011/ov_SC04_011_jr_8017D494.o": 0.434, - "build/src/ov_SC04_011/ov_SC04_011_o0b.o": 0.044, - "build/src/ov_SC04_011/ov_SC04_011_o0c.o": 0.046 + "build/src/ov_SC03_014/ov_SC03_014_jr_80140608.o": 0.179, + "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.176, + "build/src/ov_SC03_014/ov_SC03_014_jr_801588CC.o": 0.088, + "build/src/ov_SC03_014/ov_SC03_014_jr_80159C84.o": 0.067, + "build/src/ov_SC03_014/ov_SC03_014_jr_8015A3C8.o": 0.076, + "build/src/ov_SC03_014/ov_SC03_014_jr_8015AE2C.o": 0.098, + "build/src/ov_SC03_014/ov_SC03_014_jr_8015C32C.o": 0.49, + "build/src/ov_SC03_014/ov_SC03_014_jr_8016AB6C.o": 0.276, + "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.206, + "build/src/ov_SC03_014/ov_SC03_014_jr_801789AC.o": 0.058, + "build/src/ov_SC03_014/ov_SC03_014_jr_80178D40.o": 0.102, + "build/src/ov_SC03_014/ov_SC03_014_jr_8017A4AC.o": 0.07, + "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.208, + "build/src/ov_SC03_014/ov_SC03_014_jr_80184440.o": 0.054, + "build/src/ov_SC03_014/ov_SC03_014_jr_801848E4.o": 0.271, + "build/src/ov_SC03_014/ov_SC03_014_o0b.o": 0.062, + "build/src/ov_SC03_014/ov_SC03_014_o0c.o": 0.06, + "build/src/ov_SC03_014/ov_SC03_014_o0d.o": 0.06, + "build/src/ov_SC03_014/ov_SC03_014_o0e.o": 0.069, + "build/src/ov_SC03_015/ov_SC03_015.o": 0.126, + "build/src/ov_SC03_015/ov_SC03_015_after.o": 0.51, + "build/src/ov_SC03_015/ov_SC03_015_jr_8012ACE0.o": 0.382, + "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.053, + "build/src/ov_SC03_015/ov_SC03_015_jr_80135D20.o": 0.123, + "build/src/ov_SC03_015/ov_SC03_015_jr_801380E0.o": 0.153, + "build/src/ov_SC03_015/ov_SC03_015_jr_8013C98C.o": 0.11, + "build/src/ov_SC03_015/ov_SC03_015_jr_8013F350.o": 0.074, + "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.18, + "build/src/ov_SC03_015/ov_SC03_015_jr_8015444C.o": 0.069, + "build/src/ov_SC03_015/ov_SC03_015_jr_80154C24.o": 0.162, + "build/src/ov_SC03_015/ov_SC03_015_jr_801588CC.o": 0.089, + "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.07, + "build/src/ov_SC03_015/ov_SC03_015_jr_8015AE2C.o": 0.096, + "build/src/ov_SC03_015/ov_SC03_015_jr_8015C32C.o": 0.449, + "build/src/ov_SC03_015/ov_SC03_015_jr_8016AB6C.o": 0.261, + "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.193, + "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.106, + "build/src/ov_SC03_015/ov_SC03_015_jr_8017A4AC.o": 0.068, + "build/src/ov_SC03_015/ov_SC03_015_jr_8017AE2C.o": 0.161, + "build/src/ov_SC03_015/ov_SC03_015_jr_8017EB7C.o": 0.197, + "build/src/ov_SC03_015/ov_SC03_015_jr_80184440.o": 0.056, + "build/src/ov_SC03_015/ov_SC03_015_jr_801848E4.o": 0.273, + "build/src/ov_SC03_015/ov_SC03_015_o0b.o": 0.06, + "build/src/ov_SC03_015/ov_SC03_015_o0c.o": 0.061, + "build/src/ov_SC03_015/ov_SC03_015_o0d.o": 0.062, + "build/src/ov_SC03_015/ov_SC03_015_o0e.o": 0.072, + "build/src/ov_SC04_011/ov_SC04_011.o": 0.129, + "build/src/ov_SC04_011/ov_SC04_011_after.o": 0.422, + "build/src/ov_SC04_011/ov_SC04_011_jr_8012ACE0.o": 0.334, + "build/src/ov_SC04_011/ov_SC04_011_jr_80135888.o": 0.055, + "build/src/ov_SC04_011/ov_SC04_011_jr_80135A4C.o": 0.056, + "build/src/ov_SC04_011/ov_SC04_011_jr_80135D20.o": 0.114, + "build/src/ov_SC04_011/ov_SC04_011_jr_801380E0.o": 0.15, + "build/src/ov_SC04_011/ov_SC04_011_jr_8013C98C.o": 0.109, + "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.064, + "build/src/ov_SC04_011/ov_SC04_011_jr_80140608.o": 0.18, + "build/src/ov_SC04_011/ov_SC04_011_jr_8015444C.o": 0.073, + "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.098, + "build/src/ov_SC04_011/ov_SC04_011_jr_80159C84.o": 0.065, + "build/src/ov_SC04_011/ov_SC04_011_jr_8015A3C8.o": 0.067, + "build/src/ov_SC04_011/ov_SC04_011_jr_8015AE2C.o": 0.097, + "build/src/ov_SC04_011/ov_SC04_011_jr_8015C32C.o": 0.358, + "build/src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.o": 0.211, + "build/src/ov_SC04_011/ov_SC04_011_jr_80171B4C.o": 0.107, + "build/src/ov_SC04_011/ov_SC04_011_jr_801734BC.o": 0.164, + "build/src/ov_SC04_011/ov_SC04_011_jr_801789AC.o": 0.056, + "build/src/ov_SC04_011/ov_SC04_011_jr_80178D40.o": 0.089, + "build/src/ov_SC04_011/ov_SC04_011_jr_8017A4AC.o": 0.062, + "build/src/ov_SC04_011/ov_SC04_011_jr_8017AE2C.o": 0.103, + "build/src/ov_SC04_011/ov_SC04_011_jr_8017D494.o": 0.436, + "build/src/ov_SC04_011/ov_SC04_011_o0b.o": 0.053, + "build/src/ov_SC04_011/ov_SC04_011_o0c.o": 0.051 }, "ok": true, - "seconds": 2.2 + "seconds": 2.3 } diff --git a/.run/P36/delever/ledger.jsonl b/.run/P36/delever/ledger.jsonl index 2bb043f6e..9aa3a34df 100644 --- a/.run/P36/delever/ledger.jsonl +++ b/.run/P36/delever/ledger.jsonl @@ -29634,3 +29634,4 @@ {"ts": "2026-09-11 19:13:24", "label": "s105_f9", "rung": "E", "calib": {"head": "8a982ef6c", "stamp": "15956e4a96c4"}, "tu": "src/ov_SC02_027/ov_SC02_027_jr_8017D898.c", "fn": "func_80187D18", "addr": 2149088536, "aliases": null, "header": false, "includers": 0, "nhash_before": "c42418c04d7966d4c0d1f42f85948db98ed14607", "nhash_after": "0e67aa175b63706304dfb65622418587598040de", "source": ".run/P36/agents/ov_SC02_027__func_80187D18/body.c", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.287, "objects": ["build/src/ov_SC02_027/ov_SC02_027_jr_8017D898.o"], "before_text": "void func_80187D18(s32 a0) {\n\n extern u8 D_800AF648;\n extern u8 D_801C1FD4[];\n extern u8 D_801C1944[];\n s32 mv[4]; /* sp+0x10 : the 4-word block handed to func_8012B1B4 */\n V8_80187D18 pad[2]; /* sp+0x20 : gcc's own area (vars must be 0x48 for a 0x68 frame) */\n V8_80187D18 sp30; /* sp+0x30 : func_80133784 arg1 */\n V8_80187D18 sp38; /* sp+0x38 : func_80133784 arg2 */\n s16 v[4]; /* sp+0x40 : RotTransPers arg0 */\n s32 sxy; /* sp+0x48 : DVECTOR \u2014 see lever 2, a u16[2] here costs 8 bytes */\n s32 z; /* sp+0x4C */\n s32 flag; /* sp+0x50 */\n s32 anim;\n s32 r;\n s32 t;\n\n if (*(u16 *)(a0 + 0x72) & 0x4000) {\n func_8012A828(a0, (s32)D_801C1FD4);\n *(s16 *)(a0 + 0xFE) = 0;\n }\n\n anim = a0 + 0x88;\n *(u16 *)(a0 + 0xFC) = *(u16 *)(a0 + 0xFC) + 1;\n if (((s32 (*)(s32, u16 *))func_8012BE98)(a0, (u16 *)anim) >= 0x1000) {\n s32 d = func_8012B608(*(s16 *)(*(s32 *)(a0 + 0x20) + 0x12),\n func_8012B744((void *)(a0 + 4), (void *)anim), 0x20);\n *(u16 *)(*(s32 *)(a0 + 0x20) + 0x12) =\n *(u16 *)(*(s32 *)(a0 + 0x20) + 0x12) + d;\n *(u16 *)(*(s32 *)(a0 + 0x20) + 0x12) =\n *(u16 *)(*(s32 *)(a0 + 0x20) + 0x12) & 0xFFF;\n }\n\n mv[0] = 0;\n mv[1] = 0;\n mv[2] = -(*(s16 *)(a0 + 0xFC) << 17) / 0x18;\n func_8012B1B4(a0, (s32)mv);\n\n if ((((s32 (*)(s32))func_8012CBA4)(a0) & 0x6000) == 0) {\n s32 d;\n *(s32 *)(a0 + 0x4) = *(s32 *)(a0 + 0x38);\n *(s32 *)(a0 + 0x8) = *(s32 *)(a0 + 0x3C);\n *(s32 *)(a0 + 0xC) = *(s32 *)(a0 + 0x40);\n d = func_8012B608(*(s16 *)(*(s32 *)(a0 + 0x20) + 0x12),\n func_8012B744((void *)(a0 + 4), (void *)anim), 0x20);\n *(u16 *)(*(s32 *)(a0 + 0x20) + 0x12) =\n *(u16 *)(*(s32 *)(a0 + 0x20) + 0x12) + d;\n *(u16 *)(*(s32 *)(a0 + 0x20) + 0x12) =\n *(u16 *)(*(s32 *)(a0 + 0x20) + 0x12) & 0xFFF;\n }\n\n t = func_8004787C(*(u16 *)(*(s32 *)(a0 + 0x20) + 0x12) & 0xFFF);\n r = 0x30;\n sp30.x = *(u16 *)(a0 + 0x6) - ((t * r) >> 12);\n sp30.y = *(u16 *)(a0 + 0xA) - 0x20;\n t = func_80047948(*(u16 *)(*(s32 *)(a0 + 0x20) + 0x12) & 0xFFF);\n sp30.z = *(u16 *)(a0 + 0xE) - ((t * r) >> 12);\n sp38.x = sp30.x;\n sp38.y = sp30.y + 0x60;\n sp38.z = sp30.z;\n\n if ((func_80133784(1, &sp30, (s32)&sp38) & 0x6000) == 0) {\n *(s32 *)(a0 + 0x4) = *(s32 *)(a0 + 0x38);\n *(s32 *)(a0 + 0xC) = *(s32 *)(a0 + 0x40);\n }\n\n if (*(s16 *)(a0 + 0xFE) == 0 && func_8012BD3C(a0, 0x200, 0x40000) == 1) {\n func_8012A828(a0, (s32)D_801C1944);\n *(s16 *)(a0 + 0x2) = 2;\n v[0] = *(s32 *)(*(s32 *)(a0 + 0x20) + 0x48);\n v[1] = *(s32 *)(*(s32 *)(a0 + 0x20) + 0x4C);\n v[2] = *(s32 *)(*(s32 *)(a0 + 0x20) + 0x50);\n /* $a0-pinned scopes: rematerialise &D_800AF648 (lui/addiu) before EACH call */\n { register void *r4 __asm__(\"$4\"); r4 = &D_800AF648; func_8004914C(r4); } // !FAKE: pin $4 \u2014 NEEDED DIFFERS (P36 rung B tus9)\n { void *r4; r4 = &D_800AF648; func_800491AC(r4); }\n RotTransPers((s32)v, (s32)&sxy, &z, &flag);\n if (flag >= 0 && (u32)((*(u16 *)&sxy + 0x9F) & 0xFFFF) < 0x13F\n && (u32)((*((u16 *)&sxy + 1) + 0x77) & 0xFFFF) < 0xEF) {\n s32 sx; /* screen X, then REUSED as the pan field */\n register s32 av __asm__(\"$5\"); /* |X| \u2014 the one pin that helped */ // !FAKE: pin $5 \u2014 NEEDED DIFFERS (P36 rung B tus9)\n s32 vol;\n sx = (s16)*(u16 *)&sxy;\n av = sx;\n if (sx < 0) {\n av = -sx;\n }\n vol = ((0xA0 - av) * 0x7F) / 0xA0;\n /* lever 3: sched1 otherwise hoists the PAN multiply ahead of this one */\n __asm__(\"\" : \"=r\"(vol) : \"0\"(vol)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus9)\n sx = (sx + 0xA0) / 0x14;\n if (sx == 0x10) {\n sx = 0xF;\n }\n sx = sx << 8; /* in place, so reorg can steal it */\n func_8002D4C8(0xA9B, (vol | (0x3000 | sx)) & 0xFFFF);\n }\n }\n\n if (*(s16 *)(a0 + 0xFC) == 0x18) {\n *(s16 *)(a0 + 0xFC) = 0;\n }\n}\n", "after_text": "void func_80187D18(s32 a0) {\n\n extern u8 D_800AF648;\n extern u8 D_801C1FD4[];\n extern u8 D_801C1944[];\n s32 mv[4]; /* sp+0x10 : the 4-word block handed to func_8012B1B4 */\n V8_80187D18 pad[2]; /* sp+0x20 : gcc's own area (vars must be 0x48 for a 0x68 frame) */\n V8_80187D18 sp30; /* sp+0x30 : func_80133784 arg1 */\n V8_80187D18 sp38; /* sp+0x38 : func_80133784 arg2 */\n s16 v[4]; /* sp+0x40 : RotTransPers arg0 */\n s32 sxy; /* sp+0x48 : DVECTOR \u2014 see lever 2, a u16[2] here costs 8 bytes */\n s32 z; /* sp+0x4C */\n s32 flag; /* sp+0x50 */\n s32 anim;\n s32 r;\n s32 t;\n\n if (*(u16 *)(a0 + 0x72) & 0x4000) {\n func_8012A828(a0, (s32)D_801C1FD4);\n *(s16 *)(a0 + 0xFE) = 0;\n }\n\n anim = a0 + 0x88;\n *(u16 *)(a0 + 0xFC) = *(u16 *)(a0 + 0xFC) + 1;\n if (((s32 (*)(s32, u16 *))func_8012BE98)(a0, (u16 *)anim) >= 0x1000) {\n s32 d = func_8012B608(*(s16 *)(*(s32 *)(a0 + 0x20) + 0x12),\n func_8012B744((void *)(a0 + 4), (void *)anim), 0x20);\n *(u16 *)(*(s32 *)(a0 + 0x20) + 0x12) =\n *(u16 *)(*(s32 *)(a0 + 0x20) + 0x12) + d;\n *(u16 *)(*(s32 *)(a0 + 0x20) + 0x12) =\n *(u16 *)(*(s32 *)(a0 + 0x20) + 0x12) & 0xFFF;\n }\n\n mv[0] = 0;\n mv[1] = 0;\n mv[2] = -(*(s16 *)(a0 + 0xFC) << 17) / 0x18;\n func_8012B1B4(a0, (s32)mv);\n\n if ((((s32 (*)(s32))func_8012CBA4)(a0) & 0x6000) == 0) {\n s32 d;\n *(s32 *)(a0 + 0x4) = *(s32 *)(a0 + 0x38);\n *(s32 *)(a0 + 0x8) = *(s32 *)(a0 + 0x3C);\n *(s32 *)(a0 + 0xC) = *(s32 *)(a0 + 0x40);\n d = func_8012B608(*(s16 *)(*(s32 *)(a0 + 0x20) + 0x12),\n func_8012B744((void *)(a0 + 4), (void *)anim), 0x20);\n *(u16 *)(*(s32 *)(a0 + 0x20) + 0x12) =\n *(u16 *)(*(s32 *)(a0 + 0x20) + 0x12) + d;\n *(u16 *)(*(s32 *)(a0 + 0x20) + 0x12) =\n *(u16 *)(*(s32 *)(a0 + 0x20) + 0x12) & 0xFFF;\n }\n\n t = func_8004787C(*(u16 *)(*(s32 *)(a0 + 0x20) + 0x12) & 0xFFF);\n r = 0x30;\n sp30.x = *(u16 *)(a0 + 0x6) - ((t * r) >> 12);\n sp30.y = *(u16 *)(a0 + 0xA) - 0x20;\n t = func_80047948(*(u16 *)(*(s32 *)(a0 + 0x20) + 0x12) & 0xFFF);\n sp30.z = *(u16 *)(a0 + 0xE) - ((t * r) >> 12);\n sp38.x = sp30.x;\n sp38.y = sp30.y + 0x60;\n sp38.z = sp30.z;\n\n if ((func_80133784(1, &sp30, (s32)&sp38) & 0x6000) == 0) {\n *(s32 *)(a0 + 0x4) = *(s32 *)(a0 + 0x38);\n *(s32 *)(a0 + 0xC) = *(s32 *)(a0 + 0x40);\n }\n\n if (*(s16 *)(a0 + 0xFE) == 0 && func_8012BD3C(a0, 0x200, 0x40000) == 1) {\n func_8012A828(a0, (s32)D_801C1944);\n *(s16 *)(a0 + 0x2) = 2;\n v[0] = *(s32 *)(*(s32 *)(a0 + 0x20) + 0x48);\n v[1] = *(s32 *)(*(s32 *)(a0 + 0x20) + 0x4C);\n v[2] = *(s32 *)(*(s32 *)(a0 + 0x20) + 0x50);\n /* the target loads &D_800AF648 afresh (lui/addiu $a0) for EACH call: the second call names the\n * object through a second declaration of the same symbol (its SYMBOL_REF string is a different\n * pointer, so cse does not unify the two address pseudos into one callee-saved register) */\n func_8004914C(&D_800AF648);\n {\n extern u8 D_800AF648_b __asm__(\"D_800AF648\");\n func_800491AC(&D_800AF648_b);\n }\n RotTransPers((s32)v, (s32)&sxy, &z, &flag);\n if (flag >= 0 && (u32)((*(u16 *)&sxy + 0x9F) & 0xFFFF) < 0x13F\n && (u32)((*((u16 *)&sxy + 1) + 0x77) & 0xFFFF) < 0xEF) {\n s32 sx = (s16)*(u16 *)&sxy; /* screen X, then REUSED as the pan field */\n s32 vol = sx;\n if (vol < 0) {\n vol = -vol;\n }\n vol = ((0xA0 - vol) * 0x7F) / 0xA0;\n sx = (sx + 0xA0) / 0x14;\n if (sx == 0x10) {\n sx = 0xF;\n }\n sx = sx << 8; /* in place, so reorg can steal it */\n func_8002D4C8(0xA9B, (vol | (0x3000 | sx)) & 0xFFFF);\n }\n }\n\n if (*(s16 *)(a0 + 0xFC) == 0x18) {\n *(s16 *)(a0 + 0xFC) = 0;\n }\n}\n"} {"ts": "2026-09-11 19:13:42", "label": "s105_f9", "rung": "E", "calib": {"head": "7195a5ff9", "stamp": "15956e4a96c4"}, "tu": "src/ov_SC02_027/ov_SC02_027_jr_8017D898.c", "fn": "func_80186C0C", "addr": 2149084172, "aliases": null, "header": false, "includers": 0, "nhash_before": "5ee22acc33ea711e29d815d6287c35f7d0cd10f5", "nhash_after": "e78db3f0286fb91c0061c5107ca7382f034e0aea", "source": ".run/P36/agents/ov_SC02_027__func_80186C0C/body.c", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.287, "objects": ["build/src/ov_SC02_027/ov_SC02_027_jr_8017D898.o"], "before_text": "void func_80186C0C(s32 a0) {\n register s32 arg __asm__(\"$17\"); // !FAKE: pin $17 \u2014 NEEDED DIFFERS (P36 rung B tus9)\n s32 vol;\n s32 ret;\n s32 t;\n\n arg = a0;\n __asm__(\"\" :: \"r\"(arg)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung B tus9)\n vol = 0x2F;\n ret = func_8012BD14(a0);\n if (ret <= 0x40000) {\n t = *(s16 *)(*(s32 *)(arg + 0x20) + 0x1A) * 3 >> 9;\n t = t * t;\n vol = 127 - ret / ((0x40000 - t) / 80);\n }\n func_8002D59C(0x64E, vol | 0x5000, *(u16 *)(arg + 0x104));\n}\n", "after_text": "void func_80186C0C(s32 a0) {\n s32 vol;\n s32 ret;\n s32 t;\n\n vol = 0x2F;\n ret = func_8012BD14(a0);\n if (ret <= 0x40000) {\n t = *(s16 *)(*(s32 *)(a0 + 0x20) + 0x1A) * 3 >> 9;\n t = t * t;\n vol = 127 - ret / ((0x40000 - t) / 80);\n }\n do { func_8002D59C(0x64E, vol | 0x5000, *(u16 *)(a0 + 0x104)); } while (0); // !FAKE: do-while \u2014 flow.c:2067 loop-depth ref weight: vol 3->4 refs outranks a0 for $s0 (allocno_compare global.c:594-607) (P36 S105 f9)\n}\n"} {"ts": "2026-09-11 19:14:00", "label": "s105_f9_minlever", "rung": "E", "calib": {"head": "9e6621168", "stamp": "15956e4a96c4"}, "tu": "src/ov_SC02_027/ov_SC02_027_jr_8017D898.c", "fn": "func_80180A54", "addr": 2149059156, "aliases": null, "header": false, "includers": 0, "nhash_before": "9d09a627e0d2d0685d2a561e1b1bfe1ce38f64a9", "nhash_after": "9d09a627e0d2d0685d2a561e1b1bfe1ce38f64a9", "source": ".run/P36/agents/ov_SC02_027__func_80180A54/body.c", "verdict": "LEVER-FREE", "sites": [{"ord": 0, "kind": "pin", "cls": "A", "detail": "$2", "via": "", "line": 4199, "verdict": "NEEDED", "why": "left by the author", "oracle": ""}, {"ord": 1, "kind": "keepalive", "cls": "B", "detail": "", "via": "", "line": 4224, "verdict": "NEEDED", "why": "left by the author", "oracle": ""}], "compiles": 1, "seconds": 0.295, "objects": ["build/src/ov_SC02_027/ov_SC02_027_jr_8017D898.o"], "before_text": "void func_80180A54(void *a0, s32 a1, s32 a2)\n{\n extern u8 D_801DA130[];\n register u32 *v0 __asm__(\"$2\"); // !FAKE: pin $2 \u2014 NEEDED DIFFERS (P36 rung B tus9)\n u8 *base;\n Sub_80180A54 *e;\n s32 i;\n\n base = D_801DA130;\n for (i = 0; i < 0x40; i++) {\n e = (Sub_80180A54 *)(base + 4);\n if (e->flag == 0) {\n func_80016714(base, 0x18);\n e->flag = 1;\n e->ptr = (s32)a0;\n e->param = a1;\n e->y = a2;\n e->x = a2;\n e->size = 0x1000;\n *(u32 *)base |= 0x50000000;\n e->id = rand() % 16;\n v0 = (u32 *)base;\n goto epilogue;\n }\n base += 0x18;\n }\n v0 = 0;\nepilogue:\n __asm__(\"\" : : \"r\"(v0)); // !FAKE: keepalive \u2014 NEEDED DIFFERS (P36 rung B tus9)\n return;\n}\n", "after_text": "void func_80180A54(void *a0, s32 a1, s32 a2)\n{\n extern u8 D_801DA130[];\n register u32 *v0 __asm__(\"$2\"); // !FAKE: pin $2 \u2014 the function RETURNS the slot (`void *` signature, expand_value_return stmt.c:2505; the TU's extern is `void`) (P36 S105 f9 minimum-lever)\n u8 *base;\n Sub_80180A54 *e;\n s32 i;\n\n base = D_801DA130;\n for (i = 0; i < 0x40; i++) {\n e = (Sub_80180A54 *)(base + 4);\n if (e->flag == 0) {\n func_80016714(base, 0x18);\n e->flag = 1;\n e->ptr = (s32)a0;\n e->param = a1;\n e->y = a2;\n e->x = a2;\n e->size = 0x1000;\n *(u32 *)base |= 0x50000000;\n e->id = rand() % 16;\n v0 = (u32 *)base;\n goto epilogue;\n }\n base += 0x18;\n }\n v0 = 0;\nepilogue:\n __asm__(\"\" : : \"r\"(v0)); // !FAKE: keepalive \u2014 the return value's use (flow.c insn_dead_p deletes a dead hard-reg set) (P36 S105 f9 minimum-lever)\n return;\n}\n"} +{"ts": "2026-09-11 19:14:18", "label": "s105_f9_minlever", "rung": "E", "calib": {"head": "f0aba38fc", "stamp": "15956e4a96c4"}, "tu": "src/ov_SC02_027/ov_SC02_027_jr_8017D898.c", "fn": "func_80186CE0", "addr": 2149084384, "aliases": null, "header": false, "includers": 0, "nhash_before": "2bc0536a021b63c54d164617c9f4511e836465c1", "nhash_after": "2bc0536a021b63c54d164617c9f4511e836465c1", "source": ".run/P36/agents/ov_SC02_027__func_80186CE0/body.c", "verdict": "LEVER-FREE", "sites": [{"ord": 0, "kind": "pin", "cls": "A", "detail": "$7", "via": "", "line": 8387, "verdict": "NEEDED", "why": "left by the author", "oracle": ""}, {"ord": 1, "kind": "pin", "cls": "A", "detail": "$3", "via": "", "line": 8389, "verdict": "NEEDED", "why": "left by the author", "oracle": ""}, {"ord": 2, "kind": "barrier", "cls": "B", "detail": "memory", "via": "", "line": 8402, "verdict": "NEEDED", "why": "left by the author", "oracle": ""}], "compiles": 1, "seconds": 0.296, "objects": ["build/src/ov_SC02_027/ov_SC02_027_jr_8017D898.o"], "before_text": "void func_80186CE0(a0, a1)\nvoid *a0;\ns32 a1;\n{\n s32 sp10[5];\n s32 obj;\n register s32 w __asm__(\"$7\"); // !FAKE: pin $7 \u2014 NEEDED DIFFERS (P36 rung B tus9)\n s32 x, y, z;\n register s32 t __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus9)\n\n obj = (s32)a0;\n x = D_801AFBD8[a1 * 5];\n y = D_801AFBDC[a1 * 5];\n z = D_801AFBE0[a1 * 5];\n w = D_801AFBE4[a1 * 5];\n sp10[0] = x;\n sp10[1] = y;\n sp10[2] = z;\n sp10[3] = w;\n t = D_801AFBE8[a1 * 5];\n sp10[4] = t;\n __asm__ __volatile__(\"\" ::: \"memory\"); // !FAKE: barrier memory \u2014 NEEDED DIFFERS (P36 rung B tus9)\n ((u16 *)sp10)[0] = ((u16 *)sp10)[0] + *(u16 *)(obj + 6);\n ((u16 *)sp10)[1] = ((u16 *)sp10)[1] + *(u16 *)(obj + 0xA);\n ((u16 *)sp10)[2] = ((u16 *)sp10)[2] + *(u16 *)(obj + 0xE);\n func_8012C51C(sp10, obj);\n}\n", "after_text": "void func_80186CE0(a0, a1)\nvoid *a0;\ns32 a1;\n{\n s32 sp10[5];\n s32 obj;\n register s32 w __asm__(\"$7\"); // !FAKE: pin $7 \u2014 the 20-byte record copy is ONE movstrsi_internal insn in the original (mips.md:3587); its four temps are local-alloc SCRATCH qtys (v1,a0,a1,a3 around obj's a2), unreachable from scalar loads (P36 S105 f9 minimum-lever; plain C = scratch/s1.c, parked: one struct table for D_801AFBD8..E8)\n s32 x, y, z;\n register s32 t __asm__(\"$3\"); // !FAKE: pin $3 \u2014 the fifth word reuses the block move's first temp (output_block_move, mips.c:2444) (P36 S105 f9 minimum-lever)\n\n obj = (s32)a0;\n x = D_801AFBD8[a1 * 5];\n y = D_801AFBDC[a1 * 5];\n z = D_801AFBE0[a1 * 5];\n w = D_801AFBE4[a1 * 5];\n sp10[0] = x;\n sp10[1] = y;\n sp10[2] = z;\n sp10[3] = w;\n t = D_801AFBE8[a1 * 5];\n sp10[4] = t;\n __asm__ __volatile__(\"\" ::: \"memory\"); // !FAKE: barrier memory \u2014 the `nop` after the fifth `lw` is inside output_block_move's template (mips.c:2444), which the scheduler cannot fill (P36 S105 f9 minimum-lever)\n ((u16 *)sp10)[0] = ((u16 *)sp10)[0] + *(u16 *)(obj + 6);\n ((u16 *)sp10)[1] = ((u16 *)sp10)[1] + *(u16 *)(obj + 0xA);\n ((u16 *)sp10)[2] = ((u16 *)sp10)[2] + *(u16 *)(obj + 0xE);\n func_8012C51C(sp10, obj);\n}\n"} diff --git a/src/ov_SC02_027/ov_SC02_027_jr_8017D898.c b/src/ov_SC02_027/ov_SC02_027_jr_8017D898.c index cd869c112..940872100 100644 --- a/src/ov_SC02_027/ov_SC02_027_jr_8017D898.c +++ b/src/ov_SC02_027/ov_SC02_027_jr_8017D898.c @@ -8384,9 +8384,9 @@ s32 a1; { s32 sp10[5]; s32 obj; - register s32 w __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus9) + register s32 w __asm__("$7"); // !FAKE: pin $7 — the 20-byte record copy is ONE movstrsi_internal insn in the original (mips.md:3587); its four temps are local-alloc SCRATCH qtys (v1,a0,a1,a3 around obj's a2), unreachable from scalar loads (P36 S105 f9 minimum-lever; plain C = scratch/s1.c, parked: one struct table for D_801AFBD8..E8) s32 x, y, z; - register s32 t __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus9) + register s32 t __asm__("$3"); // !FAKE: pin $3 — the fifth word reuses the block move's first temp (output_block_move, mips.c:2444) (P36 S105 f9 minimum-lever) obj = (s32)a0; x = D_801AFBD8[a1 * 5]; @@ -8399,7 +8399,7 @@ s32 a1; sp10[3] = w; t = D_801AFBE8[a1 * 5]; sp10[4] = t; - __asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus9) + __asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — the `nop` after the fifth `lw` is inside output_block_move's template (mips.c:2444), which the scheduler cannot fill (P36 S105 f9 minimum-lever) ((u16 *)sp10)[0] = ((u16 *)sp10)[0] + *(u16 *)(obj + 6); ((u16 *)sp10)[1] = ((u16 *)sp10)[1] + *(u16 *)(obj + 0xA); ((u16 *)sp10)[2] = ((u16 *)sp10)[2] + *(u16 *)(obj + 0xE);