diff --git a/.run/P36/delever/calibration.json b/.run/P36/delever/calibration.json index 932d664448..036c33b5ac 100644 --- a/.run/P36/delever/calibration.json +++ b/.run/P36/delever/calibration.json @@ -1,7 +1,7 @@ { - "head": "b074d7f20", + "head": "97e5d721b", "stamp": "15956e4a96c4", - "generated": "2026-09-10 23:46", + "generated": "2026-09-10 23:47", "aliases": [ "main", "ov_SC03_014", @@ -21,207 +21,207 @@ "main": { "objects": 85, "identical": 85, - "seconds": 10.325999999999999, - "mean_s": 0.121 + "seconds": 10.692999999999998, + "mean_s": 0.126 }, "ov_SC03_014": { "objects": 32, "identical": 32, - "seconds": 4.693000000000001, - "mean_s": 0.147 + "seconds": 7.435, + "mean_s": 0.232 }, "ov_SC03_015": { "objects": 32, "identical": 32, - "seconds": 6.596000000000002, - "mean_s": 0.206 + "seconds": 6.612000000000001, + "mean_s": 0.207 }, "ov_SC04_011": { "objects": 28, "identical": 28, - "seconds": 4.695, - "mean_s": 0.168 + "seconds": 6.183000000000002, + "mean_s": 0.221 } }, "per_object_seconds": { - "build/src/800.o": 0.937, - "build/src/800_b.o": 0.129, - "build/src/800_b_2.o": 0.447, - "build/src/800_b_o0a.o": 0.112, - "build/src/800_c.o": 0.279, - "build/src/800b2.o": 0.144, - "build/src/apicard1.o": 0.094, - "build/src/apicard2.o": 0.072, - "build/src/apicard3.o": 0.074, - "build/src/apicard4.o": 0.086, - "build/src/apicard5.o": 0.108, - "build/src/apicard6.o": 0.078, - "build/src/apicard7.o": 0.109, - "build/src/boot.o": 0.158, - "build/src/gap.o": 0.141, - "build/src/libapi1.o": 0.115, - "build/src/libapi2.o": 0.091, - "build/src/libc2_1.o": 0.098, - "build/src/libc2_2.o": 0.127, - "build/src/libcd1.o": 0.107, - "build/src/libcd2.o": 0.105, - "build/src/libetc.o": 0.085, - "build/src/libgpu.o": 0.102, - "build/src/libgpu2.o": 0.099, - "build/src/libgs1.o": 0.117, - "build/src/libgs2.o": 0.084, - "build/src/libgs3.o": 0.093, - "build/src/libgs4.o": 0.081, - "build/src/libgs5.o": 0.074, - "build/src/libgs6.o": 0.204, - "build/src/libgs7.o": 0.159, - "build/src/libgs8.o": 0.162, - "build/src/libgte1.o": 0.078, - "build/src/libgte10.o": 0.107, - "build/src/libgte11.o": 0.096, - "build/src/libgte12.o": 0.128, - "build/src/libgte13.o": 0.086, - "build/src/libgte14.o": 0.098, - "build/src/libgte15.o": 0.105, - "build/src/libgte16.o": 0.101, - "build/src/libgte17.o": 0.083, - "build/src/libgte18.o": 0.095, - "build/src/libgte19.o": 0.077, - "build/src/libgte2.o": 0.111, - "build/src/libgte20.o": 0.098, - "build/src/libgte21.o": 0.093, - "build/src/libgte22.o": 0.107, - "build/src/libgte23.o": 0.133, - "build/src/libgte24.o": 0.101, - "build/src/libgte25.o": 0.099, - "build/src/libgte26.o": 0.098, - "build/src/libgte27.o": 0.106, - "build/src/libgte28.o": 0.097, - "build/src/libgte29.o": 0.092, - "build/src/libgte3.o": 0.101, - "build/src/libgte30.o": 0.087, - "build/src/libgte4.o": 0.099, - "build/src/libgte5.o": 0.118, - "build/src/libgte6.o": 0.14, - "build/src/libgte7.o": 0.092, - "build/src/libgte8.o": 0.121, - "build/src/libgte9.o": 0.086, - "build/src/libmcrd1.o": 0.092, - "build/src/libmcrd2.o": 0.1, - "build/src/libpad1.o": 0.097, - "build/src/libpad2.o": 0.115, - "build/src/sgap.o": 0.133, - "build/src/sgap_2.o": 0.083, - "build/src/sgap_3.o": 0.089, - "build/src/sgap_4.o": 0.087, - "build/src/sgap_5.o": 0.077, - "build/src/sgap_6.o": 0.115, - "build/src/sgap_8.o": 0.145, - "build/src/snd1.o": 0.097, - "build/src/snd10.o": 0.098, - "build/src/snd11.o": 0.098, - "build/src/snd12.o": 0.079, - "build/src/snd2.o": 0.092, - "build/src/snd3.o": 0.131, - "build/src/snd4.o": 0.072, - "build/src/snd5.o": 0.12, - "build/src/snd6.o": 0.153, - "build/src/snd7.o": 0.12, - "build/src/snd8.o": 0.125, - "build/src/snd9.o": 0.104, - "build/src/ov_SC03_014/ov_SC03_014.o": 0.177, - "build/src/ov_SC03_014/ov_SC03_014_after.o": 0.465, - "build/src/ov_SC03_014/ov_SC03_014_jr_8012ACE0.o": 0.389, - "build/src/ov_SC03_014/ov_SC03_014_jr_80135888.o": 0.08, - "build/src/ov_SC03_014/ov_SC03_014_jr_80135A4C.o": 0.102, - "build/src/ov_SC03_014/ov_SC03_014_jr_80135D20.o": 0.146, - "build/src/ov_SC03_014/ov_SC03_014_jr_801380E0.o": 0.183, - "build/src/ov_SC03_014/ov_SC03_014_jr_8013C98C.o": 0.143, - "build/src/ov_SC03_014/ov_SC03_014_jr_8013F350.o": 0.1, - "build/src/ov_SC03_014/ov_SC03_014_jr_8013FFD8.o": 0.087, - "build/src/ov_SC03_014/ov_SC03_014_jr_80140608.o": 0.212, - "build/src/ov_SC03_014/ov_SC03_014_jr_8015444C.o": 0.103, - "build/src/ov_SC03_014/ov_SC03_014_jr_80154C24.o": 0.18, - "build/src/ov_SC03_014/ov_SC03_014_jr_801588CC.o": 0.111, - "build/src/ov_SC03_014/ov_SC03_014_jr_80159C84.o": 0.064, - "build/src/ov_SC03_014/ov_SC03_014_jr_8015A3C8.o": 0.057, - "build/src/ov_SC03_014/ov_SC03_014_jr_8015AE2C.o": 0.091, - "build/src/ov_SC03_014/ov_SC03_014_jr_8015C32C.o": 0.353, - "build/src/ov_SC03_014/ov_SC03_014_jr_8016AB6C.o": 0.212, - "build/src/ov_SC03_014/ov_SC03_014_jr_80171B4C.o": 0.099, - "build/src/ov_SC03_014/ov_SC03_014_jr_801734BC.o": 0.169, - "build/src/ov_SC03_014/ov_SC03_014_jr_801789AC.o": 0.069, - "build/src/ov_SC03_014/ov_SC03_014_jr_80178D40.o": 0.105, - "build/src/ov_SC03_014/ov_SC03_014_jr_8017A4AC.o": 0.078, - "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.172, - "build/src/ov_SC03_014/ov_SC03_014_jr_80184440.o": 0.057, - "build/src/ov_SC03_014/ov_SC03_014_jr_801848E4.o": 0.228, - "build/src/ov_SC03_014/ov_SC03_014_o0b.o": 0.073, - "build/src/ov_SC03_014/ov_SC03_014_o0c.o": 0.084, - "build/src/ov_SC03_014/ov_SC03_014_o0d.o": 0.072, - "build/src/ov_SC03_014/ov_SC03_014_o0e.o": 0.08, - "build/src/ov_SC03_015/ov_SC03_015.o": 0.125, - "build/src/ov_SC03_015/ov_SC03_015_after.o": 0.333, - "build/src/ov_SC03_015/ov_SC03_015_jr_8012ACE0.o": 0.249, - "build/src/ov_SC03_015/ov_SC03_015_jr_80135888.o": 0.051, - "build/src/ov_SC03_015/ov_SC03_015_jr_80135A4C.o": 0.036, - "build/src/ov_SC03_015/ov_SC03_015_jr_80135D20.o": 0.422, - "build/src/ov_SC03_015/ov_SC03_015_jr_801380E0.o": 0.426, - "build/src/ov_SC03_015/ov_SC03_015_jr_8013C98C.o": 0.421, - "build/src/ov_SC03_015/ov_SC03_015_jr_8013F350.o": 0.087, - "build/src/ov_SC03_015/ov_SC03_015_jr_8013FFD8.o": 0.413, - "build/src/ov_SC03_015/ov_SC03_015_jr_80140608.o": 0.43, - "build/src/ov_SC03_015/ov_SC03_015_jr_8015444C.o": 0.417, - "build/src/ov_SC03_015/ov_SC03_015_jr_80154C24.o": 0.435, - "build/src/ov_SC03_015/ov_SC03_015_jr_801588CC.o": 0.42, - "build/src/ov_SC03_015/ov_SC03_015_jr_80159C84.o": 0.065, - "build/src/ov_SC03_015/ov_SC03_015_jr_8015A3C8.o": 0.069, - "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.324, - "build/src/ov_SC03_015/ov_SC03_015_jr_8016AB6C.o": 0.199, - "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.158, - "build/src/ov_SC03_015/ov_SC03_015_jr_801789AC.o": 0.094, - "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.091, - "build/src/ov_SC03_015/ov_SC03_015_jr_8017AE2C.o": 0.165, - "build/src/ov_SC03_015/ov_SC03_015_jr_8017EB7C.o": 0.2, - "build/src/ov_SC03_015/ov_SC03_015_jr_80184440.o": 0.076, - "build/src/ov_SC03_015/ov_SC03_015_jr_801848E4.o": 0.232, - "build/src/ov_SC03_015/ov_SC03_015_o0b.o": 0.085, - "build/src/ov_SC03_015/ov_SC03_015_o0c.o": 0.094, - "build/src/ov_SC03_015/ov_SC03_015_o0d.o": 0.096, - "build/src/ov_SC03_015/ov_SC03_015_o0e.o": 0.106, - "build/src/ov_SC04_011/ov_SC04_011.o": 0.154, - "build/src/ov_SC04_011/ov_SC04_011_after.o": 0.321, - "build/src/ov_SC04_011/ov_SC04_011_jr_8012ACE0.o": 0.283, - "build/src/ov_SC04_011/ov_SC04_011_jr_80135888.o": 0.06, - "build/src/ov_SC04_011/ov_SC04_011_jr_80135A4C.o": 0.06, - "build/src/ov_SC04_011/ov_SC04_011_jr_80135D20.o": 0.116, - "build/src/ov_SC04_011/ov_SC04_011_jr_801380E0.o": 0.128, - "build/src/ov_SC04_011/ov_SC04_011_jr_8013C98C.o": 0.126, - "build/src/ov_SC04_011/ov_SC04_011_jr_8013F350.o": 0.075, - "build/src/ov_SC04_011/ov_SC04_011_jr_8013FFD8.o": 0.085, - "build/src/ov_SC04_011/ov_SC04_011_jr_80140608.o": 0.156, - "build/src/ov_SC04_011/ov_SC04_011_jr_8015444C.o": 0.083, - "build/src/ov_SC04_011/ov_SC04_011_jr_80154C24.o": 0.11, - "build/src/ov_SC04_011/ov_SC04_011_jr_801588CC.o": 0.116, - "build/src/ov_SC04_011/ov_SC04_011_jr_80159C84.o": 0.096, - "build/src/ov_SC04_011/ov_SC04_011_jr_8015A3C8.o": 0.106, - "build/src/ov_SC04_011/ov_SC04_011_jr_8015AE2C.o": 0.12, - "build/src/ov_SC04_011/ov_SC04_011_jr_8015C32C.o": 0.691, - "build/src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.o": 0.224, - "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.203, - "build/src/ov_SC04_011/ov_SC04_011_jr_801789AC.o": 0.086, - "build/src/ov_SC04_011/ov_SC04_011_jr_80178D40.o": 0.119, - "build/src/ov_SC04_011/ov_SC04_011_jr_8017A4AC.o": 0.072, - "build/src/ov_SC04_011/ov_SC04_011_jr_8017AE2C.o": 0.107, - "build/src/ov_SC04_011/ov_SC04_011_jr_8017D494.o": 0.745, - "build/src/ov_SC04_011/ov_SC04_011_o0b.o": 0.074, - "build/src/ov_SC04_011/ov_SC04_011_o0c.o": 0.072 + "build/src/800.o": 1.092, + "build/src/800_b.o": 0.105, + "build/src/800_b_2.o": 0.443, + "build/src/800_b_o0a.o": 0.139, + "build/src/800_c.o": 0.284, + "build/src/800b2.o": 0.139, + "build/src/apicard1.o": 0.104, + "build/src/apicard2.o": 0.153, + "build/src/apicard3.o": 0.102, + "build/src/apicard4.o": 0.106, + "build/src/apicard5.o": 0.103, + "build/src/apicard6.o": 0.121, + "build/src/apicard7.o": 0.078, + "build/src/boot.o": 0.129, + "build/src/gap.o": 0.086, + "build/src/libapi1.o": 0.103, + "build/src/libapi2.o": 0.159, + "build/src/libc2_1.o": 0.101, + "build/src/libc2_2.o": 0.117, + "build/src/libcd1.o": 0.15, + "build/src/libcd2.o": 0.123, + "build/src/libetc.o": 0.079, + "build/src/libgpu.o": 0.084, + "build/src/libgpu2.o": 0.125, + "build/src/libgs1.o": 0.124, + "build/src/libgs2.o": 0.082, + "build/src/libgs3.o": 0.116, + "build/src/libgs4.o": 0.1, + "build/src/libgs5.o": 0.085, + "build/src/libgs6.o": 0.094, + "build/src/libgs7.o": 0.088, + "build/src/libgs8.o": 0.113, + "build/src/libgte1.o": 0.108, + "build/src/libgte10.o": 0.068, + "build/src/libgte11.o": 0.111, + "build/src/libgte12.o": 0.108, + "build/src/libgte13.o": 0.101, + "build/src/libgte14.o": 0.085, + "build/src/libgte15.o": 0.086, + "build/src/libgte16.o": 0.102, + "build/src/libgte17.o": 0.085, + "build/src/libgte18.o": 0.154, + "build/src/libgte19.o": 0.087, + "build/src/libgte2.o": 0.079, + "build/src/libgte20.o": 0.112, + "build/src/libgte21.o": 0.124, + "build/src/libgte22.o": 0.091, + "build/src/libgte23.o": 0.077, + "build/src/libgte24.o": 0.108, + "build/src/libgte25.o": 0.095, + "build/src/libgte26.o": 0.1, + "build/src/libgte27.o": 0.133, + "build/src/libgte28.o": 0.115, + "build/src/libgte29.o": 0.123, + "build/src/libgte3.o": 0.073, + "build/src/libgte30.o": 0.124, + "build/src/libgte4.o": 0.095, + "build/src/libgte5.o": 0.133, + "build/src/libgte6.o": 0.102, + "build/src/libgte7.o": 0.132, + "build/src/libgte8.o": 0.083, + "build/src/libgte9.o": 0.148, + "build/src/libmcrd1.o": 0.109, + "build/src/libmcrd2.o": 0.122, + "build/src/libpad1.o": 0.078, + "build/src/libpad2.o": 0.121, + "build/src/sgap.o": 0.097, + "build/src/sgap_2.o": 0.084, + "build/src/sgap_3.o": 0.116, + "build/src/sgap_4.o": 0.124, + "build/src/sgap_5.o": 0.137, + "build/src/sgap_6.o": 0.085, + "build/src/sgap_8.o": 0.18, + "build/src/snd1.o": 0.095, + "build/src/snd10.o": 0.105, + "build/src/snd11.o": 0.09, + "build/src/snd12.o": 0.099, + "build/src/snd2.o": 0.116, + "build/src/snd3.o": 0.117, + "build/src/snd4.o": 0.113, + "build/src/snd5.o": 0.117, + "build/src/snd6.o": 0.128, + "build/src/snd7.o": 0.099, + "build/src/snd8.o": 0.077, + "build/src/snd9.o": 0.115, + "build/src/ov_SC03_014/ov_SC03_014.o": 0.2, + "build/src/ov_SC03_014/ov_SC03_014_after.o": 0.731, + "build/src/ov_SC03_014/ov_SC03_014_jr_8012ACE0.o": 0.486, + "build/src/ov_SC03_014/ov_SC03_014_jr_80135888.o": 0.119, + "build/src/ov_SC03_014/ov_SC03_014_jr_80135A4C.o": 0.091, + "build/src/ov_SC03_014/ov_SC03_014_jr_80135D20.o": 0.318, + "build/src/ov_SC03_014/ov_SC03_014_jr_801380E0.o": 0.234, + "build/src/ov_SC03_014/ov_SC03_014_jr_8013C98C.o": 0.182, + "build/src/ov_SC03_014/ov_SC03_014_jr_8013F350.o": 0.113, + "build/src/ov_SC03_014/ov_SC03_014_jr_8013FFD8.o": 0.15, + "build/src/ov_SC03_014/ov_SC03_014_jr_80140608.o": 0.219, + "build/src/ov_SC03_014/ov_SC03_014_jr_8015444C.o": 0.143, + "build/src/ov_SC03_014/ov_SC03_014_jr_80154C24.o": 0.327, + "build/src/ov_SC03_014/ov_SC03_014_jr_801588CC.o": 0.167, + "build/src/ov_SC03_014/ov_SC03_014_jr_80159C84.o": 0.139, + "build/src/ov_SC03_014/ov_SC03_014_jr_8015A3C8.o": 0.118, + "build/src/ov_SC03_014/ov_SC03_014_jr_8015AE2C.o": 0.155, + "build/src/ov_SC03_014/ov_SC03_014_jr_8015C32C.o": 0.674, + "build/src/ov_SC03_014/ov_SC03_014_jr_8016AB6C.o": 0.338, + "build/src/ov_SC03_014/ov_SC03_014_jr_80171B4C.o": 0.14, + "build/src/ov_SC03_014/ov_SC03_014_jr_801734BC.o": 0.327, + "build/src/ov_SC03_014/ov_SC03_014_jr_801789AC.o": 0.114, + "build/src/ov_SC03_014/ov_SC03_014_jr_80178D40.o": 0.128, + "build/src/ov_SC03_014/ov_SC03_014_jr_8017A4AC.o": 0.114, + "build/src/ov_SC03_014/ov_SC03_014_jr_8017AE2C.o": 0.372, + "build/src/ov_SC03_014/ov_SC03_014_jr_8017EB7C.o": 0.316, + "build/src/ov_SC03_014/ov_SC03_014_jr_80184440.o": 0.159, + "build/src/ov_SC03_014/ov_SC03_014_jr_801848E4.o": 0.391, + "build/src/ov_SC03_014/ov_SC03_014_o0b.o": 0.115, + "build/src/ov_SC03_014/ov_SC03_014_o0c.o": 0.112, + "build/src/ov_SC03_014/ov_SC03_014_o0d.o": 0.077, + "build/src/ov_SC03_014/ov_SC03_014_o0e.o": 0.166, + "build/src/ov_SC03_015/ov_SC03_015.o": 0.171, + "build/src/ov_SC03_015/ov_SC03_015_after.o": 0.631, + "build/src/ov_SC03_015/ov_SC03_015_jr_8012ACE0.o": 0.538, + "build/src/ov_SC03_015/ov_SC03_015_jr_80135888.o": 0.089, + "build/src/ov_SC03_015/ov_SC03_015_jr_80135A4C.o": 0.098, + "build/src/ov_SC03_015/ov_SC03_015_jr_80135D20.o": 0.161, + "build/src/ov_SC03_015/ov_SC03_015_jr_801380E0.o": 0.225, + "build/src/ov_SC03_015/ov_SC03_015_jr_8013C98C.o": 0.176, + "build/src/ov_SC03_015/ov_SC03_015_jr_8013F350.o": 0.141, + "build/src/ov_SC03_015/ov_SC03_015_jr_8013FFD8.o": 0.091, + "build/src/ov_SC03_015/ov_SC03_015_jr_80140608.o": 0.258, + "build/src/ov_SC03_015/ov_SC03_015_jr_8015444C.o": 0.136, + "build/src/ov_SC03_015/ov_SC03_015_jr_80154C24.o": 0.206, + "build/src/ov_SC03_015/ov_SC03_015_jr_801588CC.o": 0.121, + "build/src/ov_SC03_015/ov_SC03_015_jr_80159C84.o": 0.08, + "build/src/ov_SC03_015/ov_SC03_015_jr_8015A3C8.o": 0.092, + "build/src/ov_SC03_015/ov_SC03_015_jr_8015AE2C.o": 0.146, + "build/src/ov_SC03_015/ov_SC03_015_jr_8015C32C.o": 0.629, + "build/src/ov_SC03_015/ov_SC03_015_jr_8016AB6C.o": 0.404, + "build/src/ov_SC03_015/ov_SC03_015_jr_80171B4C.o": 0.13, + "build/src/ov_SC03_015/ov_SC03_015_jr_801734BC.o": 0.31, + "build/src/ov_SC03_015/ov_SC03_015_jr_801789AC.o": 0.115, + "build/src/ov_SC03_015/ov_SC03_015_jr_80178D40.o": 0.146, + "build/src/ov_SC03_015/ov_SC03_015_jr_8017A4AC.o": 0.131, + "build/src/ov_SC03_015/ov_SC03_015_jr_8017AE2C.o": 0.203, + "build/src/ov_SC03_015/ov_SC03_015_jr_8017EB7C.o": 0.252, + "build/src/ov_SC03_015/ov_SC03_015_jr_80184440.o": 0.07, + "build/src/ov_SC03_015/ov_SC03_015_jr_801848E4.o": 0.405, + "build/src/ov_SC03_015/ov_SC03_015_o0b.o": 0.081, + "build/src/ov_SC03_015/ov_SC03_015_o0c.o": 0.124, + "build/src/ov_SC03_015/ov_SC03_015_o0d.o": 0.101, + "build/src/ov_SC03_015/ov_SC03_015_o0e.o": 0.151, + "build/src/ov_SC04_011/ov_SC04_011.o": 0.182, + "build/src/ov_SC04_011/ov_SC04_011_after.o": 0.651, + "build/src/ov_SC04_011/ov_SC04_011_jr_8012ACE0.o": 0.511, + "build/src/ov_SC04_011/ov_SC04_011_jr_80135888.o": 0.095, + "build/src/ov_SC04_011/ov_SC04_011_jr_80135A4C.o": 0.094, + "build/src/ov_SC04_011/ov_SC04_011_jr_80135D20.o": 0.153, + "build/src/ov_SC04_011/ov_SC04_011_jr_801380E0.o": 0.205, + "build/src/ov_SC04_011/ov_SC04_011_jr_8013C98C.o": 0.14, + "build/src/ov_SC04_011/ov_SC04_011_jr_8013F350.o": 0.128, + "build/src/ov_SC04_011/ov_SC04_011_jr_8013FFD8.o": 0.107, + "build/src/ov_SC04_011/ov_SC04_011_jr_80140608.o": 0.241, + "build/src/ov_SC04_011/ov_SC04_011_jr_8015444C.o": 0.112, + "build/src/ov_SC04_011/ov_SC04_011_jr_80154C24.o": 0.235, + "build/src/ov_SC04_011/ov_SC04_011_jr_801588CC.o": 0.14, + "build/src/ov_SC04_011/ov_SC04_011_jr_80159C84.o": 0.116, + "build/src/ov_SC04_011/ov_SC04_011_jr_8015A3C8.o": 0.112, + "build/src/ov_SC04_011/ov_SC04_011_jr_8015AE2C.o": 0.174, + "build/src/ov_SC04_011/ov_SC04_011_jr_8015C32C.o": 0.589, + "build/src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.o": 0.35, + "build/src/ov_SC04_011/ov_SC04_011_jr_80171B4C.o": 0.125, + "build/src/ov_SC04_011/ov_SC04_011_jr_801734BC.o": 0.279, + "build/src/ov_SC04_011/ov_SC04_011_jr_801789AC.o": 0.082, + "build/src/ov_SC04_011/ov_SC04_011_jr_80178D40.o": 0.129, + "build/src/ov_SC04_011/ov_SC04_011_jr_8017A4AC.o": 0.135, + "build/src/ov_SC04_011/ov_SC04_011_jr_8017AE2C.o": 0.155, + "build/src/ov_SC04_011/ov_SC04_011_jr_8017D494.o": 0.755, + "build/src/ov_SC04_011/ov_SC04_011_o0b.o": 0.062, + "build/src/ov_SC04_011/ov_SC04_011_o0c.o": 0.126 }, "ok": true, - "seconds": 17.4 + "seconds": 3.8 } diff --git a/.run/P36/delever/ledger.jsonl b/.run/P36/delever/ledger.jsonl index edc7f41b08..2345699d17 100644 --- a/.run/P36/delever/ledger.jsonl +++ b/.run/P36/delever/ledger.jsonl @@ -29281,3 +29281,4 @@ {"ts": "2026-09-10 23:45:43", "label": "s104_d31", "rung": "E", "calib": {"head": "df43d0c95", "stamp": "15956e4a96c4"}, "tu": "src/ov_SC03_108/ov_SC03_108_jr_8017BEBC.c", "fn": "func_8017F2E8", "addr": 2149053160, "aliases": null, "header": false, "includers": 0, "nhash_before": "9605696635bf8fa920963a18be1d7a6b650369eb", "nhash_after": "aad88d293541e4688423679b850112dc5a459de0", "source": ".run/P36/agents/ov_SC05_001__func_80182FB4/scratch/copy_func_8017F2E8.c", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.188, "objects": ["build/src/ov_SC03_108/ov_SC03_108_jr_8017BEBC.o"], "before_text": "void func_8017F2E8(s32 param_1)\n{\n extern void func_801808B4();\n extern void func_8012B178(s32 a0, s32 a1);\n extern s32 func_8012CBA4(s32 a0);\n extern s32 func_8012B608(s32 a0, s32 a1, s32 a2);\n extern s32 func_8012BEE8(s32 a0);\n extern void func_8012ADE4(u8 *a0);\n extern s32 func_8012BD3C(s32 a0, s32 a1, s32 a2);\n extern void func_8012B23C(s32 a0);\n extern s32 func_80143B6C(s32 a0, s32 a1);\n extern void func_80131E00(s32 a0, s32 a1);\n\n s32 sVar1;\n s32 iVar1;\n u16 state;\n s32 uVar2;\n s32 pad[4];\n\n if (*(s16 *)(param_1 + 0xa) >= 0x10) {\n func_801808B4((void *)param_1);\n return;\n }\n\n sVar1 = func_8004787C((*(s32 *)(param_1 + 0xe4) << 6) & 0x7c0);\n *(s16 *)(*(s32 *)(param_1 + 0x20) + 0x1a) = (sVar1 >> 1) + 0x800;\n\n state = *(u16 *)(param_1 + 0x34);\n switch (state) {\n case 0: {\n s32 iVar3 = 0x1000 - sVar1;\n s32 a1;\n if (iVar3 >= 0) {\n a1 = -0x8000 - (iVar3 << 4);\n } else {\n a1 = -0x8000 - ((sVar1 - 0x1000) << 4);\n }\n func_8012B178(param_1, a1);\n iVar1 = func_8012CBA4(param_1);\n if ((iVar1 & 0xff) == 0x1a) {\n goto EXIT_808B4;\n }\n if ((iVar1 & 0x6000) == 0) {\n goto MERGE_4C0;\n }\n if (--*(s32 *)(param_1 + 0xe8) != 0) {\n goto TAIL_5D8;\n }\n {\n s32 iVar2;\n s32 nVar;\n s32 sVar2;\n\n *(u16 *)(param_1 + 0x34) = 1;\n *(s32 *)(param_1 + 0x1c) = 0x20;\n iVar2 = rand();\n nVar = iVar2 % 1024;\n sVar2 = *(s16 *)(*(s32 *)(param_1 + 0x20) + 0x12);\n if (rand() & 1) {\n uVar2 = sVar2 + nVar;\n } else {\n uVar2 = sVar2 - nVar;\n }\n }\n goto MERGE_4E0;\n }\n\n case 1: {\n s32 ptr0 = *(s32 *)(param_1 + 0x20);\n s32 arg0 = *(s16 *)(ptr0 + 0x12);\n s32 ret = func_8012B608(arg0, *(s32 *)(param_1 + 0xe0), 0x14);\n s32 ptr1 = *(s32 *)(param_1 + 0x20);\n s32 sum;\n\n sum = *(u16 *)(ptr1 + 0x12) + ret;\n __asm__ __volatile__(\"\" : \"=r\"(sum) : \"0\"(sum)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus10)\n ret = 0x1000 - sVar1;\n *(s16 *)(ptr1 + 0x12) = sum;\n if (ret < 0) {\n ret = sVar1 - 0x1000;\n }\n ret = ret << 4;\n ret = -ret;\n {\n s32 arg1 = ret - 0x4000;\n __asm__ __volatile__(\"\" : \"=r\"(arg1) : \"0\"(arg1)); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus10)\n func_8012B178(param_1, arg1);\n }\n iVar1 = func_8012CBA4(param_1);\n if ((iVar1 & 0xff) == 0x1a) {\n goto EXIT_808B4;\n }\n if ((iVar1 & 0x6000) != 0) {\n goto MERGE_4E8;\n }\n }\n MERGE_4C0:\n func_8012ADE4((u8 *)param_1);\n {\n /* \u00a717 pin: the merge-block pointer must land in $v1 so reload's\n * scratch for the constant store takes $v0 (see .L8017F4C0). */\n register s32 ptr2 __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus10)\n ptr2 = *(s32 *)(param_1 + 0x20);\n *(u16 *)(param_1 + 0x34) = 2;\n uVar2 = *(s16 *)(ptr2 + 0x12) + 0x800;\n }\n MERGE_4E0:\n *(s32 *)(param_1 + 0xe0) = uVar2;\n goto TAIL_5D8;\n MERGE_4E8:\n if (func_8012BEE8(param_1) != 0) {\n *(u16 *)(param_1 + 0x34) = 0;\n *(s32 *)(param_1 + 0xe8) = 0x40;\n }\n goto TAIL_5D8;\n\n case 2: {\n s32 ptrA = *(s32 *)(param_1 + 0x20);\n s32 arg1 = *(s32 *)(param_1 + 0xe0);\n s32 arg0 = *(s16 *)(ptrA + 0x12);\n s32 ret = func_8012B608(arg0, arg1, 0xa);\n\n if (ret == 0) {\n *(u16 *)(param_1 + 0x34) = 0;\n }\n {\n s32 ptrB = *(s32 *)(param_1 + 0x20);\n *(s16 *)(ptrB + 0x12) = *(u16 *)(ptrB + 0x12) + ret;\n }\n goto TAIL_5D8;\n }\n\n case 3:\n iVar1 = func_8012CBA4(param_1);\n if ((iVar1 & 0xff) != 0x1a) {\n goto NOT_1A;\n }\n EXIT_808B4:\n func_801808B4((void *)param_1);\n return;\n NOT_1A:\n if ((iVar1 & 0x2000) == 0) {\n goto L8017F598;\n }\n func_8012B23C(param_1);\n func_8012B178(param_1, 0xFFFD8000);\n *(u16 *)(param_1 + 0x34) = 0;\n goto TAIL_5D8;\n L8017F598:\n if ((*(s32 *)(param_1 + 0x1c) & 3) != 0) {\n goto L8017F5B4;\n }\n func_80143B6C(param_1, 1);\n L8017F5B4:\n *(s32 *)(param_1 + 0x1c) += 1;\n if (*(s32 *)(param_1 + 0x1c) < 0x3c) {\n goto TAIL_5DC;\n }\n func_80131E00(param_1, 0xd);\n }\n\nTAIL_5D8:\nTAIL_5DC:\n if (func_8012BD3C(param_1, 0x400, 0x24000) == 1) {\n *(s16 *)(param_1 + 2) = 3;\n }\n if (0x100000 < *(s32 *)(param_1 + 0x14)) {\n *(s32 *)(param_1 + 0x14) = 0x100000;\n }\n *(s32 *)(param_1 + 0xe4) += 1;\n}\n", "after_text": "void func_8017F2E8(s32 param_1)\n{\n extern void func_801808B4();\n extern void func_8012B178(s32 a0, s32 a1);\n extern s32 func_8012CBA4(s32 a0);\n extern s32 func_8012B608(s32 a0, s32 a1, s32 a2);\n extern s32 func_8012BEE8(s32 a0);\n extern void func_8012ADE4(u8 *a0);\n extern s32 func_8012BD3C(s32 a0, s32 a1, s32 a2);\n extern void func_8012B23C(s32 a0);\n extern s32 func_80143B6C(s32 a0, s32 a1);\n extern void func_80131E00(s32 a0, s32 a1);\n\n s32 sVar1;\n s32 iVar1;\n s32 pad[4];\n\n if (*(s16 *)(param_1 + 0xa) >= 0x10) {\n func_801808B4((void *)param_1);\n return;\n }\n\n sVar1 = func_8004787C((*(s32 *)(param_1 + 0xe4) << 6) & 0x7c0);\n *(s16 *)(*(s32 *)(param_1 + 0x20) + 0x1a) = (sVar1 >> 1) + 0x800;\n\n switch (*(u16 *)(param_1 + 0x34)) {\n case 0: {\n s32 d = 0x1000 - sVar1;\n s32 arg1;\n\n if (d >= 0) {\n arg1 = -0x8000 - (d << 4);\n } else {\n arg1 = -0x8000 - ((sVar1 - 0x1000) << 4);\n }\n func_8012B178(param_1, arg1);\n iVar1 = func_8012CBA4(param_1);\n if ((iVar1 & 0xff) == 0x1a) {\n func_801808B4((void *)param_1);\n return;\n }\n if ((iVar1 & 0x6000) == 0) {\n func_8012ADE4((u8 *)param_1);\n *(u16 *)(param_1 + 0x34) = 2;\n *(s32 *)(param_1 + 0xe0) = *(s16 *)(*(s32 *)(param_1 + 0x20) + 0x12) + 0x800;\n } else if (--*(s32 *)(param_1 + 0xe8) == 0) {\n s32 nVar;\n s32 sVar2;\n s32 uVar2;\n\n *(u16 *)(param_1 + 0x34) = 1;\n *(s32 *)(param_1 + 0x1c) = 0x20;\n nVar = rand() % 1024;\n sVar2 = *(s16 *)(*(s32 *)(param_1 + 0x20) + 0x12);\n if (rand() & 1) {\n uVar2 = sVar2 + nVar;\n } else {\n uVar2 = sVar2 - nVar;\n }\n *(s32 *)(param_1 + 0xe0) = uVar2;\n }\n break;\n }\n\n case 1: {\n s32 ret = func_8012B608(*(s16 *)(*(s32 *)(param_1 + 0x20) + 0x12), *(s32 *)(param_1 + 0xe0), 0x14);\n s32 ptr = *(s32 *)(param_1 + 0x20);\n s32 d = 0x1000 - sVar1;\n s32 arg1;\n\n *(s16 *)(ptr + 0x12) = *(u16 *)(ptr + 0x12) + ret;\n if (d >= 0) {\n arg1 = -(d << 4) - 0x4000;\n } else {\n arg1 = -((sVar1 - 0x1000) << 4) - 0x4000;\n }\n func_8012B178(param_1, arg1);\n iVar1 = func_8012CBA4(param_1);\n if ((iVar1 & 0xff) == 0x1a) {\n func_801808B4((void *)param_1);\n return;\n }\n if ((iVar1 & 0x6000) == 0) {\n func_8012ADE4((u8 *)param_1);\n *(u16 *)(param_1 + 0x34) = 2;\n *(s32 *)(param_1 + 0xe0) = *(s16 *)(*(s32 *)(param_1 + 0x20) + 0x12) + 0x800;\n } else if (func_8012BEE8(param_1) != 0) {\n *(u16 *)(param_1 + 0x34) = 0;\n *(s32 *)(param_1 + 0xe8) = 0x40;\n }\n break;\n }\n\n case 2: {\n s32 ret = func_8012B608(*(s16 *)(*(s32 *)(param_1 + 0x20) + 0x12), *(s32 *)(param_1 + 0xe0), 0xa);\n s32 ptr;\n\n if (ret == 0) {\n *(u16 *)(param_1 + 0x34) = 0;\n }\n ptr = *(s32 *)(param_1 + 0x20);\n *(s16 *)(ptr + 0x12) = *(u16 *)(ptr + 0x12) + ret;\n break;\n }\n\n case 3:\n iVar1 = func_8012CBA4(param_1);\n if ((iVar1 & 0xff) == 0x1a) {\n func_801808B4((void *)param_1);\n return;\n }\n if ((iVar1 & 0x2000) != 0) {\n func_8012B23C(param_1);\n func_8012B178(param_1, 0xFFFD8000);\n *(u16 *)(param_1 + 0x34) = 0;\n break;\n }\n if ((*(s32 *)(param_1 + 0x1c) & 3) == 0) {\n func_80143B6C(param_1, 1);\n }\n *(s32 *)(param_1 + 0x1c) += 1;\n if (*(s32 *)(param_1 + 0x1c) >= 0x3c) {\n func_80131E00(param_1, 0xd);\n }\n break;\n }\n\n if (func_8012BD3C(param_1, 0x400, 0x24000) == 1) {\n *(s16 *)(param_1 + 2) = 3;\n }\n if (0x100000 < *(s32 *)(param_1 + 0x14)) {\n *(s32 *)(param_1 + 0x14) = 0x100000;\n }\n *(s32 *)(param_1 + 0xe4) += 1;\n}\n"} {"ts": "2026-09-10 23:46:24", "label": "s104_d32", "rung": "E", "calib": {"head": "b074d7f20", "stamp": "15956e4a96c4"}, "tu": "src/ov_SC04_004/ov_SC04_004_jr_8017AE2C.c", "fn": "func_80181744", "addr": 2149062468, "aliases": null, "header": false, "includers": 0, "nhash_before": "9467e18b6ff3f59131a7460352517a3b2b3993b8", "nhash_after": "3ed27d3161cb1f5aad5f27ac0606c337a24d6000", "source": ".run/P36/agents/ov_SC04_004__func_80181744/body.c", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.368, "objects": ["build/src/ov_SC04_004/ov_SC04_004_jr_8017AE2C.o"], "before_text": "void func_80181744(s32 a0) {\n s32 local[4]; \n register s32 v0 __asm__(\"$2\"); // !FAKE: pin $2 \u2014 NEEDED DIFFERS (P36 rung B tus7)\n s32 sum;\n\n v0 = func_80180AF0(a0, 0xFFFB0000, local);\n if (v0 == 1) {\n func_8012ADE4((u8 *)a0);\n *(s32 *)(a0 + 0x1C) = 8;\n func_8012A8B0((u8 *)a0, (s32)&D_80199644);\n func_8012B23C(a0);\n func_8012AD44((s32 *)a0, 1);\n } else {\n v0 = *(s16 *)(a0 + 0x102);\n if (v0 != 0) {\n \n register s32 tmp __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus7)\n tmp = v0;\n __asm__ __volatile__(\"\" : \"=r\"(tmp) : \"0\"(tmp) : \"memory\"); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus7)\n v0 = tmp - 1;\n } else {\n s16 cnt;\n\n if (*(s16 *)(a0 + 0xAA) == 0) {\n func_80180FF8((void *)a0);\n }\n cnt = *(u16 *)(a0 + 0x104) - 1;\n *(s16 *)(a0 + 0x104) = cnt;\n if (cnt != 0) {\n v0 = 4;\n } else {\n *(s16 *)(a0 + 0x104) = 3;\n v0 = 0x20;\n }\n }\n *(s16 *)(a0 + 0x102) = v0;\n\n v0 = *(s32 *)(a0 + 0x20);\n sum = *(u16 *)(v0 + 0x12) + *(u16 *)(a0 + 0x106);\n *(u16 *)(v0 + 0x12) = sum;\n if (func_8012BEE8(a0) != 0) {\n *(s32 *)(a0 + 0x1C) = 0x80;\n v0 = rand();\n *(s16 *)(a0 + 0x106) = (v0 & 0x20) - 0x10;\n }\n }\n}\n", "after_text": "void func_80181744(s32 a0) {\n s32 local;\n\n if (func_80180AF0(a0, 0xFFFB0000, &local) == 1) {\n func_8012ADE4((u8 *)a0);\n *(s32 *)(a0 + 0x1C) = 8;\n func_8012A8B0((u8 *)a0, (s32)&D_80199644);\n func_8012B23C(a0);\n func_8012AD44((s32 *)a0, 1);\n } else {\n if (*(s16 *)(a0 + 0x102) != 0) {\n (*(s16 *)(a0 + 0x102))--;\n } else {\n if (*(s16 *)(a0 + 0xAA) == 0) {\n func_80180FF8((void *)a0);\n }\n if (--(*(s16 *)(a0 + 0x104)) != 0) {\n *(s16 *)(a0 + 0x102) = 4;\n } else {\n *(s16 *)(a0 + 0x104) = 3;\n *(s16 *)(a0 + 0x102) = 0x20;\n }\n }\n *(u16 *)(*(s32 *)(a0 + 0x20) + 0x12) += *(u16 *)(a0 + 0x106);\n if (func_8012BEE8(a0) != 0) {\n *(s32 *)(a0 + 0x1C) = 0x80;\n *(s16 *)(a0 + 0x106) = (rand() & 0x20) - 0x10;\n }\n }\n}\n"} {"ts": "2026-09-10 23:46:52", "label": "s104_d32", "rung": "E", "calib": {"head": "b074d7f20", "stamp": "15956e4a96c4"}, "tu": "src/ov_SC04_003/ov_SC04_003_jr_8017BEBC.c", "fn": "func_801806E8", "addr": 2149058280, "aliases": null, "header": false, "includers": 0, "nhash_before": "9467e18b6ff3f59131a7460352517a3b2b3993b8", "nhash_after": "3ed27d3161cb1f5aad5f27ac0606c337a24d6000", "source": "propagate:src/ov_SC04_004/ov_SC04_004_jr_8017AE2C.c:func_80181744", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.263, "objects": ["build/src/ov_SC04_003/ov_SC04_003_jr_8017BEBC.o"], "before_text": "void func_801806E8(s32 a0) {\n s32 local[4]; \n register s32 v0 __asm__(\"$2\"); // !FAKE: pin $2 \u2014 NEEDED DIFFERS (P36 rung B tus9)\n s32 sum;\n\n v0 = func_8017FA94(a0, 0xFFFB0000, local);\n if (v0 == 1) {\n func_8012ADE4((u8 *)a0);\n *(s32 *)(a0 + 0x1C) = 8;\n func_8012A8B0((u8 *)a0, (s32)&D_8019760C);\n func_8012B23C(a0);\n func_8012AD44((s32 *)a0, 1);\n } else {\n v0 = *(s16 *)(a0 + 0x102);\n if (v0 != 0) {\n \n register s32 tmp __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus9)\n tmp = v0;\n __asm__ __volatile__(\"\" : \"=r\"(tmp) : \"0\"(tmp) : \"memory\"); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus9)\n v0 = tmp - 1;\n } else {\n s16 cnt;\n\n if (*(s16 *)(a0 + 0xAA) == 0) {\n func_8017FF9C((void *)a0);\n }\n cnt = *(u16 *)(a0 + 0x104) - 1;\n *(s16 *)(a0 + 0x104) = cnt;\n if (cnt != 0) {\n v0 = 4;\n } else {\n *(s16 *)(a0 + 0x104) = 3;\n v0 = 0x20;\n }\n }\n *(s16 *)(a0 + 0x102) = v0;\n\n v0 = *(s32 *)(a0 + 0x20);\n sum = *(u16 *)(v0 + 0x12) + *(u16 *)(a0 + 0x106);\n *(u16 *)(v0 + 0x12) = sum;\n if (func_8012BEE8(a0) != 0) {\n *(s32 *)(a0 + 0x1C) = 0x80;\n v0 = rand();\n *(s16 *)(a0 + 0x106) = (v0 & 0x20) - 0x10;\n }\n }\n}\n", "after_text": "void func_801806E8(s32 a0) {\n s32 local;\n\n if (func_8017FA94(a0, 0xFFFB0000, &local) == 1) {\n func_8012ADE4((u8 *)a0);\n *(s32 *)(a0 + 0x1C) = 8;\n func_8012A8B0((u8 *)a0, (s32)&D_8019760C);\n func_8012B23C(a0);\n func_8012AD44((s32 *)a0, 1);\n } else {\n if (*(s16 *)(a0 + 0x102) != 0) {\n (*(s16 *)(a0 + 0x102))--;\n } else {\n if (*(s16 *)(a0 + 0xAA) == 0) {\n func_8017FF9C((void *)a0);\n }\n if (--(*(s16 *)(a0 + 0x104)) != 0) {\n *(s16 *)(a0 + 0x102) = 4;\n } else {\n *(s16 *)(a0 + 0x104) = 3;\n *(s16 *)(a0 + 0x102) = 0x20;\n }\n }\n *(u16 *)(*(s32 *)(a0 + 0x20) + 0x12) += *(u16 *)(a0 + 0x106);\n if (func_8012BEE8(a0) != 0) {\n *(s32 *)(a0 + 0x1C) = 0x80;\n *(s16 *)(a0 + 0x106) = (rand() & 0x20) - 0x10;\n }\n }\n}\n"} +{"ts": "2026-09-10 23:47:29", "label": "s104_d32", "rung": "E", "calib": {"head": "97e5d721b", "stamp": "15956e4a96c4"}, "tu": "src/ov_SC04_002/ov_SC04_002_jr_8017BEBC.c", "fn": "func_801831B8", "addr": 2149069240, "aliases": null, "header": false, "includers": 0, "nhash_before": "9467e18b6ff3f59131a7460352517a3b2b3993b8", "nhash_after": "3ed27d3161cb1f5aad5f27ac0606c337a24d6000", "source": ".run/P36/agents/ov_SC04_004__func_80181744/scratch/copies/func_801831B8.c", "verdict": "LEVER-FREE", "sites": [], "compiles": 1, "seconds": 0.36, "objects": ["build/src/ov_SC04_002/ov_SC04_002_jr_8017BEBC.o"], "before_text": "void func_801831B8(s32 a0) {\n s32 local[4]; /* sp+0x10, out-param scratch for func_80182564; never read back here */\n register s32 v0 __asm__(\"$2\"); // !FAKE: pin $2 \u2014 NEEDED DIFFERS (P36 rung B tus8)\n s32 sum;\n\n v0 = func_80182564(a0, 0xFFFB0000, local);\n if (v0 == 1) {\n func_8012ADE4((u8 *)a0);\n *(s32 *)(a0 + 0x1C) = 8;\n func_8012A8B0((u8 *)a0, (s32)&D_801A86E4);\n func_8012B23C(a0);\n func_8012AD44((s32 *)a0, 1);\n } else {\n v0 = *(s16 *)(a0 + 0x102);\n if (v0 != 0) {\n /* two DISTINCT registers on purpose: the pinned $v0 (=result) is a\n * hardware register variable, so gcc cannot copy-propagate the\n * plain local `tmp` into it \u2014 it must emit a real move, matching\n * the target's addu $v1,$v0,zero / addiu $v0,$v1,-1 pair. */\n register s32 tmp __asm__(\"$3\"); // !FAKE: pin $3 \u2014 NEEDED DIFFERS (P36 rung B tus8)\n tmp = v0;\n __asm__ __volatile__(\"\" : \"=r\"(tmp) : \"0\"(tmp) : \"memory\"); // !FAKE: launder \u2014 NEEDED DIFFERS (P36 rung B tus8)\n v0 = tmp - 1;\n } else {\n s16 cnt;\n\n if (*(s16 *)(a0 + 0xAA) == 0) {\n func_80182A6C((void *)a0);\n }\n cnt = *(u16 *)(a0 + 0x104) - 1;\n *(s16 *)(a0 + 0x104) = cnt;\n if (cnt != 0) {\n v0 = 4;\n } else {\n *(s16 *)(a0 + 0x104) = 3;\n v0 = 0x20;\n }\n }\n *(s16 *)(a0 + 0x102) = v0;\n\n v0 = *(s32 *)(a0 + 0x20);\n sum = *(u16 *)(v0 + 0x12) + *(u16 *)(a0 + 0x106);\n *(u16 *)(v0 + 0x12) = sum;\n if (func_8012BEE8(a0) != 0) {\n *(s32 *)(a0 + 0x1C) = 0x80;\n v0 = rand();\n *(s16 *)(a0 + 0x106) = (v0 & 0x20) - 0x10;\n }\n }\n}\n", "after_text": "void func_801831B8(s32 a0) {\n s32 local;\n\n if (func_80182564(a0, 0xFFFB0000, &local) == 1) {\n func_8012ADE4((u8 *)a0);\n *(s32 *)(a0 + 0x1C) = 8;\n func_8012A8B0((u8 *)a0, (s32)&D_801A86E4);\n func_8012B23C(a0);\n func_8012AD44((s32 *)a0, 1);\n } else {\n if (*(s16 *)(a0 + 0x102) != 0) {\n (*(s16 *)(a0 + 0x102))--;\n } else {\n if (*(s16 *)(a0 + 0xAA) == 0) {\n func_80182A6C((void *)a0);\n }\n if (--(*(s16 *)(a0 + 0x104)) != 0) {\n *(s16 *)(a0 + 0x102) = 4;\n } else {\n *(s16 *)(a0 + 0x104) = 3;\n *(s16 *)(a0 + 0x102) = 0x20;\n }\n }\n *(u16 *)(*(s32 *)(a0 + 0x20) + 0x12) += *(u16 *)(a0 + 0x106);\n if (func_8012BEE8(a0) != 0) {\n *(s32 *)(a0 + 0x1C) = 0x80;\n *(s16 *)(a0 + 0x106) = (rand() & 0x20) - 0x10;\n }\n }\n}\n"} diff --git a/src/ov_SC04_002/ov_SC04_002_jr_8017BEBC.c b/src/ov_SC04_002/ov_SC04_002_jr_8017BEBC.c index 83b401e94c..140b4fe223 100644 --- a/src/ov_SC04_002/ov_SC04_002_jr_8017BEBC.c +++ b/src/ov_SC04_002/ov_SC04_002_jr_8017BEBC.c @@ -7478,52 +7478,32 @@ extern s32 func_8012BEE8(s32 a0); extern M2C_UNK D_801A86E4; void func_801831B8(s32 a0) { - s32 local[4]; /* sp+0x10, out-param scratch for func_80182564; never read back here */ - register s32 v0 __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus8) - s32 sum; + s32 local; - v0 = func_80182564(a0, 0xFFFB0000, local); - if (v0 == 1) { + if (func_80182564(a0, 0xFFFB0000, &local) == 1) { func_8012ADE4((u8 *)a0); *(s32 *)(a0 + 0x1C) = 8; func_8012A8B0((u8 *)a0, (s32)&D_801A86E4); func_8012B23C(a0); func_8012AD44((s32 *)a0, 1); } else { - v0 = *(s16 *)(a0 + 0x102); - if (v0 != 0) { - /* two DISTINCT registers on purpose: the pinned $v0 (=result) is a - * hardware register variable, so gcc cannot copy-propagate the - * plain local `tmp` into it — it must emit a real move, matching - * the target's addu $v1,$v0,zero / addiu $v0,$v1,-1 pair. */ - register s32 tmp __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus8) - tmp = v0; - __asm__ __volatile__("" : "=r"(tmp) : "0"(tmp) : "memory"); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus8) - v0 = tmp - 1; + if (*(s16 *)(a0 + 0x102) != 0) { + (*(s16 *)(a0 + 0x102))--; } else { - s16 cnt; - if (*(s16 *)(a0 + 0xAA) == 0) { func_80182A6C((void *)a0); } - cnt = *(u16 *)(a0 + 0x104) - 1; - *(s16 *)(a0 + 0x104) = cnt; - if (cnt != 0) { - v0 = 4; + if (--(*(s16 *)(a0 + 0x104)) != 0) { + *(s16 *)(a0 + 0x102) = 4; } else { *(s16 *)(a0 + 0x104) = 3; - v0 = 0x20; + *(s16 *)(a0 + 0x102) = 0x20; } } - *(s16 *)(a0 + 0x102) = v0; - - v0 = *(s32 *)(a0 + 0x20); - sum = *(u16 *)(v0 + 0x12) + *(u16 *)(a0 + 0x106); - *(u16 *)(v0 + 0x12) = sum; + *(u16 *)(*(s32 *)(a0 + 0x20) + 0x12) += *(u16 *)(a0 + 0x106); if (func_8012BEE8(a0) != 0) { *(s32 *)(a0 + 0x1C) = 0x80; - v0 = rand(); - *(s16 *)(a0 + 0x106) = (v0 & 0x20) - 0x10; + *(s16 *)(a0 + 0x106) = (rand() & 0x20) - 0x10; } } }