diff --git a/.run/P36/delever/calibration.json b/.run/P36/delever/calibration.json index f64131863..7b685eaca 100644 --- a/.run/P36/delever/calibration.json +++ b/.run/P36/delever/calibration.json @@ -1,5 +1,5 @@ { - "head": "b58d4c014", + "head": "a4a244c7f", "stamp": "e34b6679685f", "generated": "2026-09-11 20:43", "aliases": [ @@ -21,206 +21,206 @@ "main": { "objects": 85, "identical": 85, - "seconds": 6.307999999999999, + "seconds": 6.330000000000001, "mean_s": 0.074 }, "ov_SC03_014": { "objects": 32, "identical": 32, - "seconds": 4.523, + "seconds": 4.508000000000001, "mean_s": 0.141 }, "ov_SC03_015": { "objects": 32, "identical": 32, - "seconds": 4.336, - "mean_s": 0.136 + "seconds": 4.383, + "mean_s": 0.137 }, "ov_SC04_011": { "objects": 28, "identical": 28, - "seconds": 3.7500000000000004, + "seconds": 3.7510000000000003, "mean_s": 0.134 } }, "per_object_seconds": { - "build/src/800.o": 0.714, - "build/src/800_b.o": 0.073, - "build/src/800_b_2.o": 0.29, - "build/src/800_b_o0a.o": 0.073, - "build/src/800_c.o": 0.187, - "build/src/800b2.o": 0.079, - "build/src/apicard1.o": 0.061, - "build/src/apicard2.o": 0.068, - "build/src/apicard3.o": 0.07, - "build/src/apicard4.o": 0.063, - "build/src/apicard5.o": 0.074, - "build/src/apicard6.o": 0.067, - "build/src/apicard7.o": 0.069, - "build/src/boot.o": 0.09, - "build/src/gap.o": 0.062, - "build/src/libapi1.o": 0.075, + "build/src/800.o": 0.722, + "build/src/800_b.o": 0.085, + "build/src/800_b_2.o": 0.273, + "build/src/800_b_o0a.o": 0.071, + "build/src/800_c.o": 0.184, + "build/src/800b2.o": 0.074, + "build/src/apicard1.o": 0.062, + "build/src/apicard2.o": 0.057, + "build/src/apicard3.o": 0.061, + "build/src/apicard4.o": 0.054, + "build/src/apicard5.o": 0.082, + "build/src/apicard6.o": 0.057, + "build/src/apicard7.o": 0.064, + "build/src/boot.o": 0.096, + "build/src/gap.o": 0.073, + "build/src/libapi1.o": 0.074, "build/src/libapi2.o": 0.056, - "build/src/libc2_1.o": 0.058, + "build/src/libc2_1.o": 0.063, "build/src/libc2_2.o": 0.057, - "build/src/libcd1.o": 0.069, - "build/src/libcd2.o": 0.053, - "build/src/libetc.o": 0.062, - "build/src/libgpu.o": 0.061, - "build/src/libgpu2.o": 0.069, - "build/src/libgs1.o": 0.068, - "build/src/libgs2.o": 0.058, - "build/src/libgs3.o": 0.059, - "build/src/libgs4.o": 0.057, - "build/src/libgs5.o": 0.054, - "build/src/libgs6.o": 0.07, - "build/src/libgs7.o": 0.058, - "build/src/libgs8.o": 0.055, - "build/src/libgte1.o": 0.058, - "build/src/libgte10.o": 0.057, - "build/src/libgte11.o": 0.054, - "build/src/libgte12.o": 0.058, - "build/src/libgte13.o": 0.061, - "build/src/libgte14.o": 0.068, - "build/src/libgte15.o": 0.06, - "build/src/libgte16.o": 0.06, - "build/src/libgte17.o": 0.06, - "build/src/libgte18.o": 0.063, - "build/src/libgte19.o": 0.056, - "build/src/libgte2.o": 0.055, - "build/src/libgte20.o": 0.059, - "build/src/libgte21.o": 0.059, - "build/src/libgte22.o": 0.059, - "build/src/libgte23.o": 0.052, - "build/src/libgte24.o": 0.062, - "build/src/libgte25.o": 0.059, - "build/src/libgte26.o": 0.05, - "build/src/libgte27.o": 0.059, - "build/src/libgte28.o": 0.056, - "build/src/libgte29.o": 0.059, - "build/src/libgte3.o": 0.063, + "build/src/libcd1.o": 0.06, + "build/src/libcd2.o": 0.061, + "build/src/libetc.o": 0.067, + "build/src/libgpu.o": 0.063, + "build/src/libgpu2.o": 0.06, + "build/src/libgs1.o": 0.058, + "build/src/libgs2.o": 0.049, + "build/src/libgs3.o": 0.05, + "build/src/libgs4.o": 0.067, + "build/src/libgs5.o": 0.058, + "build/src/libgs6.o": 0.071, + "build/src/libgs7.o": 0.059, + "build/src/libgs8.o": 0.053, + "build/src/libgte1.o": 0.061, + "build/src/libgte10.o": 0.052, + "build/src/libgte11.o": 0.06, + "build/src/libgte12.o": 0.064, + "build/src/libgte13.o": 0.064, + "build/src/libgte14.o": 0.059, + "build/src/libgte15.o": 0.058, + "build/src/libgte16.o": 0.056, + "build/src/libgte17.o": 0.062, + "build/src/libgte18.o": 0.06, + "build/src/libgte19.o": 0.058, + "build/src/libgte2.o": 0.058, + "build/src/libgte20.o": 0.06, + "build/src/libgte21.o": 0.061, + "build/src/libgte22.o": 0.066, + "build/src/libgte23.o": 0.059, + "build/src/libgte24.o": 0.063, + "build/src/libgte25.o": 0.062, + "build/src/libgte26.o": 0.051, + "build/src/libgte27.o": 0.06, + "build/src/libgte28.o": 0.063, + "build/src/libgte29.o": 0.058, + "build/src/libgte3.o": 0.052, "build/src/libgte30.o": 0.059, - "build/src/libgte4.o": 0.058, - "build/src/libgte5.o": 0.061, - "build/src/libgte6.o": 0.064, - "build/src/libgte7.o": 0.066, - "build/src/libgte8.o": 0.062, - "build/src/libgte9.o": 0.061, - "build/src/libmcrd1.o": 0.066, - "build/src/libmcrd2.o": 0.059, - "build/src/libpad1.o": 0.068, - "build/src/libpad2.o": 0.063, - "build/src/sgap.o": 0.063, + "build/src/libgte4.o": 0.06, + "build/src/libgte5.o": 0.059, + "build/src/libgte6.o": 0.067, + "build/src/libgte7.o": 0.059, + "build/src/libgte8.o": 0.061, + "build/src/libgte9.o": 0.088, + "build/src/libmcrd1.o": 0.071, + "build/src/libmcrd2.o": 0.067, + "build/src/libpad1.o": 0.061, + "build/src/libpad2.o": 0.092, + "build/src/sgap.o": 0.06, "build/src/sgap_2.o": 0.061, - "build/src/sgap_3.o": 0.064, - "build/src/sgap_4.o": 0.068, - "build/src/sgap_5.o": 0.06, - "build/src/sgap_6.o": 0.056, - "build/src/sgap_8.o": 0.07, - "build/src/snd1.o": 0.069, - "build/src/snd10.o": 0.062, - "build/src/snd11.o": 0.065, - "build/src/snd12.o": 0.065, - "build/src/snd2.o": 0.06, - "build/src/snd3.o": 0.06, + "build/src/sgap_3.o": 0.058, + "build/src/sgap_4.o": 0.065, + "build/src/sgap_5.o": 0.054, + "build/src/sgap_6.o": 0.059, + "build/src/sgap_8.o": 0.062, + "build/src/snd1.o": 0.061, + "build/src/snd10.o": 0.066, + "build/src/snd11.o": 0.064, + "build/src/snd12.o": 0.061, + "build/src/snd2.o": 0.065, + "build/src/snd3.o": 0.061, "build/src/snd4.o": 0.062, - "build/src/snd5.o": 0.068, - "build/src/snd6.o": 0.064, - "build/src/snd7.o": 0.061, - "build/src/snd8.o": 0.064, - "build/src/snd9.o": 0.053, - "build/src/ov_SC03_014/ov_SC03_014.o": 0.114, - "build/src/ov_SC03_014/ov_SC03_014_after.o": 0.509, - "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.055, - "build/src/ov_SC03_014/ov_SC03_014_jr_80135A4C.o": 0.055, - "build/src/ov_SC03_014/ov_SC03_014_jr_80135D20.o": 0.121, - "build/src/ov_SC03_014/ov_SC03_014_jr_801380E0.o": 0.159, - "build/src/ov_SC03_014/ov_SC03_014_jr_8013C98C.o": 0.115, - "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.084, - "build/src/ov_SC03_014/ov_SC03_014_jr_80140608.o": 0.172, - "build/src/ov_SC03_014/ov_SC03_014_jr_8015444C.o": 0.071, - "build/src/ov_SC03_014/ov_SC03_014_jr_80154C24.o": 0.171, - "build/src/ov_SC03_014/ov_SC03_014_jr_801588CC.o": 0.087, - "build/src/ov_SC03_014/ov_SC03_014_jr_80159C84.o": 0.08, - "build/src/ov_SC03_014/ov_SC03_014_jr_8015A3C8.o": 0.066, - "build/src/ov_SC03_014/ov_SC03_014_jr_8015AE2C.o": 0.088, - "build/src/ov_SC03_014/ov_SC03_014_jr_8015C32C.o": 0.468, - "build/src/ov_SC03_014/ov_SC03_014_jr_8016AB6C.o": 0.239, - "build/src/ov_SC03_014/ov_SC03_014_jr_80171B4C.o": 0.1, - "build/src/ov_SC03_014/ov_SC03_014_jr_801734BC.o": 0.198, - "build/src/ov_SC03_014/ov_SC03_014_jr_801789AC.o": 0.051, - "build/src/ov_SC03_014/ov_SC03_014_jr_80178D40.o": 0.094, - "build/src/ov_SC03_014/ov_SC03_014_jr_8017A4AC.o": 0.059, - "build/src/ov_SC03_014/ov_SC03_014_jr_8017AE2C.o": 0.157, - "build/src/ov_SC03_014/ov_SC03_014_jr_8017EB7C.o": 0.197, - "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.268, - "build/src/ov_SC03_014/ov_SC03_014_o0b.o": 0.057, - "build/src/ov_SC03_014/ov_SC03_014_o0c.o": 0.056, - "build/src/ov_SC03_014/ov_SC03_014_o0d.o": 0.052, - "build/src/ov_SC03_014/ov_SC03_014_o0e.o": 0.067, - "build/src/ov_SC03_015/ov_SC03_015.o": 0.111, - "build/src/ov_SC03_015/ov_SC03_015_after.o": 0.481, - "build/src/ov_SC03_015/ov_SC03_015_jr_8012ACE0.o": 0.358, - "build/src/ov_SC03_015/ov_SC03_015_jr_80135888.o": 0.05, - "build/src/ov_SC03_015/ov_SC03_015_jr_80135A4C.o": 0.043, - "build/src/ov_SC03_015/ov_SC03_015_jr_80135D20.o": 0.117, + "build/src/snd5.o": 0.064, + "build/src/snd6.o": 0.065, + "build/src/snd7.o": 0.064, + "build/src/snd8.o": 0.061, + "build/src/snd9.o": 0.065, + "build/src/ov_SC03_014/ov_SC03_014.o": 0.13, + "build/src/ov_SC03_014/ov_SC03_014_after.o": 0.494, + "build/src/ov_SC03_014/ov_SC03_014_jr_8012ACE0.o": 0.372, + "build/src/ov_SC03_014/ov_SC03_014_jr_80135888.o": 0.061, + "build/src/ov_SC03_014/ov_SC03_014_jr_80135A4C.o": 0.061, + "build/src/ov_SC03_014/ov_SC03_014_jr_80135D20.o": 0.125, + "build/src/ov_SC03_014/ov_SC03_014_jr_801380E0.o": 0.163, + "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.073, + "build/src/ov_SC03_014/ov_SC03_014_jr_8013FFD8.o": 0.074, + "build/src/ov_SC03_014/ov_SC03_014_jr_80140608.o": 0.188, + "build/src/ov_SC03_014/ov_SC03_014_jr_8015444C.o": 0.077, + "build/src/ov_SC03_014/ov_SC03_014_jr_80154C24.o": 0.178, + "build/src/ov_SC03_014/ov_SC03_014_jr_801588CC.o": 0.095, + "build/src/ov_SC03_014/ov_SC03_014_jr_80159C84.o": 0.063, + "build/src/ov_SC03_014/ov_SC03_014_jr_8015A3C8.o": 0.055, + "build/src/ov_SC03_014/ov_SC03_014_jr_8015AE2C.o": 0.087, + "build/src/ov_SC03_014/ov_SC03_014_jr_8015C32C.o": 0.462, + "build/src/ov_SC03_014/ov_SC03_014_jr_8016AB6C.o": 0.251, + "build/src/ov_SC03_014/ov_SC03_014_jr_80171B4C.o": 0.095, + "build/src/ov_SC03_014/ov_SC03_014_jr_801734BC.o": 0.2, + "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.091, + "build/src/ov_SC03_014/ov_SC03_014_jr_8017A4AC.o": 0.066, + "build/src/ov_SC03_014/ov_SC03_014_jr_8017AE2C.o": 0.154, + "build/src/ov_SC03_014/ov_SC03_014_jr_8017EB7C.o": 0.176, + "build/src/ov_SC03_014/ov_SC03_014_jr_80184440.o": 0.047, + "build/src/ov_SC03_014/ov_SC03_014_jr_801848E4.o": 0.266, + "build/src/ov_SC03_014/ov_SC03_014_o0b.o": 0.058, + "build/src/ov_SC03_014/ov_SC03_014_o0c.o": 0.054, + "build/src/ov_SC03_014/ov_SC03_014_o0d.o": 0.053, + "build/src/ov_SC03_014/ov_SC03_014_o0e.o": 0.064, + "build/src/ov_SC03_015/ov_SC03_015.o": 0.124, + "build/src/ov_SC03_015/ov_SC03_015_after.o": 0.498, + "build/src/ov_SC03_015/ov_SC03_015_jr_8012ACE0.o": 0.367, + "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.044, + "build/src/ov_SC03_015/ov_SC03_015_jr_80135D20.o": 0.105, "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.108, - "build/src/ov_SC03_015/ov_SC03_015_jr_8013F350.o": 0.069, - "build/src/ov_SC03_015/ov_SC03_015_jr_8013FFD8.o": 0.058, - "build/src/ov_SC03_015/ov_SC03_015_jr_80140608.o": 0.173, - "build/src/ov_SC03_015/ov_SC03_015_jr_8015444C.o": 0.066, - "build/src/ov_SC03_015/ov_SC03_015_jr_80154C24.o": 0.148, - "build/src/ov_SC03_015/ov_SC03_015_jr_801588CC.o": 0.09, - "build/src/ov_SC03_015/ov_SC03_015_jr_80159C84.o": 0.058, - "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.091, - "build/src/ov_SC03_015/ov_SC03_015_jr_8015C32C.o": 0.44, - "build/src/ov_SC03_015/ov_SC03_015_jr_8016AB6C.o": 0.268, - "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.186, - "build/src/ov_SC03_015/ov_SC03_015_jr_801789AC.o": 0.053, - "build/src/ov_SC03_015/ov_SC03_015_jr_80178D40.o": 0.097, - "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.161, - "build/src/ov_SC03_015/ov_SC03_015_jr_8017EB7C.o": 0.193, - "build/src/ov_SC03_015/ov_SC03_015_jr_80184440.o": 0.046, - "build/src/ov_SC03_015/ov_SC03_015_jr_801848E4.o": 0.274, - "build/src/ov_SC03_015/ov_SC03_015_o0b.o": 0.053, - "build/src/ov_SC03_015/ov_SC03_015_o0c.o": 0.057, - "build/src/ov_SC03_015/ov_SC03_015_o0d.o": 0.056, + "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.073, + "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.166, + "build/src/ov_SC03_015/ov_SC03_015_jr_8015444C.o": 0.056, + "build/src/ov_SC03_015/ov_SC03_015_jr_80154C24.o": 0.16, + "build/src/ov_SC03_015/ov_SC03_015_jr_801588CC.o": 0.076, + "build/src/ov_SC03_015/ov_SC03_015_jr_80159C84.o": 0.061, + "build/src/ov_SC03_015/ov_SC03_015_jr_8015A3C8.o": 0.071, + "build/src/ov_SC03_015/ov_SC03_015_jr_8015AE2C.o": 0.089, + "build/src/ov_SC03_015/ov_SC03_015_jr_8015C32C.o": 0.445, + "build/src/ov_SC03_015/ov_SC03_015_jr_8016AB6C.o": 0.275, + "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.207, + "build/src/ov_SC03_015/ov_SC03_015_jr_801789AC.o": 0.052, + "build/src/ov_SC03_015/ov_SC03_015_jr_80178D40.o": 0.096, + "build/src/ov_SC03_015/ov_SC03_015_jr_8017A4AC.o": 0.064, + "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.201, + "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.245, + "build/src/ov_SC03_015/ov_SC03_015_o0b.o": 0.062, + "build/src/ov_SC03_015/ov_SC03_015_o0c.o": 0.056, + "build/src/ov_SC03_015/ov_SC03_015_o0d.o": 0.053, "build/src/ov_SC03_015/ov_SC03_015_o0e.o": 0.067, - "build/src/ov_SC04_011/ov_SC04_011.o": 0.114, - "build/src/ov_SC04_011/ov_SC04_011_after.o": 0.412, - "build/src/ov_SC04_011/ov_SC04_011_jr_8012ACE0.o": 0.318, - "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.055, - "build/src/ov_SC04_011/ov_SC04_011_jr_80135D20.o": 0.115, - "build/src/ov_SC04_011/ov_SC04_011_jr_801380E0.o": 0.154, - "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.069, - "build/src/ov_SC04_011/ov_SC04_011_jr_8013FFD8.o": 0.059, - "build/src/ov_SC04_011/ov_SC04_011_jr_80140608.o": 0.167, - "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.16, - "build/src/ov_SC04_011/ov_SC04_011_jr_801588CC.o": 0.076, - "build/src/ov_SC04_011/ov_SC04_011_jr_80159C84.o": 0.061, - "build/src/ov_SC04_011/ov_SC04_011_jr_8015A3C8.o": 0.065, - "build/src/ov_SC04_011/ov_SC04_011_jr_8015AE2C.o": 0.089, + "build/src/ov_SC04_011/ov_SC04_011.o": 0.116, + "build/src/ov_SC04_011/ov_SC04_011_after.o": 0.425, + "build/src/ov_SC04_011/ov_SC04_011_jr_8012ACE0.o": 0.335, + "build/src/ov_SC04_011/ov_SC04_011_jr_80135888.o": 0.046, + "build/src/ov_SC04_011/ov_SC04_011_jr_80135A4C.o": 0.05, + "build/src/ov_SC04_011/ov_SC04_011_jr_80135D20.o": 0.096, + "build/src/ov_SC04_011/ov_SC04_011_jr_801380E0.o": 0.137, + "build/src/ov_SC04_011/ov_SC04_011_jr_8013C98C.o": 0.103, + "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.161, + "build/src/ov_SC04_011/ov_SC04_011_jr_8015444C.o": 0.07, + "build/src/ov_SC04_011/ov_SC04_011_jr_80154C24.o": 0.158, + "build/src/ov_SC04_011/ov_SC04_011_jr_801588CC.o": 0.081, + "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.064, + "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.21, - "build/src/ov_SC04_011/ov_SC04_011_jr_80171B4C.o": 0.09, - "build/src/ov_SC04_011/ov_SC04_011_jr_801734BC.o": 0.163, - "build/src/ov_SC04_011/ov_SC04_011_jr_801789AC.o": 0.051, - "build/src/ov_SC04_011/ov_SC04_011_jr_80178D40.o": 0.084, + "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.091, + "build/src/ov_SC04_011/ov_SC04_011_jr_801734BC.o": 0.149, + "build/src/ov_SC04_011/ov_SC04_011_jr_801789AC.o": 0.054, + "build/src/ov_SC04_011/ov_SC04_011_jr_80178D40.o": 0.087, "build/src/ov_SC04_011/ov_SC04_011_jr_8017A4AC.o": 0.057, - "build/src/ov_SC04_011/ov_SC04_011_jr_8017AE2C.o": 0.095, - "build/src/ov_SC04_011/ov_SC04_011_jr_8017D494.o": 0.427, - "build/src/ov_SC04_011/ov_SC04_011_o0b.o": 0.043, - "build/src/ov_SC04_011/ov_SC04_011_o0c.o": 0.056 + "build/src/ov_SC04_011/ov_SC04_011_jr_8017AE2C.o": 0.09, + "build/src/ov_SC04_011/ov_SC04_011_jr_8017D494.o": 0.439, + "build/src/ov_SC04_011/ov_SC04_011_o0b.o": 0.055, + "build/src/ov_SC04_011/ov_SC04_011_o0c.o": 0.054 }, "ok": true, "seconds": 2.2 diff --git a/.run/P36/delever/ledger.jsonl b/.run/P36/delever/ledger.jsonl index e05405a60..e08258205 100644 --- a/.run/P36/delever/ledger.jsonl +++ b/.run/P36/delever/ledger.jsonl @@ -29644,3 +29644,4 @@ {"ts": "2026-09-11 20:43:09", "label": "s105_f11", "rung": "E", "calib": {"head": "5a981f67b", "stamp": "e34b6679685f"}, "tu": "src/ov_SC06_018/ov_SC06_018_jr_80187AEC.c", "fn": "func_8018FE0C", "addr": 2149121548, "aliases": null, "header": false, "includers": 0, "nhash_before": "95edf534c87965892a42841a3a81c81943f5d2f6", "nhash_after": "c76aa9398fe1055362c9d3ab493147c845048310", "source": ".run/P36/agents/ov_SC06_018__func_8018FE0C/body.c", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.209, "objects": ["build/src/ov_SC06_018/ov_SC06_018_jr_80187AEC.o"], "before_text": "void func_8018FE0C(s32 arg0, s32 arg1, s32 arg2)\n{\n extern void *func_80010A08(s32);\n extern void func_8004914C(void *);\n extern void func_800491AC(void *);\n extern s32 RotTransPers(s32, s32, s32 *, s32 *);\n extern u8 D_800AF648;\n extern OtBlk_8018FE0C aD800A651C[] __asm__(\"D_800A651C\");\n extern u8 D_800A6518[];\n extern short D_800B9A02;\n extern void func_80016638(void *a0, s32 a1, s32 a2);\n\n s32 sp10;\n s32 sp14;\n s32 temp_v0_2;\n void *temp_v0;\n s32 ot;\n s32 depth4;\n u16 *bidx;\n u32 mask1;\n register s32 rgb __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus9)\n register u32 tag0 __asm__(\"$4\"); // !FAKE: pin $4 \u2014 NEEDED DIFFERS (P36 rung B tus9)\n\n rgb = arg2;\n __asm__(\"\" : \"=r\"(rgb) : \"0\"(rgb)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus9)\n temp_v0 = func_80010A08(0x10);\n *(u8 *)((u8 *)temp_v0 + 3) = 3;\n *(s32 *)((u8 *)temp_v0 + 4) = rgb;\n *(u8 *)((u8 *)temp_v0 + 7) = 0x42;\n func_8004914C(&D_800AF648);\n func_800491AC(&D_800AF648);\n temp_v0_2 = RotTransPers(arg0, temp_v0 + 8, &sp10, &sp14);\n if ((temp_v0_2 > 0) && (sp14 >= 0) &&\n (RotTransPers(arg1, temp_v0 + 0xC, &sp10, &sp14) > 0) && (sp14 >= 0)) {\n mask1 = 0xFFFFFF;\n bidx = (u16 *)&D_800B9A02;\n depth4 = temp_v0_2 * 4;\n tag0 = *(u32 *)temp_v0;\n *(u32 *)temp_v0 = (tag0 & 0xFF000000) |\n (*(u32 *)(depth4 + aD800A651C[*bidx].a) & mask1);\n ot = aD800A651C[*bidx].a;\n *(u32 *)(depth4 + ot) =\n (*(u32 *)(depth4 + ot) & 0xFF000000) | ((u32)temp_v0 & mask1);\n func_80016638(&D_800A6518[*bidx * 20], temp_v0_2, 1);\n }\n}\n", "after_text": "void func_8018FE0C(s32 arg0, s32 arg1, s32 arg2)\n{\n extern void *func_80010A08(s32);\n extern void func_8004914C(void *);\n extern void func_800491AC(void *);\n extern s32 RotTransPers(s32, s32, s32 *, s32 *);\n extern u8 D_800AF648;\n extern OtBlk_8018FE0C aD800A651C[] __asm__(\"D_800A651C\");\n extern u8 D_800A6518[];\n extern short D_800B9A02;\n extern void func_80016638(void *a0, s32 a1, s32 a2);\n\n s32 sp10;\n s32 sp14;\n s32 temp_v0_2;\n void *temp_v0;\n s32 ot;\n s32 depth4;\n u16 *bidx;\n u32 tag;\n\n temp_v0 = func_80010A08(0x10);\n *(s32 *)((u8 *)temp_v0 + 4) = arg2;\n *(u8 *)((u8 *)temp_v0 + 3) = 3;\n *(u8 *)((u8 *)temp_v0 + 7) = 0x42;\n func_8004914C(&D_800AF648);\n func_800491AC(&D_800AF648);\n temp_v0_2 = RotTransPers(arg0, temp_v0 + 8, &sp10, &sp14);\n if ((temp_v0_2 > 0) && (sp14 >= 0) &&\n (RotTransPers(arg1, temp_v0 + 0xC, &sp10, &sp14) > 0) && (sp14 >= 0)) {\n /* addPrim(otp, p) == setaddr(p, getaddr(otp)), setaddr(otp, p) */\n bidx = (u16 *)&D_800B9A02;\n depth4 = temp_v0_2 * 4;\n tag = *(u32 *)temp_v0;\n tag &= 0xFF000000;\n tag |= *(u32 *)(depth4 + aD800A651C[*bidx].a) & 0xFFFFFF;\n *(u32 *)temp_v0 = tag;\n ot = aD800A651C[*bidx].a;\n *(u32 *)(depth4 + ot) =\n (*(u32 *)(depth4 + ot) & 0xFF000000) | ((u32)temp_v0 & 0xFFFFFF);\n func_80016638(&D_800A6518[*bidx * 20], temp_v0_2, 1);\n }\n}\n"} {"ts": "2026-09-11 20:43:27", "label": "s105_f11", "rung": "E", "calib": {"head": "cd993d65b", "stamp": "e34b6679685f"}, "tu": "src/ov_SC06_032/ov_SC06_032_jr_80182890.c", "fn": "func_80185B4C", "addr": 2149079884, "aliases": null, "header": false, "includers": 0, "nhash_before": "6e78d2eaa2af917328bf5571fe2b8ac8c733abeb", "nhash_after": "0126ca10ee34d4884c3e4ba29e999081be5f9084", "source": ".run/P36/agents/ov_SC06_018__func_8018A974/scratch/copy_func_80185B4C.c", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.281, "objects": ["build/src/ov_SC06_032/ov_SC06_032_jr_80182890.o"], "before_text": "void func_80185B4C(s32 arg0, s32 arg1, s32 arg2)\n{\n extern void *func_80010A08(s32);\n extern void func_8004914C(void *);\n extern void func_800491AC(void *);\n extern s32 RotTransPers(s32, s32, s32 *, s32 *);\n extern u8 D_800AF648;\n extern OtBlk_80185B4C D_800A651C[];\n extern u8 D_800A6518[];\n extern short D_800B9A02;\n extern void func_80016638(void *a0, s32 a1, s32 a2);\n\n s32 sp10;\n s32 sp14;\n s32 temp_v0_2;\n void *temp_v0;\n s32 ot;\n s32 depth4;\n u16 *bidx;\n u32 mask1;\n register s32 rgb __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus9)\n register u32 tag0 __asm__(\"$4\"); // !FAKE: pin $4 \u2014 NEEDED DIFFERS (P36 rung B tus9)\n\n rgb = arg2;\n __asm__(\"\" : \"=r\"(rgb) : \"0\"(rgb)); /* zero-byte 2nd SET: kills the sched1 birthing boost */ // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus9)\n temp_v0 = func_80010A08(0x10);\n *(u8 *)((u8 *)temp_v0 + 3) = 3;\n *(s32 *)((u8 *)temp_v0 + 4) = rgb;\n *(u8 *)((u8 *)temp_v0 + 7) = 0x42;\n func_8004914C(&D_800AF648);\n func_800491AC(&D_800AF648);\n temp_v0_2 = RotTransPers(arg0, temp_v0 + 8, &sp10, &sp14);\n if ((temp_v0_2 > 0) && (sp14 >= 0) &&\n (RotTransPers(arg1, temp_v0 + 0xC, &sp10, &sp14) > 0) && (sp14 >= 0)) {\n /* addPrim(otp, p) == setaddr(p, getaddr(otp)), setaddr(otp, p) */\n mask1 = 0xFFFFFF;\n bidx = (u16 *)&D_800B9A02;\n depth4 = temp_v0_2 * 4;\n tag0 = *(u32 *)temp_v0;\n *(u32 *)temp_v0 = (tag0 & 0xFF000000) |\n (*(u32 *)(depth4 + D_800A651C[*bidx].a) & mask1);\n ot = D_800A651C[*bidx].a;\n *(u32 *)(depth4 + ot) =\n (*(u32 *)(depth4 + ot) & 0xFF000000) | ((u32)temp_v0 & mask1);\n func_80016638(&D_800A6518[*bidx * 20], temp_v0_2, 1);\n }\n}\n", "after_text": "void func_80185B4C(s32 arg0, s32 arg1, s32 arg2)\n{\n extern void *func_80010A08(s32);\n extern void func_8004914C(void *);\n extern void func_800491AC(void *);\n extern s32 RotTransPers(s32, s32, s32 *, s32 *);\n extern u8 D_800AF648;\n extern OtBlk_80185B4C D_800A651C[];\n extern u8 D_800A6518[];\n extern short D_800B9A02;\n extern void func_80016638(void *a0, s32 a1, s32 a2);\n\n s32 sp10;\n s32 sp14;\n s32 temp_v0_2;\n void *temp_v0;\n s32 ot;\n s32 depth4;\n u16 *bidx;\n u32 tag;\n\n temp_v0 = func_80010A08(0x10);\n *(s32 *)((u8 *)temp_v0 + 4) = arg2;\n *(u8 *)((u8 *)temp_v0 + 3) = 3;\n *(u8 *)((u8 *)temp_v0 + 7) = 0x42;\n func_8004914C(&D_800AF648);\n func_800491AC(&D_800AF648);\n temp_v0_2 = RotTransPers(arg0, temp_v0 + 8, &sp10, &sp14);\n if ((temp_v0_2 > 0) && (sp14 >= 0) &&\n (RotTransPers(arg1, temp_v0 + 0xC, &sp10, &sp14) > 0) && (sp14 >= 0)) {\n /* addPrim(otp, p) == setaddr(p, getaddr(otp)), setaddr(otp, p) */\n bidx = (u16 *)&D_800B9A02;\n depth4 = temp_v0_2 * 4;\n tag = *(u32 *)temp_v0;\n tag &= 0xFF000000;\n tag |= *(u32 *)(depth4 + D_800A651C[*bidx].a) & 0xFFFFFF;\n *(u32 *)temp_v0 = tag;\n ot = D_800A651C[*bidx].a;\n *(u32 *)(depth4 + ot) =\n (*(u32 *)(depth4 + ot) & 0xFF000000) | ((u32)temp_v0 & 0xFFFFFF);\n func_80016638(&D_800A6518[*bidx * 20], temp_v0_2, 1);\n }\n}\n"} {"ts": "2026-09-11 20:43:45", "label": "s105_f11", "rung": "E", "calib": {"head": "b58d4c014", "stamp": "e34b6679685f"}, "tu": "src/ov_SC06_033/ov_SC06_033_jr_80186574.c", "fn": "func_8018BB48", "addr": 2149104456, "aliases": null, "header": false, "includers": 0, "nhash_before": "2935b180487e38d4dd4fb07814ccecf7846321aa", "nhash_after": "0fe97cc9aa92313bc4938e4da74398a1901b87f3", "source": ".run/P36/agents/ov_SC06_018__func_8018A974/scratch/copy_func_8018BB48.c", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.136, "objects": ["build/src/ov_SC06_033/ov_SC06_033_jr_80186574.o"], "before_text": "void func_8018BB48(s32 arg0, s32 arg1, s32 arg2)\n{\n extern void *func_80010A08(s32);\n extern void func_8004914C(void *);\n extern void func_800491AC(void *);\n extern s32 RotTransPers(s32, s32, s32 *, s32 *);\n extern u8 D_800AF648;\n extern OtBlk_8018A974_8018BB48 D_800A651C[];\n extern u8 D_800A6518[];\n extern void func_80016638(void *a0, s32 a1, s32 a2);\n\n s32 sp10;\n s32 sp14;\n s32 temp_v0_2;\n void *temp_v0;\n s32 ot;\n s32 depth4;\n u16 *bidx;\n u32 mask1;\n register s32 rgb __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus9)\n register u32 tag0 __asm__(\"$4\"); // !FAKE: pin $4 \u2014 NEEDED DIFFERS (P36 rung B tus9)\n\n rgb = arg2;\n __asm__(\"\" : \"=r\"(rgb) : \"0\"(rgb)); /* zero-byte 2nd SET: kills the sched1 birthing boost */ // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus9)\n temp_v0 = func_80010A08(0x10);\n *(u8 *)((u8 *)temp_v0 + 3) = 3;\n *(s32 *)((u8 *)temp_v0 + 4) = rgb;\n *(u8 *)((u8 *)temp_v0 + 7) = 0x42;\n func_8004914C(&D_800AF648);\n func_800491AC(&D_800AF648);\n temp_v0_2 = RotTransPers(arg0, temp_v0 + 8, &sp10, &sp14);\n if ((temp_v0_2 > 0) && (sp14 >= 0) &&\n (RotTransPers(arg1, temp_v0 + 0xC, &sp10, &sp14) > 0) && (sp14 >= 0)) {\n /* addPrim(otp, p) == setaddr(p, getaddr(otp)), setaddr(otp, p) */\n mask1 = 0xFFFFFF;\n bidx = (u16 *)&D_800B9A02;\n depth4 = temp_v0_2 * 4;\n tag0 = *(u32 *)temp_v0;\n *(u32 *)temp_v0 = (tag0 & 0xFF000000) |\n (*(u32 *)(depth4 + D_800A651C[*bidx].a) & mask1);\n ot = D_800A651C[*bidx].a;\n *(u32 *)(depth4 + ot) =\n (*(u32 *)(depth4 + ot) & 0xFF000000) | ((u32)temp_v0 & mask1);\n func_80016638(&D_800A6518[*bidx * 20], temp_v0_2, 1);\n }\n}\n", "after_text": "void func_8018BB48(s32 arg0, s32 arg1, s32 arg2)\n{\n extern void *func_80010A08(s32);\n extern void func_8004914C(void *);\n extern void func_800491AC(void *);\n extern s32 RotTransPers(s32, s32, s32 *, s32 *);\n extern u8 D_800AF648;\n extern OtBlk_8018A974_8018BB48 D_800A651C[];\n extern u8 D_800A6518[];\n extern short D_800B9A02;\n extern void func_80016638(void *a0, s32 a1, s32 a2);\n\n s32 sp10;\n s32 sp14;\n s32 temp_v0_2;\n void *temp_v0;\n s32 ot;\n s32 depth4;\n u16 *bidx;\n u32 tag;\n\n temp_v0 = func_80010A08(0x10);\n *(s32 *)((u8 *)temp_v0 + 4) = arg2;\n *(u8 *)((u8 *)temp_v0 + 3) = 3;\n *(u8 *)((u8 *)temp_v0 + 7) = 0x42;\n func_8004914C(&D_800AF648);\n func_800491AC(&D_800AF648);\n temp_v0_2 = RotTransPers(arg0, temp_v0 + 8, &sp10, &sp14);\n if ((temp_v0_2 > 0) && (sp14 >= 0) &&\n (RotTransPers(arg1, temp_v0 + 0xC, &sp10, &sp14) > 0) && (sp14 >= 0)) {\n /* addPrim(otp, p) == setaddr(p, getaddr(otp)), setaddr(otp, p) */\n bidx = (u16 *)&D_800B9A02;\n depth4 = temp_v0_2 * 4;\n tag = *(u32 *)temp_v0;\n tag &= 0xFF000000;\n tag |= *(u32 *)(depth4 + D_800A651C[*bidx].a) & 0xFFFFFF;\n *(u32 *)temp_v0 = tag;\n ot = D_800A651C[*bidx].a;\n *(u32 *)(depth4 + ot) =\n (*(u32 *)(depth4 + ot) & 0xFF000000) | ((u32)temp_v0 & 0xFFFFFF);\n func_80016638(&D_800A6518[*bidx * 20], temp_v0_2, 1);\n }\n}\n"} +{"ts": "2026-09-11 20:44:03", "label": "s105_f11_minlever", "rung": "E", "calib": {"head": "a4a244c7f", "stamp": "e34b6679685f"}, "tu": "src/ov_SC06_018/ov_SC06_018_jr_80187AEC.c", "fn": "func_8018F060", "addr": 2149118048, "aliases": null, "header": false, "includers": 0, "nhash_before": "2b679154c8c09c465eaad0f7b76788a55666edaa", "nhash_after": "863f58f5d4dc16037ea65ce8906d7f5f669b5fc4", "source": ".run/P36/agents/ov_SC06_018__func_8018F060/body.c", "verdict": "LEVER-FREE", "sites": [{"ord": 0, "kind": "launder", "cls": "B", "detail": "", "via": "", "line": 8374, "verdict": "NEEDED", "why": "left by the author", "oracle": ""}, {"ord": 1, "kind": "launder", "cls": "B", "detail": "", "via": "", "line": 8409, "verdict": "NEEDED", "why": "left by the author", "oracle": ""}, {"ord": 2, "kind": "launder", "cls": "B", "detail": "", "via": "", "line": 8444, "verdict": "NEEDED", "why": "left by the author", "oracle": ""}], "compiles": 1, "seconds": 0.2, "objects": ["build/src/ov_SC06_018/ov_SC06_018_jr_80187AEC.o"], "before_text": "void func_8018F060(s32 param_1, u32 param_2, u16 *param_3, u32 param_4) {\n u8 dead[0x20]; /* 0x10 : reserved, never referenced (holds the frame at 0xC8) */\n SVECTOR_8018F060 scratch; /* 0x30 */\n B8_8018F060 out[6]; /* 0x38 */\n u32 pkt[10]; /* 0x68 : v0..v3 + color(0x88) + code(0x8C) */\n SVECTOR_8018F060 rtflag; /* 0x90 (8 bytes -> 0x94 gap) */\n s32 flag1; /* 0x98 */\n s32 flag2; /* 0x9C */\n s32 otz; /* 0xA0 */\n SVEC_8018F060 *src;\n s32 i, oz;\n long *p0, *p1, *p2, *p3, *pfl;\n u8 *mb;\n register long *pc __asm__(\"$16\"); // !FAKE: pin $16 \u2014 NEEDED DIFFERS (P36 rung B tus9)\n\n func_8004914C((void *)(((s32 *)param_1)[8] + 0x34));\n func_800491AC((void *)(((s32 *)param_1)[8] + 0x34));\n\n src = &D_801D1228[(param_2 & 1) * 3];\n for (i = 0; i < 3; i++) {\n scratch.vx = src[i].vx;\n scratch.vy = src[i].vy;\n scratch.vz = -param_3[0];\n RotTransSV(&scratch, &out[i], &rtflag);\n }\n for (i = 0; i < 3; i++) {\n scratch.vx = src[i].vx;\n scratch.vy = src[i].vy;\n scratch.vz = -param_3[1];\n RotTransSV(&scratch, &out[3 + i], &rtflag);\n }\n\n *(B4_8018F060 *)&pkt[8] = *(B4_8018F060 *)¶m_4;\n pkt[9] = 0x50000000;\n\n /* face 0: verts 0,1,3,4 */\n *(B8_8018F060 *)&pkt[0] = out[0];\n *(B8_8018F060 *)&pkt[2] = out[1];\n *(B8_8018F060 *)&pkt[4] = out[3];\n *(B8_8018F060 *)&pkt[6] = out[4];\n DRAW(); // !FAKE: launder via DRAW \u2014 REFUSED macro-carried launder: the lever is inside `#define DRAW` with real code around it (T5) (P36 rung B tus9)\n\n /* face 1: verts 1,2,4,5 */\n *(B8_8018F060 *)&pkt[0] = out[1];\n *(B8_8018F060 *)&pkt[2] = out[2];\n *(B8_8018F060 *)&pkt[4] = out[4];\n *(B8_8018F060 *)&pkt[6] = out[5];\n DRAW(); // !FAKE: launder via DRAW \u2014 REFUSED macro-carried launder: the lever is inside `#define DRAW` with real code around it (T5) (P36 rung B tus9)\n\n /* face 2: verts 2,0,5,3 */\n *(B8_8018F060 *)&pkt[0] = out[2];\n *(B8_8018F060 *)&pkt[2] = out[0];\n *(B8_8018F060 *)&pkt[4] = out[5];\n *(B8_8018F060 *)&pkt[6] = out[3];\n DRAW(); // !FAKE: launder via DRAW \u2014 REFUSED macro-carried launder: the lever is inside `#define DRAW` with real code around it (T5) (P36 rung B tus9)\n}\n", "after_text": "void func_8018F060(s32 param_1, u32 param_2, u16 *param_3, u32 param_4) {\n u8 dead[0x20]; /* 0x10 : reserved, never referenced (holds the frame at 0xC8) */\n SVECTOR_8018F060 scratch; /* 0x30 */\n B8_8018F060 out[6]; /* 0x38 */\n u32 pkt[10]; /* 0x68 : v0..v3 + color(0x88) + code(0x8C) */\n SVECTOR_8018F060 rtflag; /* 0x90 (8 bytes -> 0x94 gap) */\n s32 flag1; /* 0x98 */\n s32 flag2; /* 0x9C */\n s32 otz; /* 0xA0 */\n SVEC_8018F060 *src;\n s32 i, oz;\n u8 *mb;\n\n func_8004914C((void *)(((s32 *)param_1)[8] + 0x34));\n func_800491AC((void *)(((s32 *)param_1)[8] + 0x34));\n\n src = &D_801D1228[(param_2 & 1) * 3];\n for (i = 0; i < 3; i++) {\n scratch.vx = src[i].vx;\n scratch.vy = src[i].vy;\n scratch.vz = -param_3[0];\n RotTransSV(&scratch, &out[i], &rtflag);\n }\n for (i = 0; i < 3; i++) {\n scratch.vx = src[i].vx;\n scratch.vy = src[i].vy;\n scratch.vz = -param_3[1];\n RotTransSV(&scratch, &out[3 + i], &rtflag);\n }\n\n *(B4_8018F060 *)&pkt[8] = *(B4_8018F060 *)¶m_4;\n pkt[9] = 0x50000000;\n\n /* face 0: verts 0,1,3,4 */\n *(B8_8018F060 *)&pkt[0] = out[0];\n *(B8_8018F060 *)&pkt[2] = out[1];\n *(B8_8018F060 *)&pkt[4] = out[3];\n *(B8_8018F060 *)&pkt[6] = out[4];\n mb = (u8 *)&D_800AF630;\n func_8004914C(mb + 0x18);\n __asm__(\"\" : \"=r\"(mb) : \"0\"(mb)); // !FAKE: launder mb between the two matrix calls \u2014 cse unifies the second `mb + 0x18` through the class of its constant value `(const (plus D_800AF630 24))`, cse.c:6766-6850 + :7195-7225, and combine then folds the symbol into the lone survivor; an unknown value after the first call keeps two adds off one call-crossing base (P36 S105 f11 minimum-lever)\n func_800491AC(mb + 0x18);\n {\n long *p1 = (long *)&pkt[2];\n long *p2 = (long *)&pkt[4];\n long *p3 = (long *)&pkt[6];\n long *pfl = &flag1;\n long *p0 = (long *)&pkt[0];\n gte_ldv3(p0, p1, p2);\n gte_rtpt();\n gte_stflg(pfl);\n gte_stsxy3(p0, p1, p2);\n gte_ldv0(p3);\n gte_rtps();\n gte_stflg(&flag2);\n flag1 |= flag2;\n gte_stsxy(p3);\n }\n gte_avsz4();\n gte_stotz(&otz);\n oz = otz;\n *(s16 *)((u8 *)pkt + 4) = (s16)oz;\n if (oz > 0 && flag1 >= 0 &&\n !((u32)&D_800AE610 < (u32)(*(s32 *)((u8 *)&D_800A651C\n + (*(u16 *)&D_800B9A02) * 0x14) + oz * 4))) {\n func_80017254(&pkt[0]);\n }\n\n /* face 1: verts 1,2,4,5 */\n *(B8_8018F060 *)&pkt[0] = out[1];\n *(B8_8018F060 *)&pkt[2] = out[2];\n *(B8_8018F060 *)&pkt[4] = out[4];\n *(B8_8018F060 *)&pkt[6] = out[5];\n mb = (u8 *)&D_800AF630;\n func_8004914C(mb + 0x18);\n __asm__(\"\" : \"=r\"(mb) : \"0\"(mb)); // !FAKE: launder mb between the two matrix calls \u2014 cse unifies the second `mb + 0x18` through the class of its constant value `(const (plus D_800AF630 24))`, cse.c:6766-6850 + :7195-7225, and combine then folds the symbol into the lone survivor; an unknown value after the first call keeps two adds off one call-crossing base (P36 S105 f11 minimum-lever)\n func_800491AC(mb + 0x18);\n {\n long *p1 = (long *)&pkt[2];\n long *p2 = (long *)&pkt[4];\n long *p3 = (long *)&pkt[6];\n long *pfl = &flag1;\n long *p0 = (long *)&pkt[0];\n gte_ldv3(p0, p1, p2);\n gte_rtpt();\n gte_stflg(pfl);\n gte_stsxy3(p0, p1, p2);\n gte_ldv0(p3);\n gte_rtps();\n gte_stflg(&flag2);\n flag1 |= flag2;\n gte_stsxy(p3);\n }\n gte_avsz4();\n gte_stotz(&otz);\n oz = otz;\n *(s16 *)((u8 *)pkt + 4) = (s16)oz;\n if (oz > 0 && flag1 >= 0 &&\n !((u32)&D_800AE610 < (u32)(*(s32 *)((u8 *)&D_800A651C\n + (*(u16 *)&D_800B9A02) * 0x14) + oz * 4))) {\n func_80017254(&pkt[0]);\n }\n\n /* face 2: verts 2,0,5,3 */\n *(B8_8018F060 *)&pkt[0] = out[2];\n *(B8_8018F060 *)&pkt[2] = out[0];\n *(B8_8018F060 *)&pkt[4] = out[5];\n *(B8_8018F060 *)&pkt[6] = out[3];\n mb = (u8 *)&D_800AF630;\n func_8004914C(mb + 0x18);\n __asm__(\"\" : \"=r\"(mb) : \"0\"(mb)); // !FAKE: launder mb between the two matrix calls \u2014 cse unifies the second `mb + 0x18` through the class of its constant value `(const (plus D_800AF630 24))`, cse.c:6766-6850 + :7195-7225, and combine then folds the symbol into the lone survivor; an unknown value after the first call keeps two adds off one call-crossing base (P36 S105 f11 minimum-lever)\n func_800491AC(mb + 0x18);\n {\n long *p1 = (long *)&pkt[2];\n long *p2 = (long *)&pkt[4];\n long *p3 = (long *)&pkt[6];\n long *pfl = &flag1;\n long *p0 = (long *)&pkt[0];\n gte_ldv3(p0, p1, p2);\n gte_rtpt();\n gte_stflg(pfl);\n gte_stsxy3(p0, p1, p2);\n gte_ldv0(p3);\n gte_rtps();\n gte_stflg(&flag2);\n flag1 |= flag2;\n gte_stsxy(p3);\n }\n gte_avsz4();\n gte_stotz(&otz);\n oz = otz;\n *(s16 *)((u8 *)pkt + 4) = (s16)oz;\n if (oz > 0 && flag1 >= 0 &&\n !((u32)&D_800AE610 < (u32)(*(s32 *)((u8 *)&D_800A651C\n + (*(u16 *)&D_800B9A02) * 0x14) + oz * 4))) {\n func_80017254(&pkt[0]);\n }\n}\n"} diff --git a/src/ov_SC06_018/ov_SC06_018_jr_80187AEC.c b/src/ov_SC06_018/ov_SC06_018_jr_80187AEC.c index 067b33c9a..d30e4483a 100644 --- a/src/ov_SC06_018/ov_SC06_018_jr_80187AEC.c +++ b/src/ov_SC06_018/ov_SC06_018_jr_80187AEC.c @@ -8342,9 +8342,7 @@ void func_8018F060(s32 param_1, u32 param_2, u16 *param_3, u32 param_4) { s32 otz; /* 0xA0 */ SVEC_8018F060 *src; s32 i, oz; - long *p0, *p1, *p2, *p3, *pfl; u8 *mb; - register long *pc __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus9) func_8004914C((void *)(((s32 *)param_1)[8] + 0x34)); func_800491AC((void *)(((s32 *)param_1)[8] + 0x34)); @@ -8371,21 +8369,105 @@ void func_8018F060(s32 param_1, u32 param_2, u16 *param_3, u32 param_4) { *(B8_8018F060 *)&pkt[2] = out[1]; *(B8_8018F060 *)&pkt[4] = out[3]; *(B8_8018F060 *)&pkt[6] = out[4]; - DRAW(); // !FAKE: launder via DRAW — REFUSED macro-carried launder: the lever is inside `#define DRAW` with real code around it (T5) (P36 rung B tus9) + mb = (u8 *)&D_800AF630; + func_8004914C(mb + 0x18); + __asm__("" : "=r"(mb) : "0"(mb)); // !FAKE: launder mb between the two matrix calls — cse unifies the second `mb + 0x18` through the class of its constant value `(const (plus D_800AF630 24))`, cse.c:6766-6850 + :7195-7225, and combine then folds the symbol into the lone survivor; an unknown value after the first call keeps two adds off one call-crossing base (P36 S105 f11 minimum-lever) + func_800491AC(mb + 0x18); + { + long *p1 = (long *)&pkt[2]; + long *p2 = (long *)&pkt[4]; + long *p3 = (long *)&pkt[6]; + long *pfl = &flag1; + long *p0 = (long *)&pkt[0]; + gte_ldv3(p0, p1, p2); + gte_rtpt(); + gte_stflg(pfl); + gte_stsxy3(p0, p1, p2); + gte_ldv0(p3); + gte_rtps(); + gte_stflg(&flag2); + flag1 |= flag2; + gte_stsxy(p3); + } + gte_avsz4(); + gte_stotz(&otz); + oz = otz; + *(s16 *)((u8 *)pkt + 4) = (s16)oz; + if (oz > 0 && flag1 >= 0 && + !((u32)&D_800AE610 < (u32)(*(s32 *)((u8 *)&D_800A651C + + (*(u16 *)&D_800B9A02) * 0x14) + oz * 4))) { + func_80017254(&pkt[0]); + } /* face 1: verts 1,2,4,5 */ *(B8_8018F060 *)&pkt[0] = out[1]; *(B8_8018F060 *)&pkt[2] = out[2]; *(B8_8018F060 *)&pkt[4] = out[4]; *(B8_8018F060 *)&pkt[6] = out[5]; - DRAW(); // !FAKE: launder via DRAW — REFUSED macro-carried launder: the lever is inside `#define DRAW` with real code around it (T5) (P36 rung B tus9) + mb = (u8 *)&D_800AF630; + func_8004914C(mb + 0x18); + __asm__("" : "=r"(mb) : "0"(mb)); // !FAKE: launder mb between the two matrix calls — cse unifies the second `mb + 0x18` through the class of its constant value `(const (plus D_800AF630 24))`, cse.c:6766-6850 + :7195-7225, and combine then folds the symbol into the lone survivor; an unknown value after the first call keeps two adds off one call-crossing base (P36 S105 f11 minimum-lever) + func_800491AC(mb + 0x18); + { + long *p1 = (long *)&pkt[2]; + long *p2 = (long *)&pkt[4]; + long *p3 = (long *)&pkt[6]; + long *pfl = &flag1; + long *p0 = (long *)&pkt[0]; + gte_ldv3(p0, p1, p2); + gte_rtpt(); + gte_stflg(pfl); + gte_stsxy3(p0, p1, p2); + gte_ldv0(p3); + gte_rtps(); + gte_stflg(&flag2); + flag1 |= flag2; + gte_stsxy(p3); + } + gte_avsz4(); + gte_stotz(&otz); + oz = otz; + *(s16 *)((u8 *)pkt + 4) = (s16)oz; + if (oz > 0 && flag1 >= 0 && + !((u32)&D_800AE610 < (u32)(*(s32 *)((u8 *)&D_800A651C + + (*(u16 *)&D_800B9A02) * 0x14) + oz * 4))) { + func_80017254(&pkt[0]); + } /* face 2: verts 2,0,5,3 */ *(B8_8018F060 *)&pkt[0] = out[2]; *(B8_8018F060 *)&pkt[2] = out[0]; *(B8_8018F060 *)&pkt[4] = out[5]; *(B8_8018F060 *)&pkt[6] = out[3]; - DRAW(); // !FAKE: launder via DRAW — REFUSED macro-carried launder: the lever is inside `#define DRAW` with real code around it (T5) (P36 rung B tus9) + mb = (u8 *)&D_800AF630; + func_8004914C(mb + 0x18); + __asm__("" : "=r"(mb) : "0"(mb)); // !FAKE: launder mb between the two matrix calls — cse unifies the second `mb + 0x18` through the class of its constant value `(const (plus D_800AF630 24))`, cse.c:6766-6850 + :7195-7225, and combine then folds the symbol into the lone survivor; an unknown value after the first call keeps two adds off one call-crossing base (P36 S105 f11 minimum-lever) + func_800491AC(mb + 0x18); + { + long *p1 = (long *)&pkt[2]; + long *p2 = (long *)&pkt[4]; + long *p3 = (long *)&pkt[6]; + long *pfl = &flag1; + long *p0 = (long *)&pkt[0]; + gte_ldv3(p0, p1, p2); + gte_rtpt(); + gte_stflg(pfl); + gte_stsxy3(p0, p1, p2); + gte_ldv0(p3); + gte_rtps(); + gte_stflg(&flag2); + flag1 |= flag2; + gte_stsxy(p3); + } + gte_avsz4(); + gte_stotz(&otz); + oz = otz; + *(s16 *)((u8 *)pkt + 4) = (s16)oz; + if (oz > 0 && flag1 >= 0 && + !((u32)&D_800AE610 < (u32)(*(s32 *)((u8 *)&D_800A651C + + (*(u16 *)&D_800B9A02) * 0x14) + oz * 4))) { + func_80017254(&pkt[0]); + } }