T3: batch t3_S49 — restruct: batch t3_S49 rung S — 50 files (TUs; 648 drawable) · 141 bodies: 111 sites → members / 45 kept / 106 skipped · levers off 0 · compiles 77 in 47 s wall · final 50/50 identical · written 23 files | R22 check-all: 218 passed, 0 failed of 218 | type_census: 1650 definitions (523 layouts, 53 duplicate classes, 0 variant camps) · 362981 cast sites in 52131 bodies over 8 base classes (4 forms + A, coverage OK) · 229 lying declarations / 24 callees (+5293 K&R sites, +418 cross-binary apart) · controls 4/4 (restruct_cycle)

This commit is contained in:
Drew T
2026-10-02 00:27:38 -06:00
parent 8e4386b52c
commit 505ff12795
27 changed files with 654 additions and 438 deletions
+152 -152
View File
@@ -1,7 +1,7 @@
{
"head": "f0954e2f0e",
"head": "f8e355588e",
"stamp": "588cbf38c6e4",
"generated": "2026-10-02 00:08",
"generated": "2026-10-02 00:18",
"aliases": [
"main",
"md_SC07_004",
@@ -21,176 +21,176 @@
"main": {
"objects": 85,
"identical": 85,
"seconds": 8.869000000000002,
"mean_s": 0.104
"seconds": 6.961,
"mean_s": 0.082
},
"md_SC07_004": {
"objects": 1,
"identical": 1,
"seconds": 0.525,
"mean_s": 0.525
"seconds": 0.534,
"mean_s": 0.534
},
"ov_SC03_015": {
"objects": 32,
"identical": 32,
"seconds": 5.020000000000001,
"mean_s": 0.157
"seconds": 4.966,
"mean_s": 0.155
},
"ov_SC04_011": {
"objects": 28,
"identical": 28,
"seconds": 4.191999999999999,
"seconds": 4.192,
"mean_s": 0.15
}
},
"per_object_seconds": {
"build/src/800.o": 0.805,
"build/src/800_b.o": 0.093,
"build/src/800_b_2.o": 0.384,
"build/src/800_b_o0a.o": 0.104,
"build/src/800_c.o": 0.271,
"build/src/800b2.o": 0.103,
"build/src/apicard1.o": 0.102,
"build/src/apicard2.o": 0.089,
"build/src/apicard3.o": 0.101,
"build/src/apicard4.o": 0.112,
"build/src/apicard5.o": 0.098,
"build/src/apicard6.o": 0.104,
"build/src/apicard7.o": 0.135,
"build/src/boot.o": 0.142,
"build/src/gap.o": 0.108,
"build/src/libapi1.o": 0.075,
"build/src/libapi2.o": 0.074,
"build/src/libc2_1.o": 0.104,
"build/src/libc2_2.o": 0.084,
"build/src/libcd1.o": 0.094,
"build/src/libcd2.o": 0.11,
"build/src/libetc.o": 0.077,
"build/src/libgpu.o": 0.107,
"build/src/libgpu2.o": 0.097,
"build/src/libgs1.o": 0.085,
"build/src/libgs2.o": 0.147,
"build/src/libgs3.o": 0.129,
"build/src/libgs4.o": 0.095,
"build/src/libgs5.o": 0.107,
"build/src/libgs6.o": 0.119,
"build/src/libgs7.o": 0.092,
"build/src/libgs8.o": 0.113,
"build/src/libgte1.o": 0.086,
"build/src/libgte10.o": 0.108,
"build/src/libgte11.o": 0.088,
"build/src/libgte12.o": 0.107,
"build/src/libgte13.o": 0.089,
"build/src/libgte14.o": 0.105,
"build/src/libgte15.o": 0.078,
"build/src/libgte16.o": 0.068,
"build/src/libgte17.o": 0.068,
"build/src/libgte18.o": 0.069,
"build/src/libgte19.o": 0.065,
"build/src/libgte2.o": 0.069,
"build/src/libgte20.o": 0.069,
"build/src/libgte21.o": 0.07,
"build/src/libgte22.o": 0.071,
"build/src/libgte23.o": 0.075,
"build/src/libgte24.o": 0.067,
"build/src/libgte25.o": 0.072,
"build/src/libgte26.o": 0.073,
"build/src/libgte27.o": 0.092,
"build/src/libgte28.o": 0.083,
"build/src/libgte29.o": 0.109,
"build/src/libgte3.o": 0.086,
"build/src/libgte30.o": 0.086,
"build/src/libgte4.o": 0.083,
"build/src/libgte5.o": 0.101,
"build/src/libgte6.o": 0.089,
"build/src/libgte7.o": 0.093,
"build/src/libgte8.o": 0.096,
"build/src/libgte9.o": 0.092,
"build/src/libmcrd1.o": 0.118,
"build/src/libmcrd2.o": 0.092,
"build/src/libpad1.o": 0.097,
"build/src/libpad2.o": 0.094,
"build/src/sgap.o": 0.083,
"build/src/sgap_2.o": 0.084,
"build/src/sgap_3.o": 0.081,
"build/src/sgap_4.o": 0.078,
"build/src/sgap_5.o": 0.075,
"build/src/sgap_6.o": 0.079,
"build/src/sgap_8.o": 0.076,
"build/src/snd1.o": 0.089,
"build/src/snd10.o": 0.08,
"build/src/snd11.o": 0.087,
"build/src/snd12.o": 0.075,
"build/src/snd2.o": 0.078,
"build/src/snd3.o": 0.071,
"build/src/snd4.o": 0.071,
"build/src/snd5.o": 0.078,
"build/src/snd6.o": 0.078,
"build/src/snd7.o": 0.08,
"build/src/snd8.o": 0.076,
"build/src/snd9.o": 0.082,
"build/src/md_SC07_004/md_SC07_004.o": 0.525,
"build/src/ov_SC03_015/ov_SC03_015.o": 0.157,
"build/src/ov_SC03_015/ov_SC03_015_after.o": 0.522,
"build/src/ov_SC03_015/ov_SC03_015_jr_8012ACE0.o": 0.397,
"build/src/ov_SC03_015/ov_SC03_015_jr_80135888.o": 0.074,
"build/src/ov_SC03_015/ov_SC03_015_jr_80135A4C.o": 0.085,
"build/src/ov_SC03_015/ov_SC03_015_jr_80135D20.o": 0.131,
"build/src/ov_SC03_015/ov_SC03_015_jr_801380E0.o": 0.184,
"build/src/ov_SC03_015/ov_SC03_015_jr_8013C98C.o": 0.118,
"build/src/ov_SC03_015/ov_SC03_015_jr_8013F350.o": 0.093,
"build/src/ov_SC03_015/ov_SC03_015_jr_8013FFD8.o": 0.081,
"build/src/ov_SC03_015/ov_SC03_015_jr_80140608.o": 0.184,
"build/src/800.o": 0.739,
"build/src/800_b.o": 0.096,
"build/src/800_b_2.o": 0.325,
"build/src/800_b_o0a.o": 0.064,
"build/src/800_c.o": 0.199,
"build/src/800b2.o": 0.079,
"build/src/apicard1.o": 0.097,
"build/src/apicard2.o": 0.073,
"build/src/apicard3.o": 0.063,
"build/src/apicard4.o": 0.066,
"build/src/apicard5.o": 0.088,
"build/src/apicard6.o": 0.076,
"build/src/apicard7.o": 0.066,
"build/src/boot.o": 0.109,
"build/src/gap.o": 0.078,
"build/src/libapi1.o": 0.085,
"build/src/libapi2.o": 0.062,
"build/src/libc2_1.o": 0.064,
"build/src/libc2_2.o": 0.061,
"build/src/libcd1.o": 0.089,
"build/src/libcd2.o": 0.064,
"build/src/libetc.o": 0.064,
"build/src/libgpu.o": 0.066,
"build/src/libgpu2.o": 0.074,
"build/src/libgs1.o": 0.056,
"build/src/libgs2.o": 0.064,
"build/src/libgs3.o": 0.061,
"build/src/libgs4.o": 0.067,
"build/src/libgs5.o": 0.064,
"build/src/libgs6.o": 0.075,
"build/src/libgs7.o": 0.063,
"build/src/libgs8.o": 0.058,
"build/src/libgte1.o": 0.07,
"build/src/libgte10.o": 0.059,
"build/src/libgte11.o": 0.073,
"build/src/libgte12.o": 0.06,
"build/src/libgte13.o": 0.067,
"build/src/libgte14.o": 0.062,
"build/src/libgte15.o": 0.062,
"build/src/libgte16.o": 0.06,
"build/src/libgte17.o": 0.062,
"build/src/libgte18.o": 0.06,
"build/src/libgte19.o": 0.057,
"build/src/libgte2.o": 0.064,
"build/src/libgte20.o": 0.063,
"build/src/libgte21.o": 0.062,
"build/src/libgte22.o": 0.066,
"build/src/libgte23.o": 0.064,
"build/src/libgte24.o": 0.06,
"build/src/libgte25.o": 0.068,
"build/src/libgte26.o": 0.063,
"build/src/libgte27.o": 0.068,
"build/src/libgte28.o": 0.061,
"build/src/libgte29.o": 0.062,
"build/src/libgte3.o": 0.063,
"build/src/libgte30.o": 0.067,
"build/src/libgte4.o": 0.066,
"build/src/libgte5.o": 0.07,
"build/src/libgte6.o": 0.064,
"build/src/libgte7.o": 0.065,
"build/src/libgte8.o": 0.067,
"build/src/libgte9.o": 0.067,
"build/src/libmcrd1.o": 0.073,
"build/src/libmcrd2.o": 0.065,
"build/src/libpad1.o": 0.065,
"build/src/libpad2.o": 0.075,
"build/src/sgap.o": 0.064,
"build/src/sgap_2.o": 0.066,
"build/src/sgap_3.o": 0.065,
"build/src/sgap_4.o": 0.11,
"build/src/sgap_5.o": 0.066,
"build/src/sgap_6.o": 0.087,
"build/src/sgap_8.o": 0.071,
"build/src/snd1.o": 0.071,
"build/src/snd10.o": 0.065,
"build/src/snd11.o": 0.068,
"build/src/snd12.o": 0.068,
"build/src/snd2.o": 0.08,
"build/src/snd3.o": 0.065,
"build/src/snd4.o": 0.088,
"build/src/snd5.o": 0.067,
"build/src/snd6.o": 0.081,
"build/src/snd7.o": 0.068,
"build/src/snd8.o": 0.079,
"build/src/snd9.o": 0.077,
"build/src/md_SC07_004/md_SC07_004.o": 0.534,
"build/src/ov_SC03_015/ov_SC03_015.o": 0.137,
"build/src/ov_SC03_015/ov_SC03_015_after.o": 0.499,
"build/src/ov_SC03_015/ov_SC03_015_jr_8012ACE0.o": 0.385,
"build/src/ov_SC03_015/ov_SC03_015_jr_80135888.o": 0.08,
"build/src/ov_SC03_015/ov_SC03_015_jr_80135A4C.o": 0.079,
"build/src/ov_SC03_015/ov_SC03_015_jr_80135D20.o": 0.126,
"build/src/ov_SC03_015/ov_SC03_015_jr_801380E0.o": 0.181,
"build/src/ov_SC03_015/ov_SC03_015_jr_8013C98C.o": 0.132,
"build/src/ov_SC03_015/ov_SC03_015_jr_8013F350.o": 0.108,
"build/src/ov_SC03_015/ov_SC03_015_jr_8013FFD8.o": 0.083,
"build/src/ov_SC03_015/ov_SC03_015_jr_80140608.o": 0.198,
"build/src/ov_SC03_015/ov_SC03_015_jr_8015444C.o": 0.09,
"build/src/ov_SC03_015/ov_SC03_015_jr_80154C24.o": 0.187,
"build/src/ov_SC03_015/ov_SC03_015_jr_801588CC.o": 0.104,
"build/src/ov_SC03_015/ov_SC03_015_jr_80159C84.o": 0.079,
"build/src/ov_SC03_015/ov_SC03_015_jr_8015A3C8.o": 0.084,
"build/src/ov_SC03_015/ov_SC03_015_jr_8015AE2C.o": 0.107,
"build/src/ov_SC03_015/ov_SC03_015_jr_8015C32C.o": 0.478,
"build/src/ov_SC03_015/ov_SC03_015_jr_8016AB6C.o": 0.272,
"build/src/ov_SC03_015/ov_SC03_015_jr_80171B4C.o": 0.115,
"build/src/ov_SC03_015/ov_SC03_015_jr_801734BC.o": 0.221,
"build/src/ov_SC03_015/ov_SC03_015_jr_801789AC.o": 0.069,
"build/src/ov_SC03_015/ov_SC03_015_jr_80178D40.o": 0.116,
"build/src/ov_SC03_015/ov_SC03_015_jr_8017A4AC.o": 0.071,
"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.218,
"build/src/ov_SC03_015/ov_SC03_015_jr_80184440.o": 0.064,
"build/src/ov_SC03_015/ov_SC03_015_jr_801848E4.o": 0.273,
"build/src/ov_SC03_015/ov_SC03_015_o0b.o": 0.062,
"build/src/ov_SC03_015/ov_SC03_015_o0c.o": 0.072,
"build/src/ov_SC03_015/ov_SC03_015_o0d.o": 0.073,
"build/src/ov_SC03_015/ov_SC03_015_o0e.o": 0.078,
"build/src/ov_SC04_011/ov_SC04_011.o": 0.133,
"build/src/ov_SC04_011/ov_SC04_011_after.o": 0.422,
"build/src/ov_SC04_011/ov_SC04_011_jr_8012ACE0.o": 0.357,
"build/src/ov_SC04_011/ov_SC04_011_jr_80135888.o": 0.061,
"build/src/ov_SC04_011/ov_SC04_011_jr_80135A4C.o": 0.064,
"build/src/ov_SC04_011/ov_SC04_011_jr_80135D20.o": 0.13,
"build/src/ov_SC04_011/ov_SC04_011_jr_801380E0.o": 0.158,
"build/src/ov_SC03_015/ov_SC03_015_jr_80154C24.o": 0.184,
"build/src/ov_SC03_015/ov_SC03_015_jr_801588CC.o": 0.1,
"build/src/ov_SC03_015/ov_SC03_015_jr_80159C84.o": 0.078,
"build/src/ov_SC03_015/ov_SC03_015_jr_8015A3C8.o": 0.08,
"build/src/ov_SC03_015/ov_SC03_015_jr_8015AE2C.o": 0.101,
"build/src/ov_SC03_015/ov_SC03_015_jr_8015C32C.o": 0.465,
"build/src/ov_SC03_015/ov_SC03_015_jr_8016AB6C.o": 0.279,
"build/src/ov_SC03_015/ov_SC03_015_jr_80171B4C.o": 0.11,
"build/src/ov_SC03_015/ov_SC03_015_jr_801734BC.o": 0.195,
"build/src/ov_SC03_015/ov_SC03_015_jr_801789AC.o": 0.074,
"build/src/ov_SC03_015/ov_SC03_015_jr_80178D40.o": 0.104,
"build/src/ov_SC03_015/ov_SC03_015_jr_8017A4AC.o": 0.081,
"build/src/ov_SC03_015/ov_SC03_015_jr_8017AE2C.o": 0.177,
"build/src/ov_SC03_015/ov_SC03_015_jr_8017EB7C.o": 0.214,
"build/src/ov_SC03_015/ov_SC03_015_jr_80184440.o": 0.063,
"build/src/ov_SC03_015/ov_SC03_015_jr_801848E4.o": 0.282,
"build/src/ov_SC03_015/ov_SC03_015_o0b.o": 0.055,
"build/src/ov_SC03_015/ov_SC03_015_o0c.o": 0.075,
"build/src/ov_SC03_015/ov_SC03_015_o0d.o": 0.07,
"build/src/ov_SC03_015/ov_SC03_015_o0e.o": 0.081,
"build/src/ov_SC04_011/ov_SC04_011.o": 0.128,
"build/src/ov_SC04_011/ov_SC04_011_after.o": 0.438,
"build/src/ov_SC04_011/ov_SC04_011_jr_8012ACE0.o": 0.35,
"build/src/ov_SC04_011/ov_SC04_011_jr_80135888.o": 0.065,
"build/src/ov_SC04_011/ov_SC04_011_jr_80135A4C.o": 0.065,
"build/src/ov_SC04_011/ov_SC04_011_jr_80135D20.o": 0.127,
"build/src/ov_SC04_011/ov_SC04_011_jr_801380E0.o": 0.169,
"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.09,
"build/src/ov_SC04_011/ov_SC04_011_jr_8013FFD8.o": 0.074,
"build/src/ov_SC04_011/ov_SC04_011_jr_80140608.o": 0.188,
"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.172,
"build/src/ov_SC04_011/ov_SC04_011_jr_801588CC.o": 0.101,
"build/src/ov_SC04_011/ov_SC04_011_jr_8013F350.o": 0.084,
"build/src/ov_SC04_011/ov_SC04_011_jr_8013FFD8.o": 0.077,
"build/src/ov_SC04_011/ov_SC04_011_jr_80140608.o": 0.184,
"build/src/ov_SC04_011/ov_SC04_011_jr_8015444C.o": 0.078,
"build/src/ov_SC04_011/ov_SC04_011_jr_80154C24.o": 0.175,
"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.07,
"build/src/ov_SC04_011/ov_SC04_011_jr_8015A3C8.o": 0.081,
"build/src/ov_SC04_011/ov_SC04_011_jr_8015AE2C.o": 0.112,
"build/src/ov_SC04_011/ov_SC04_011_jr_8015C32C.o": 0.359,
"build/src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.o": 0.222,
"build/src/ov_SC04_011/ov_SC04_011_jr_80171B4C.o": 0.108,
"build/src/ov_SC04_011/ov_SC04_011_jr_801734BC.o": 0.182,
"build/src/ov_SC04_011/ov_SC04_011_jr_8015A3C8.o": 0.084,
"build/src/ov_SC04_011/ov_SC04_011_jr_8015AE2C.o": 0.104,
"build/src/ov_SC04_011/ov_SC04_011_jr_8015C32C.o": 0.355,
"build/src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.o": 0.225,
"build/src/ov_SC04_011/ov_SC04_011_jr_80171B4C.o": 0.101,
"build/src/ov_SC04_011/ov_SC04_011_jr_801734BC.o": 0.186,
"build/src/ov_SC04_011/ov_SC04_011_jr_801789AC.o": 0.07,
"build/src/ov_SC04_011/ov_SC04_011_jr_80178D40.o": 0.101,
"build/src/ov_SC04_011/ov_SC04_011_jr_8017A4AC.o": 0.081,
"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.435,
"build/src/ov_SC04_011/ov_SC04_011_o0b.o": 0.048,
"build/src/ov_SC04_011/ov_SC04_011_o0c.o": 0.061
"build/src/ov_SC04_011/ov_SC04_011_jr_80178D40.o": 0.1,
"build/src/ov_SC04_011/ov_SC04_011_jr_8017A4AC.o": 0.071,
"build/src/ov_SC04_011/ov_SC04_011_jr_8017AE2C.o": 0.119,
"build/src/ov_SC04_011/ov_SC04_011_jr_8017D494.o": 0.434,
"build/src/ov_SC04_011/ov_SC04_011_o0b.o": 0.049,
"build/src/ov_SC04_011/ov_SC04_011_o0c.o": 0.06
},
"ok": true,
"seconds": 2.2
"seconds": 2.0
}
File diff suppressed because one or more lines are too long
+358 -142
View File
@@ -1,9 +1,9 @@
{
"summary": {
"head": "f0954e2f0e",
"src_stamp": "a36ff8efb2f0c158",
"head": "f8e355588e",
"src_stamp": "9977217b385ea2f7",
"tool_stamp": "e17c5fa676",
"when": "2026-10-02T06:15:44Z",
"when": "2026-10-02T06:25:05Z",
"files": 7306,
"tus": 4121,
"headers": 3181,
@@ -36,66 +36,66 @@
},
"casts": {
"by_form": {
"P": 280014,
"P": 279884,
"I": 54088,
"X": 13790,
"A": 18889,
"C": 150184,
"C": 150256,
"M": 15219,
"K": 19550
"K": 19569
},
"raw_counts": {
"P": 280014,
"P": 279884,
"I": 54088,
"X": 13790,
"A": 18889,
"C": 150184,
"C": 150256,
"M": 15219,
"K": 19550
"K": 19569
},
"coverage_ok": true,
"refused": 0,
"deref_total": 363111,
"deref_total": 362981,
"addr_form": 18889,
"typed_cast_member": 150184,
"bodies": 52139,
"typed_cast_member": 150256,
"bodies": 52131,
"by_bclass": {
"local": 126118,
"param": 174124,
"global": 8738,
"local": 126103,
"param": 174077,
"global": 8725,
"gaddr": 40113,
"nested": 10905,
"nested": 10850,
"ident": 161,
"other": 1614,
"addr-of": 1338
},
"by_width": {
"s2": 104969,
"s4": 96489,
"u2": 90626,
"s2": 104949,
"s4": 96445,
"u2": 90562,
"u1": 36024,
"agg": 13415,
"p4": 11109,
"u4": 8579,
"s1": 1900
"s1": 1898
},
"readability_raw_regex": 282851,
"readability_raw_regex": 282721,
"abs_casts": 0,
"top_bases": [
[
"param",
"param_1",
58173
58171
],
[
"param",
"arg0",
46173
46171
],
[
"param",
"a0",
41985
41942
],
[
"local",
@@ -250,7 +250,7 @@
[
"local",
"pv",
1553
1538
],
[
"param",
@@ -285,13 +285,13 @@
],
"macros": {
"CAST_SIGN": 7954,
"CAST_WIDTH": 9538,
"CAST_WIDTH": 9551,
"CAST_NONSTRUCT": 312,
"CAST_ALIAS": 1111,
"CAST_ALIAS": 1117,
"CAST_MISALIGNED": 623
},
"check_raw": {
"P": 280009,
"P": 279879,
"I": 54088,
"X": 13790,
"M": 15218
@@ -45727,6 +45727,17 @@
"bclass": "local",
"off": 22
},
{
"tu": "src/ov_SC02_041/ov_SC02_041_jr_80178D40.c",
"fn": "func_80178D40",
"line": 3132,
"pos": 114688,
"name": "CAST_WIDTH",
"cls": "WIDTH",
"base": "D_801B8B48",
"bclass": "global",
"off": 4
},
{
"tu": "src/ov_SC02_041/ov_SC02_041_jr_8017BEBC.c",
"fn": "func_8017CE3C",
@@ -48730,6 +48741,17 @@
"bclass": "local",
"off": 22
},
{
"tu": "src/ov_SC03_002/ov_SC03_002_jr_80178D40.c",
"fn": "func_80178D40",
"line": 3132,
"pos": 114688,
"name": "CAST_WIDTH",
"cls": "WIDTH",
"base": "D_801CB248",
"bclass": "global",
"off": 4
},
{
"tu": "src/ov_SC03_002/ov_SC03_002_jr_8017AE2C.c",
"fn": "func_8017C3E4",
@@ -50402,6 +50424,17 @@
"bclass": "local",
"off": 22
},
{
"tu": "src/ov_SC03_003/ov_SC03_003_jr_80178D40.c",
"fn": "func_80178D40",
"line": 3132,
"pos": 114688,
"name": "CAST_WIDTH",
"cls": "WIDTH",
"base": "D_8018F550",
"bclass": "global",
"off": 4
},
{
"tu": "src/ov_SC03_006/ov_SC03_006_after.c",
"fn": "func_801523F4",
@@ -50941,6 +50974,17 @@
"bclass": "local",
"off": 22
},
{
"tu": "src/ov_SC03_006/ov_SC03_006_jr_80178D40.c",
"fn": "func_80178D40",
"line": 3132,
"pos": 114688,
"name": "CAST_WIDTH",
"cls": "WIDTH",
"base": "D_801F6EC8",
"bclass": "global",
"off": 4
},
{
"tu": "src/ov_SC03_006/ov_SC03_006_jr_8017AE2C.c",
"fn": "func_8017BEF8",
@@ -54153,6 +54197,17 @@
"bclass": "local",
"off": 22
},
{
"tu": "src/ov_SC03_007/ov_SC03_007_jr_80178D40.c",
"fn": "func_80178D40",
"line": 3132,
"pos": 114688,
"name": "CAST_WIDTH",
"cls": "WIDTH",
"base": "D_801E9820",
"bclass": "global",
"off": 4
},
{
"tu": "src/ov_SC03_007/ov_SC03_007_jr_8017AE2C.c",
"fn": "func_8017E57C",
@@ -56716,6 +56771,17 @@
"bclass": "local",
"off": 22
},
{
"tu": "src/ov_SC03_010/ov_SC03_010_jr_80178D40.c",
"fn": "func_80178D40",
"line": 3132,
"pos": 114688,
"name": "CAST_WIDTH",
"cls": "WIDTH",
"base": "D_8019FA80",
"bclass": "global",
"off": 4
},
{
"tu": "src/ov_SC03_010/ov_SC03_010_jr_8017C730.c",
"fn": "func_8017E3B8",
@@ -56870,6 +56936,39 @@
"bclass": "local",
"off": 20
},
{
"tu": "src/ov_SC03_010/ov_SC03_010_jr_8017F6C0.c",
"fn": "func_8017F920",
"line": 2969,
"pos": 105755,
"name": "CAST_ALIAS",
"cls": "SCHED-ALIAS",
"base": "a0",
"bclass": "param",
"off": 120
},
{
"tu": "src/ov_SC03_010/ov_SC03_010_jr_8017F6C0.c",
"fn": "func_8017F920",
"line": 2975,
"pos": 105905,
"name": "CAST_ALIAS",
"cls": "SCHED-ALIAS",
"base": "a0",
"bclass": "param",
"off": 118
},
{
"tu": "src/ov_SC03_010/ov_SC03_010_jr_8017F6C0.c",
"fn": "func_8017F920",
"line": 2976,
"pos": 105941,
"name": "CAST_ALIAS",
"cls": "SCHED-ALIAS",
"base": "a0",
"bclass": "param",
"off": 92
},
{
"tu": "src/ov_SC03_011/ov_SC03_011_after.c",
"fn": "func_801523F4",
@@ -57409,6 +57508,17 @@
"bclass": "local",
"off": 22
},
{
"tu": "src/ov_SC03_011/ov_SC03_011_jr_80178D40.c",
"fn": "func_80178D40",
"line": 3132,
"pos": 114688,
"name": "CAST_WIDTH",
"cls": "WIDTH",
"base": "D_801A1D18",
"bclass": "global",
"off": 4
},
{
"tu": "src/ov_SC03_011/ov_SC03_011_jr_8017C730.c",
"fn": "func_8017E65C",
@@ -58223,6 +58333,17 @@
"bclass": "local",
"off": 22
},
{
"tu": "src/ov_SC03_012/ov_SC03_012_jr_80178D40.c",
"fn": "func_80178D40",
"line": 3132,
"pos": 114688,
"name": "CAST_WIDTH",
"cls": "WIDTH",
"base": "D_80194B38",
"bclass": "global",
"off": 4
},
{
"tu": "src/ov_SC03_012/ov_SC03_012_jr_8017AE2C.c",
"fn": "func_8017D8CC",
@@ -58806,6 +58927,17 @@
"bclass": "local",
"off": 22
},
{
"tu": "src/ov_SC03_013/ov_SC03_013_jr_80178D40.c",
"fn": "func_80178D40",
"line": 3132,
"pos": 114688,
"name": "CAST_WIDTH",
"cls": "WIDTH",
"base": "D_801ACE08",
"bclass": "global",
"off": 4
},
{
"tu": "src/ov_SC03_013/ov_SC03_013_jr_8017C730.c",
"fn": "func_8017F0A0",
@@ -59224,6 +59356,39 @@
"bclass": "param",
"off": 2
},
{
"tu": "src/ov_SC03_013/ov_SC03_013_jr_801806F8.c",
"fn": "func_80180958",
"line": 2980,
"pos": 106987,
"name": "CAST_ALIAS",
"cls": "SCHED-ALIAS",
"base": "a0",
"bclass": "param",
"off": 120
},
{
"tu": "src/ov_SC03_013/ov_SC03_013_jr_801806F8.c",
"fn": "func_80180958",
"line": 2986,
"pos": 107137,
"name": "CAST_ALIAS",
"cls": "SCHED-ALIAS",
"base": "a0",
"bclass": "param",
"off": 118
},
{
"tu": "src/ov_SC03_013/ov_SC03_013_jr_801806F8.c",
"fn": "func_80180958",
"line": 2987,
"pos": 107173,
"name": "CAST_ALIAS",
"cls": "SCHED-ALIAS",
"base": "a0",
"bclass": "param",
"off": 92
},
{
"tu": "src/ov_SC03_014/ov_SC03_014_after.c",
"fn": "func_801523F4",
@@ -59763,6 +59928,17 @@
"bclass": "local",
"off": 22
},
{
"tu": "src/ov_SC03_014/ov_SC03_014_jr_80178D40.c",
"fn": "func_80178D40",
"line": 3132,
"pos": 114688,
"name": "CAST_WIDTH",
"cls": "WIDTH",
"base": "D_801EA388",
"bclass": "global",
"off": 4
},
{
"tu": "src/ov_SC03_014/ov_SC03_014_jr_8017AE2C.c",
"fn": "func_8017C6A0",
@@ -61633,6 +61809,17 @@
"bclass": "local",
"off": 22
},
{
"tu": "src/ov_SC03_023/ov_SC03_023_jr_80178D40.c",
"fn": "func_80178D40",
"line": 3132,
"pos": 114688,
"name": "CAST_WIDTH",
"cls": "WIDTH",
"base": "D_80198760",
"bclass": "global",
"off": 4
},
{
"tu": "src/ov_SC03_023/ov_SC03_023_jr_8017AE2C.c",
"fn": "func_8017DDF8",
@@ -62458,6 +62645,17 @@
"bclass": "local",
"off": 22
},
{
"tu": "src/ov_SC03_024/ov_SC03_024_jr_80178D40.c",
"fn": "func_80178D40",
"line": 3132,
"pos": 114688,
"name": "CAST_WIDTH",
"cls": "WIDTH",
"base": "D_801C0CF8",
"bclass": "global",
"off": 4
},
{
"tu": "src/ov_SC03_024/ov_SC03_024_jr_8017AE2C.c",
"fn": "func_8017C6A0",
@@ -64163,6 +64361,17 @@
"bclass": "local",
"off": 22
},
{
"tu": "src/ov_SC03_028/ov_SC03_028_jr_80178D40.c",
"fn": "func_80178D40",
"line": 3132,
"pos": 114688,
"name": "CAST_WIDTH",
"cls": "WIDTH",
"base": "D_801EB030",
"bclass": "global",
"off": 4
},
{
"tu": "src/ov_SC03_028/ov_SC03_028_jr_8017AE2C.c",
"fn": "func_8017C8D0",
@@ -216396,66 +216605,88 @@
"cross_callees": 96
},
"struct_map": {
"types": 18643,
"explained_sites": 359190,
"deref_sites": 363111,
"types": 18792,
"explained_sites": 359060,
"deref_sites": 362981,
"explained_pct": 98.9,
"unassigned_sites": 3921,
"conflicts": 838,
"suspect": 10,
"conflicts": 852,
"suspect": 11,
"evidence": {
"param": 39382,
"arg": 10890,
"assign": 19334,
"ret-of": 5813,
"assign&": 1286,
"return": 1534,
"arg&": 316,
"field": 6925,
"arg": 10920,
"ret-of": 5738,
"assign": 19270,
"return": 1531,
"assign&": 1265,
"arg&": 276,
"field": 6917,
"nested": 9
},
"vetoed": {
"arg-conduit": 139143,
"arg-conduit": 139163,
"arg&-conduit": 14638,
"ret-of-multisource": 6618,
"arg&-no-overlap": 3017,
"assign&-multisource": 12225,
"assign-multisource": 33293,
"field-multisource": 5656,
"arg-no-overlap": 26865,
"ret-of": 446,
"assign": 297,
"return": 3,
"assign&": 318,
"arg": 37,
"field": 16
"assign-multisource": 33292,
"ret-of-multisource": 6631,
"arg-no-overlap": 38762,
"arg&-no-overlap": 3405,
"field-multisource": 5641,
"ret-of": 586,
"assign": 357,
"assign&": 338,
"arg": 132,
"return": 6,
"field": 32
},
"singletons": 14685,
"multi_body": 3958,
"sites_in_multi_body": 303574,
"singletons": 14791,
"multi_body": 4001,
"sites_in_multi_body": 302931,
"top": [
{
"name": "Unkstruct_800D3888",
"sites": 44788,
"bodies": 7524,
"name": "Unkstruct_80126B58",
"sites": 23242,
"bodies": 3018,
"size_hint": 588,
"fields": 221,
"conflicts": 50,
"sign_mixed": 75,
"fields": 165,
"conflicts": 49,
"sign_mixed": 50,
"merges": {
"arg&": 295,
"param": 11266,
"arg": 8076,
"assign": 8627,
"return": 709,
"ret-of": 2456,
"assign&": 150,
"field": 1266
"assign&": 104,
"param": 2154,
"arg": 1121,
"assign": 43,
"field": 43
},
"globals_at": [
"D_80126B58"
],
"globals_ptr": [
"D_80126B58"
]
},
{
"name": "Unkstruct_800B5CB8",
"sites": 20550,
"bodies": 4494,
"size_hint": 268,
"fields": 128,
"conflicts": 50,
"sign_mixed": 53,
"merges": {
"arg&": 255,
"assign&": 19,
"assign": 8633,
"param": 9098,
"ret-of": 2426,
"arg": 6960,
"return": 705,
"field": 1123
},
"globals_at": [
"D_800B5CB8",
"D_800D3888",
"D_800DE5A0",
"D_801269F0"
"D_80181448"
],
"globals_ptr": [
"D_8006386C",
@@ -216546,31 +216777,6 @@
"globals_at": [],
"globals_ptr": []
},
{
"name": "Unkstruct_80126948",
"sites": 3284,
"bodies": 1098,
"size_hint": 164,
"fields": 34,
"conflicts": 0,
"sign_mixed": 10,
"merges": {
"arg&": 1,
"assign": 104,
"param": 8,
"arg": 15,
"assign&": 4
},
"globals_at": [
"D_80126948",
"D_80126E60"
],
"globals_ptr": [
"D_80114EE8",
"D_801151D4",
"D_80126948"
]
},
{
"name": "Unkstruct_57a28935",
"sites": 3271,
@@ -216610,6 +216816,31 @@
"globals_at": [],
"globals_ptr": []
},
{
"name": "Unkstruct_80126948",
"sites": 3034,
"bodies": 848,
"size_hint": 164,
"fields": 34,
"conflicts": 0,
"sign_mixed": 10,
"merges": {
"arg&": 1,
"assign": 104,
"param": 6,
"arg": 14,
"assign&": 4
},
"globals_at": [
"D_80126948",
"D_80126E60"
],
"globals_ptr": [
"D_80114EE8",
"D_801151D4",
"D_80126948"
]
},
{
"name": "Unkstruct_a2c8734a",
"sites": 2604,
@@ -216790,21 +217021,6 @@
},
"globals_at": [],
"globals_ptr": []
},
{
"name": "Unkstruct_cd1bacd2",
"sites": 1764,
"bodies": 126,
"size_hint": 56,
"fields": 10,
"conflicts": 0,
"sign_mixed": 0,
"merges": {
"param": 2,
"assign": 2
},
"globals_at": [],
"globals_ptr": []
}
]
},
@@ -216838,8 +217054,8 @@
"block_frames": 629
},
"global_blocks": {
"n": 2122,
"members": 14248,
"n": 2126,
"members": 14263,
"top": [
{
"base": "0x800cf10c",
@@ -217017,9 +217233,9 @@
"path": ".run/P37/census/parked.tsv"
},
"timing": {
"walk_s": 41.3,
"decls_s": 190.8,
"total_s": 200.5
"walk_s": 47.8,
"decls_s": 190.9,
"total_s": 200.1
}
},
"dup_layout_classes": [
@@ -218813,10 +219029,10 @@
"tier": 3,
"camps": [
[
"Pair_8013AD38"
"Range_80189A70"
],
[
"Range_80189A70"
"Pair_8013AD38"
],
[
"Entry"
@@ -219082,30 +219298,6 @@
"Rec_80180808"
]
},
{
"lhash": "ac91ae2d8aa0",
"size": 28,
"n_names": 3,
"n_defs": 72,
"canon": 3,
"in_c": 59,
"names": [
"G3",
"S800D22E4",
"vec"
],
"tier": 3,
"camps": [
[],
[
"G3"
]
],
"opaque_names": [
"S800D22E4",
"vec"
]
},
{
"lhash": "9568f57fb00f",
"size": 20,
@@ -219156,6 +219348,30 @@
"Blk32_801898F4"
]
},
{
"lhash": "ac91ae2d8aa0",
"size": 28,
"n_names": 3,
"n_defs": 72,
"canon": 3,
"in_c": 59,
"names": [
"G3",
"S800D22E4",
"vec"
],
"tier": 3,
"camps": [
[],
[
"G3"
]
],
"opaque_names": [
"S800D22E4",
"vec"
]
},
{
"lhash": "355775b26f45",
"size": 20,
+13 -13
View File
@@ -1,33 +1,33 @@
type_census — 2026-10-02T06:15:44Z at f0954e2f0e (src stamp a36ff8efb2f0c158, tool e17c5fa676); 7306 files (4121 TUs + 3181 headers), 99109 function definitions; walk 41.3 s, total 200.5 s
type_census — 2026-10-02T06:25:05Z at f8e355588e (src stamp 9977217b385ea2f7, tool e17c5fa676); 7306 files (4121 TUs + 3181 headers), 99109 function definitions; walk 47.8 s, total 200.1 s
DEFINITIONS 1650 struct/union bodies (+0 enums): canonical header 1021 · .c file-scope 0 · .c block-scope 600 · per-function shared headers 29 · other headers 0 · include/ 326
1024 distinct names · 523 distinct layouts (0 unresolved) · 53 duplicate classes covering 496 names (tier 1 0 same-named, tier 2 53 opaque; 44 layout-twin classes / 472 names kept apart) · 42 exact-text classes / 546 copies · 0 VARIANT names (>1 layout) · 55 dead canonical names · 0 canonical names redefined in .c · 4300 scalar/alias typedefs · 145 forward decls
CAST SITES deref 363111 = P 280014 + I 54088 + X 13790 + M 15219 (+ A address-of 18889; + C typed cast-member 150184) in 52139 bodies · coverage OK (raw {'P': 280014, 'I': 54088, 'X': 13790, 'A': 18889, 'C': 150184, 'M': 15219, 'K': 19550}) · refused 0 · absolute 0 · readability regex over raw text 282851
by base: param 174124 · local 126118 · gaddr 40113 · nested 10905 · global 8738 · other 1614 · addr-of 1338 · ident 161
by width: s2 104969 · s4 96489 · u2 90626 · u1 36024 · agg 13415 · p4 11109 · u4 8579 · s1 1900
top bases: param_1(param) 58173 · arg0(param) 46173 · a0(param) 41985 · p(local) 13235 · cach(local) 8246 · buf(local) 7056 · s0(local) 6770 · s1(local) 6454 · p(param) 6220 · flag(local) 5453 · dst(local) 4853 · iVar2(local) 4714 · iVar1(local) 3811 · cur(local) 3375 · e(local) 3103 · src(local) 2599
CAST SITES deref 362981 = P 279884 + I 54088 + X 13790 + M 15219 (+ A address-of 18889; + C typed cast-member 150256) in 52131 bodies · coverage OK (raw {'P': 279884, 'I': 54088, 'X': 13790, 'A': 18889, 'C': 150256, 'M': 15219, 'K': 19569}) · refused 0 · absolute 0 · readability regex over raw text 282721
by base: param 174077 · local 126103 · gaddr 40113 · nested 10850 · global 8725 · other 1614 · addr-of 1338 · ident 161
by width: s2 104949 · s4 96445 · u2 90562 · u1 36024 · agg 13415 · p4 11109 · u4 8579 · s1 1898
top bases: param_1(param) 58171 · arg0(param) 46171 · a0(param) 41942 · p(local) 13235 · cach(local) 8246 · buf(local) 7056 · s0(local) 6770 · s1(local) 6454 · p(param) 6220 · flag(local) 5453 · dst(local) 4853 · iVar2(local) 4714 · iVar1(local) 3811 · cur(local) 3375 · e(local) 3103 · src(local) 2599
DECLARATIONS 99109 function definitions (1894 K&R) · 4279260 extern function declarations over 12088 names (3773 spelled >1 way) · 6424 names with >1 body text · 1078766 data externs over 55542 symbols (18498 typed >1 way) · asm-label aliases 5148 (159 names) · builtins {'memcpy': 301, 'abs': 1} · attributes {'packed': 26, 'aligned': 6}
lying declarations 229 over 24 callees {'K&R-empty': 216, 'narrow': 13} · K&R sites (marked, counted apart) 5293 over 200 callees · cross-binary (the fleet's definitions disagree, this binary has none) 418 over 96 callees
STRUCT MAP 18643 types explain 359190/363111 deref sites (98.9 %); unassigned 3921; 3958 types span ≥2 bodies (303574 sites), 14685 single-body; types with conflicts 838, suspect 10
merges by evidence {'param': 39382, 'arg': 10890, 'assign': 19334, 'ret-of': 5813, 'assign&': 1286, 'return': 1534, 'arg&': 316, 'field': 6925, 'nested': 9}; vetoed {'arg-conduit': 139143, 'arg&-conduit': 14638, 'ret-of-multisource': 6618, 'arg&-no-overlap': 3017, 'assign&-multisource': 12225, 'assign-multisource': 33293, 'field-multisource': 5656, 'arg-no-overlap': 26865, 'ret-of': 446, 'assign': 297, 'return': 3, 'assign&': 318, 'arg': 37, 'field': 16}
Unkstruct_800D3888 sites 44788 bodies 7524 fields 221 size≥0x24c width-conflicts 50 sign-mixed 75 merges {'param': 11266, 'assign': 8627, 'arg': 8076, 'ret-of': 2456} at D_800D3888,D_800DE5A0,D_801269F0 ptr D_8006386C,D_80074778,D_80074780
STRUCT MAP 18792 types explain 359060/362981 deref sites (98.9 %); unassigned 3921; 4001 types span ≥2 bodies (302931 sites), 14791 single-body; types with conflicts 852, suspect 11
merges by evidence {'param': 39382, 'arg': 10920, 'ret-of': 5738, 'assign': 19270, 'return': 1531, 'assign&': 1265, 'arg&': 276, 'field': 6917, 'nested': 9}; vetoed {'arg-conduit': 139163, 'arg&-conduit': 14638, 'assign&-multisource': 12225, 'assign-multisource': 33292, 'ret-of-multisource': 6631, 'arg-no-overlap': 38762, 'arg&-no-overlap': 3405, 'field-multisource': 5641, 'ret-of': 586, 'assign': 357, 'assign&': 338, 'arg': 132, 'return': 6, 'field': 32}
Unkstruct_80126B58 sites 23242 bodies 3018 fields 165 size≥0x24c width-conflicts 49 sign-mixed 50 merges {'param': 2154, 'arg': 1121, 'assign&': 104, 'assign': 43} at D_80126B58 ptr D_80126B58
Unkstruct_800B5CB8 sites 20550 bodies 4494 fields 128 size≥0x10c width-conflicts 50 sign-mixed 53 merges {'param': 9098, 'assign': 8633, 'arg': 6960, 'ret-of': 2426} at D_800B5CB8,D_800D3888,D_80181448 ptr D_8006386C,D_80074778,D_80074780
Unkstruct_cb638a45 sites 6477 bodies 381 fields 6 size≥0x10 width-conflicts 0 sign-mixed 0 merges {'param': 12, 'arg': 5}
Unkstruct_dac960ce sites 4464 bodies 124 fields 13 size≥0x24c width-conflicts 0 sign-mixed 2 merges {'param': 2}
Unkstruct_0caecd54 sites 4340 bodies 124 fields 23 size≥0xfe width-conflicts 0 sign-mixed 1 merges {'param': 2, 'assign': 1, 'return': 1}
Unkstruct_f8ed2b9f sites 4061 bodies 4061 fields 1 size≥0x217 width-conflicts 0 sign-mixed 0 merges {'param': 2}
Unkstruct_a32b99a1 sites 3936 bodies 123 fields 8 size≥0x4b width-conflicts 0 sign-mixed 1 merges {}
Unkstruct_8e3dbe51 sites 3930 bodies 131 fields 5 size≥0x4c width-conflicts 0 sign-mixed 1 merges {}
Unkstruct_80126948 sites 3284 bodies 1098 fields 34 size≥0xa4 width-conflicts 0 sign-mixed 10 merges {'assign': 104, 'arg': 15, 'param': 8, 'assign&': 4} at D_80126948,D_80126E60 ptr D_80114EE8,D_801151D4,D_80126948
Unkstruct_57a28935 sites 3271 bodies 196 fields 26 size≥0xa4 width-conflicts 3 sign-mixed 9 merges {'param': 268, 'arg': 133}
Unkstruct_1fa9e810 sites 3144 bodies 131 fields 3 size≥0x49 width-conflicts 0 sign-mixed 0 merges {}
Unkstruct_30b21035 sites 3100 bodies 124 fields 13 size≥0x54 width-conflicts 0 sign-mixed 0 merges {}
Unkstruct_a2c8734a sites 2604 bodies 124 fields 8 size≥0x34 width-conflicts 0 sign-mixed 3 merges {'param': 2}
GLOBAL BLOCKS 2122 runs of ≥4 adjacent scalar D_ symbols (14248 symbols): 0x800cf10c+0x34 ×29 (D_800CF10C..D_800CF13C) · 0x800a6580+0x3a ×27 (D_800A6580..D_800A65B8) · 0x801998a4+0x57 ×24 (D_801998A4..D_801998FA) · 0x80199840+0x56 ×23 (D_80199840..D_80199895) · 0x801a9608+0x50 ×22 (D_801A9608..D_801A9654) · 0x801ab708+0x54 ×21 (D_801AB708..D_801AB758) · 0x801b0df0+0x4b ×21 (D_801B0DF0..D_801B0E3A) · 0x801b83a0+0x4e ×21 (D_801B83A0..D_801B83ED)
Unkstruct_80126948 sites 3034 bodies 848 fields 34 size≥0xa4 width-conflicts 0 sign-mixed 10 merges {'assign': 104, 'arg': 14, 'param': 6, 'assign&': 4} at D_80126948,D_80126E60 ptr D_80114EE8,D_801151D4,D_80126948
GLOBAL BLOCKS 2126 runs of ≥4 adjacent scalar D_ symbols (14263 symbols): 0x800cf10c+0x34 ×29 (D_800CF10C..D_800CF13C) · 0x800a6580+0x3a ×27 (D_800A6580..D_800A65B8) · 0x801998a4+0x57 ×24 (D_801998A4..D_801998FA) · 0x80199840+0x56 ×23 (D_80199840..D_80199895) · 0x801a9608+0x50 ×22 (D_801A9608..D_801A9654) · 0x801ab708+0x54 ×21 (D_801AB708..D_801AB758) · 0x801b0df0+0x4b ×21 (D_801B0DF0..D_801B0E3A) · 0x801b83a0+0x4e ×21 (D_801B83A0..D_801B83ED)
PARKED (P36) 24 classes / 453 bodies / 691 needed sites → .run/P37/census/parked.tsv; needs {'signature': 13, 'struct': 7, '?': 4}; 22 PARK names are minimum-lever banks
CONTROLS 4/4: player_block_widths OK (D_80078E8C:4/4 D_80078EB2:2/2 D_80078EB4:2/2 D_80078EB6:2/2 D_80078EB8:2/2 D_80078F08:4/4 D_80078F0C:4/4) · matrix_layouts OK (MATRIX=32 MATRIX_L48=48) · prim_layout_class OK (defs in 1 files, 1 spellings, 1/1 in one layout (64 B)) · tu_conflict_D_800A651C OK (s32:1202 | u8[]:9 | OtBlk[]:9 | OtBlk_80016450[]:8 | s32[]:7)
duplicate-layout classes (top 12): 4B×56 names (0 defs): B4_80165140, B4_8017F154, B4_8018750C, B4_8018AD9C… | 8B×46 names (0 defs): Blk8S16, Blk8_80126940, Blk8_80180A38, D_80195AF4_t… | 8B×45 names (0 defs): B8, B8_17F474, B8_80165140, B8_801851A8… | 8B×34 names (0 defs): Args_80182194, Blk8017FD54, Blk8_801A6AD0, Blk8_801AD914… | 20B×32 names (0 defs): Blk20_8017D110, Buf8017BF34_8017BF34, Buf8017BF50_8017C234, Loc_80180E10… | 16B×28 names (0 defs): Blk16X, Blk16_8017ECD4, Blk16_8018A4C4, Blk16_8018A8B8… | 6B×25 names (0 defs): D80190448_t, Pt6_8017D65C, ResMapCol, S6… | 32B×25 names (0 defs): Blk20_8016DF5C, Blk20_80180B78, Blk20_80184694, Blk32L_80133298… | 8B×22 names (22 defs): B8014, Blk8_80133CD4, Blk8_801463A0, Blk8_8017FF80… | 12B×19 names (19 defs): Blk12, Prim126, PrimC59C, PrimC974… | 8B×14 names (0 defs): CdFileLoc, Cmd_801805C8, M8_8016B6BC, Pair8_8017DDC4… | 4B×14 names (0 defs): D_801D0660_s, Ent_80186AE4, P4, Pair4_801B02DC…
VARIANT names (top 12):
type_census: 1650 definitions (523 layouts, 53 duplicate classes, 0 variant camps) · 363111 cast sites in 52139 bodies over 8 base classes (4 forms + A, coverage OK) · 229 lying declarations / 24 callees (+5293 K&R sites, +418 cross-binary apart) · controls 4/4
struct_map: 18643 types over 18643 clusters explain 359190/363111 sites (98.9 %); 3921 unassigned sites; 838 types with conflicts
type_census: 1650 definitions (523 layouts, 53 duplicate classes, 0 variant camps) · 362981 cast sites in 52131 bodies over 8 base classes (4 forms + A, coverage OK) · 229 lying declarations / 24 callees (+5293 K&R sites, +418 cross-binary apart) · controls 4/4
struct_map: 18792 types over 18792 clusters explain 359060/362981 sites (98.9 %); 3921 unassigned sites; 852 types with conflicts
+1 -1
View File
@@ -3129,7 +3129,7 @@ s32 func_80178D40(s32 arg0, s32 arg1)
if (((s32 (*)(s32))((Cmd_80178D40 *)arg1)->a.w)(((Actor_80178D40 *)arg0)) == 0) {
break;
}
D_801B8B48 = *(s32 *)(D_801B8B48 + 4);
D_801B8B48 = CAST_WIDTH(s32, D_801B8B48, 4);
return;
case 0x37:
(*(s16*)&D_801B96D4) = 3;
+13 -13
View File
@@ -2627,34 +2627,34 @@ void func_8017AE2C(s32 param_1) {
case 1:
g[1] = (u16)g[1] - 1;
if (g[1] <= 0) {
*(u16 *)(*(s32 *)(pv + 0x20) + 0x12) = (u16)g[2];
((Unkstruct_800B5CB8 *)*(s32 *)(pv + 0x20))->unk12 = (u16)g[2];
goto reset_both;
}
{
s32 r = func_8012B608(*(s16 *)(*(s32 *)(pv + 0x20) + 0x12), g[2], 6);
*(u16 *)(*(s32 *)(pv + 0x20) + 0x12) =
*(u16 *)(*(s32 *)(pv + 0x20) + 0x12) + r;
s32 r = func_8012B608(*(s16 *)(((Unkstruct_800B5CB8 *)pv)->unk20 + 0x12), g[2], 6);
((Unkstruct_800B5CB8 *)*(s32 *)(pv + 0x20))->unk12 =
((Unkstruct_800B5CB8 *)*(s32 *)(pv + 0x20))->unk12 + r;
}
return;
case 2:
func_8012B178(pv, (s32)g[4] << 8);
func_8012AD80(pv);
*(u16 *)(pv + 0xA) -= 8;
((Unkstruct_800B5CB8 *)pv)->unkA -= 8;
func_8012B030((u8 *)pv);
break;
case 3:
if (g[1] != 0) {
if (g[5] != 0) {
void *p = (void *)(pv + 4);
if ((s16)func_80012A60(*(s16 *)(*(s32 *)(pv + 0x20) + 0x12),
if ((s16)func_80012A60(*(s16 *)(((Unkstruct_800B5CB8 *)pv)->unk20 + 0x12),
(s16)func_8012B744(p, &g[6])) < 0x100) {
g[1] = 0;
}
*(s16 *)(*(s32 *)(pv + 0x20) + 0x12) =
((Unkstruct_800B5CB8 *)*(s32 *)(pv + 0x20))->unk12 =
func_8012B744(p, &D_801B963C);
func_8012B178(pv, 0xFFFA0000);
func_8012AD80(pv);
*(u16 *)(pv + 0xA) -= 8;
((Unkstruct_800B5CB8 *)pv)->unkA -= 8;
func_8012B030((u8 *)pv);
/* &D_801B9630+0xC == &D_801B963C; distinct rtx defeats gcc's address-CSE
so BE98's arg rematerializes instead of sharing the store's reg (byte-gate). */
@@ -2665,9 +2665,9 @@ void func_8017AE2C(s32 param_1) {
}
{
s32 t = func_8012B744((void *)(pv + 4), &g[6]);
s32 r = func_8012B608(*(s16 *)(*(s32 *)(pv + 0x20) + 0x12), t, g[3]);
*(u16 *)(*(s32 *)(pv + 0x20) + 0x12) =
*(u16 *)(*(s32 *)(pv + 0x20) + 0x12) + r;
s32 r = func_8012B608(*(s16 *)(((Unkstruct_800B5CB8 *)pv)->unk20 + 0x12), t, g[3]);
((Unkstruct_800B5CB8 *)*(s32 *)(pv + 0x20))->unk12 =
((Unkstruct_800B5CB8 *)*(s32 *)(pv + 0x20))->unk12 + r;
}
g[1] = (u16)g[1] - 1;
if (g[1] > 0) {
@@ -2676,11 +2676,11 @@ void func_8017AE2C(s32 param_1) {
g[1] = 0;
return;
}
*(s16 *)(*(s32 *)(pv + 0x20) + 0x12) =
((Unkstruct_800B5CB8 *)*(s32 *)(pv + 0x20))->unk12 =
func_8012B744((void *)(pv + 4), &D_801B963C);
func_8012B178(pv, 0xFFFA0000);
func_8012AD80(pv);
*(u16 *)(pv + 0xA) -= 8;
((Unkstruct_800B5CB8 *)pv)->unkA -= 8;
func_8012B030((u8 *)pv);
/* see note above: distinct rtx for the same address defeats address-CSE. */
if (func_8012BE98(pv, (u16 *)((s32)&D_801B9630 + 0xC)) < 0x101) {
+9 -9
View File
@@ -3000,13 +3000,13 @@ void func_80184DDC(void *a0)
extern u8 D_801B9550[];
extern short D_80192640;
switch (*(u16 *)((s32)a0 + 0x34)) {
switch (((Unkstruct_800B5CB8 *)a0)->unk34) {
case 0:
if (func_801886A0(4) == 0) {
return;
}
func_80187994((s32)a0, (s32)D_801B9544, 0, 0x40);
*(u16 *)((s32)a0 + 0x34) = 1;
((Unkstruct_800B5CB8 *)a0)->unk34 = 1;
return;
case 1:
func_801886A0(4);
@@ -3014,19 +3014,19 @@ void func_80184DDC(void *a0)
return;
}
func_80187994((s32)a0, (s32)D_801B9550, 0, 0x40);
*(u16 *)((s32)a0 + 0x34) = 2;
((Unkstruct_800B5CB8 *)a0)->unk34 = 2;
return;
case 2:
*(s32 *)(*(s32 *)((s32)a0 + 0xCC) + 0xB0) = 2;
((Unkstruct_800B5CB8 *)*(s32 *)((s32)a0 + 0xCC))->unkB0 = 2;
if (func_80187A64((s32)a0) != 0) {
*(u16 *)((s32)a0 + 0x34) = 3;
((Unkstruct_800B5CB8 *)a0)->unk34 = 3;
}
return;
case 3:
if (func_801886A0(4) == 0) {
return;
}
*(u16 *)((s32)a0 + 0x34) = 4;
((Unkstruct_800B5CB8 *)a0)->unk34 = 4;
func_80187994((s32)a0, (s32)D_801B9544, 1, 0x40);
return;
case 4:
@@ -3034,7 +3034,7 @@ void func_80184DDC(void *a0)
if (func_80187A64((s32)a0) == 0) {
return;
}
*(u16 *)((s32)a0 + 0x2) = 5;
((Unkstruct_800B5CB8 *)a0)->unk2 = 5;
func_80187778((s32 *)a0, (s32)&D_80192640);
return;
}
@@ -3048,8 +3048,8 @@ void func_80184F18(s32 *arg0)
extern void func_80187750(s32 a0);
extern short D_801C36E8;
*(s16 *)((s32)arg0 + 2) = 9;
*(s16 *)((s32)arg0 + 0x34) = 0;
((Unkstruct_800B5CB8 *)arg0)->unk2 = 9;
((Unkstruct_800B5CB8 *)arg0)->unk34 = 0;
func_8012E88C((s32)arg0);
func_8012A828((s32)arg0, (s32)&D_801C36E8);
func_80187750((s32)arg0);
+1 -1
View File
@@ -3129,7 +3129,7 @@ s32 func_80178D40(s32 arg0, s32 arg1)
if (((s32 (*)(s32))((Cmd_80178D40 *)arg1)->a.w)(((Actor_80178D40 *)arg0)) == 0) {
break;
}
D_801CB248 = *(s32 *)(D_801CB248 + 4);
D_801CB248 = CAST_WIDTH(s32, D_801CB248, 4);
return;
case 0x37:
(*(s16*)&D_801CBB4C) = 3;
+3 -3
View File
@@ -2955,7 +2955,7 @@ void func_801816F0(void *a0) {
extern void (*D_801899F4[])(void);
void func_80181808(void *a0) {
D_801899F4[*(u16 *)((s32)a0 + 0x2)]();
D_801899F4[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -3045,7 +3045,7 @@ s32 func_80181990(void *a0)
void func_80181A10(void *a0)
{
s32 v0;
*(s32 *)(*(s32 *)((s32)a0 + 0xCC) + 0xB0) = 2;
((Unkstruct_800B5CB8 *)*(s32 *)((s32)a0 + 0xCC))->unkB0 = 2;
v0 = func_8018317C(5, 0, 5, 0x1E);
if (v0 != 0) {
func_80181548(a0);
@@ -3104,7 +3104,7 @@ void func_80181B24(s32 a0)
if (func_80183550(a0) != 0) {
func_80183480(a0, (s32)&D_801A4304, 1, 0x70);
}
if (func_8012BD14(*(s32 *)(a0 + 0x64)) < 0x4001) {
if (func_8012BD14(((Unkstruct_800B5CB8 *)a0)->unk64) < 0x4001) {
func_8014CB68();
}
}
+12 -12
View File
@@ -2833,49 +2833,49 @@ extern int func_80178970(void);
extern void func_80178D18(void);
void func_80181BCC(void *a0) {
switch (*(u16 *)((char *)a0 + 0x34)) {
switch (((Unkstruct_800B5CB8 *)a0)->unk34) {
case 0:
func_801789AC((s32)a0);
if (func_80128C98(3) != 0) {
(*(u16 *)((char *)a0 + 0x34))++;
(((Unkstruct_800B5CB8 *)a0)->unk34)++;
}
break;
case 1:
if (func_801789AC((s32)a0) != 0) {
(*(u16 *)((char *)a0 + 0x34)) += 1;
(((Unkstruct_800B5CB8 *)a0)->unk34) += 1;
func_80178CBC((s32)a0, (s32)&D_80189ADC);
}
break;
case 2:
((s32 (*)(s32))func_80178970)((s32)a0);
if ((func_80029178(0x10A) & 0xFF) != 0) {
(*(u16 *)((char *)a0 + 0x34))++;
(((Unkstruct_800B5CB8 *)a0)->unk34)++;
}
break;
case 3:
((s32 (*)(s32))func_80178970)((s32)a0);
*(u16 *)(*(s32 *)((char *)a0 + 0x20) + 0x12) =
*(u16 *)(*(s32 *)((char *)a0 + 0x20) + 0x12) +
func_8012B608(*(s16 *)(*(s32 *)((char *)a0 + 0x20) + 0x12), 0x1E0, 8);
((Unkstruct_800B5CB8 *)*(s32 *)((char *)a0 + 0x20))->unk12 =
((Unkstruct_800B5CB8 *)*(s32 *)((char *)a0 + 0x20))->unk12 +
func_8012B608(*(s16 *)(((Unkstruct_800B5CB8 *)a0)->unk20 + 0x12), 0x1E0, 8);
break;
case 4:
if (((s32 (*)(s32))func_80178970)((s32)a0) != 0) {
func_80029514(0x87);
func_800D0CA0(1);
*(s32 *)((char *)a0 + 0x1C) = 0x1E;
(*(u16 *)((char *)a0 + 0x34))++;
((Unkstruct_800B5CB8 *)a0)->unk1C = 0x1E;
(((Unkstruct_800B5CB8 *)a0)->unk34)++;
}
break;
case 5:
if (func_8012BEE8((s32)a0) != 0) {
(*(u16 *)((char *)a0 + 0x34))++;
(((Unkstruct_800B5CB8 *)a0)->unk34)++;
}
break;
case 6:
if (func_800D0CE0() == 1) {
((void (*)(s32))func_80178D18)((s32)a0);
func_80183264(a0, (s32)D_80189A40);
*(u16 *)((char *)a0 + 0x2) = 4;
((Unkstruct_800B5CB8 *)a0)->unk2 = 4;
}
break;
}
@@ -2886,6 +2886,6 @@ void func_80181BCC(void *a0) {
extern void (*D_80189BEC[])(void);
void func_80181D3C(void *a0) {
D_80189BEC[*(u16 *)((s32)a0 + 0x2)]();
D_80189BEC[((Unkstruct_80126B58 *)a0)->unk2]();
}
+1 -1
View File
@@ -3129,7 +3129,7 @@ s32 func_80178D40(s32 arg0, s32 arg1)
if (((s32 (*)(s32))((Cmd_80178D40 *)arg1)->a.w)(((Actor_80178D40 *)arg0)) == 0) {
break;
}
D_8018F550 = *(s32 *)(D_8018F550 + 4);
D_8018F550 = CAST_WIDTH(s32, D_8018F550, 4);
return;
case 0x37:
(*(s16*)&D_8018FB74) = 3;
+16 -16
View File
@@ -2627,34 +2627,34 @@ void func_8017AE2C(s32 param_1) {
case 1:
g[1] = (u16)g[1] - 1;
if (g[1] <= 0) {
*(u16 *)(*(s32 *)(pv + 0x20) + 0x12) = (u16)g[2];
((Unkstruct_800B5CB8 *)*(s32 *)(pv + 0x20))->unk12 = (u16)g[2];
goto reset_both;
}
{
s32 r = func_8012B608(*(s16 *)(*(s32 *)(pv + 0x20) + 0x12), g[2], 6);
*(u16 *)(*(s32 *)(pv + 0x20) + 0x12) =
*(u16 *)(*(s32 *)(pv + 0x20) + 0x12) + r;
s32 r = func_8012B608(*(s16 *)(((Unkstruct_800B5CB8 *)pv)->unk20 + 0x12), g[2], 6);
((Unkstruct_800B5CB8 *)*(s32 *)(pv + 0x20))->unk12 =
((Unkstruct_800B5CB8 *)*(s32 *)(pv + 0x20))->unk12 + r;
}
return;
case 2:
func_8012B178(pv, (s32)g[4] << 8);
func_8012AD80(pv);
*(u16 *)(pv + 0xA) -= 8;
((Unkstruct_800B5CB8 *)pv)->unkA -= 8;
func_8012B030((u8 *)pv);
break;
case 3:
if (g[1] != 0) {
if (g[5] != 0) {
void *p = (void *)(pv + 4);
if ((s16)func_80012A60(*(s16 *)(*(s32 *)(pv + 0x20) + 0x12),
if ((s16)func_80012A60(*(s16 *)(((Unkstruct_800B5CB8 *)pv)->unk20 + 0x12),
(s16)func_8012B744(p, &g[6])) < 0x100) {
g[1] = 0;
}
*(s16 *)(*(s32 *)(pv + 0x20) + 0x12) =
((Unkstruct_800B5CB8 *)*(s32 *)(pv + 0x20))->unk12 =
func_8012B744(p, &D_8018FADC);
func_8012B178(pv, 0xFFFA0000);
func_8012AD80(pv);
*(u16 *)(pv + 0xA) -= 8;
((Unkstruct_800B5CB8 *)pv)->unkA -= 8;
func_8012B030((u8 *)pv);
/* &D_8018FAD0+0xC == &D_8018FADC; distinct rtx defeats gcc's address-CSE
so BE98's arg rematerializes instead of sharing the store's reg (byte-gate). */
@@ -2665,9 +2665,9 @@ void func_8017AE2C(s32 param_1) {
}
{
s32 t = func_8012B744((void *)(pv + 4), &g[6]);
s32 r = func_8012B608(*(s16 *)(*(s32 *)(pv + 0x20) + 0x12), t, g[3]);
*(u16 *)(*(s32 *)(pv + 0x20) + 0x12) =
*(u16 *)(*(s32 *)(pv + 0x20) + 0x12) + r;
s32 r = func_8012B608(*(s16 *)(((Unkstruct_800B5CB8 *)pv)->unk20 + 0x12), t, g[3]);
((Unkstruct_800B5CB8 *)*(s32 *)(pv + 0x20))->unk12 =
((Unkstruct_800B5CB8 *)*(s32 *)(pv + 0x20))->unk12 + r;
}
g[1] = (u16)g[1] - 1;
if (g[1] > 0) {
@@ -2676,11 +2676,11 @@ void func_8017AE2C(s32 param_1) {
g[1] = 0;
return;
}
*(s16 *)(*(s32 *)(pv + 0x20) + 0x12) =
((Unkstruct_800B5CB8 *)*(s32 *)(pv + 0x20))->unk12 =
func_8012B744((void *)(pv + 4), &D_8018FADC);
func_8012B178(pv, 0xFFFA0000);
func_8012AD80(pv);
*(u16 *)(pv + 0xA) -= 8;
((Unkstruct_800B5CB8 *)pv)->unkA -= 8;
func_8012B030((u8 *)pv);
/* see note above: distinct rtx for the same address defeats address-CSE. */
if (func_8012BE98(pv, (u16 *)((s32)&D_8018FAD0 + 0xC)) < 0x101) {
@@ -3304,7 +3304,7 @@ void func_8017BE60(void *a0) {
extern void (*D_80182CBC[])(void);
void func_8017BEBC(void *a0) {
D_80182CBC[*(u16 *)((s32)a0 + 0x2)]();
D_80182CBC[((Unkstruct_80126B58 *)a0)->unk2]();
}
@@ -3322,7 +3322,7 @@ void func_8017BEF8(s32 param_1)
v0 = ((s32 (*)(void))func_801465C0)();
s0 = v0;
*(s32 *)(param_1 + 0x20) = v0;
((Unkstruct_80126B58 *)param_1)->unk20 = v0;
if (v0 == 0) {
((void (*)(s32))func_80146C3C)(param_1);
@@ -3336,7 +3336,7 @@ void func_8017BEF8(s32 param_1)
*(s16 *)(s0 + 0x14) = -0xE3;
*(s32 *)(s0 + 4) |= 0x8000000;
func_80146E90((s32 *)param_1, 4);
*(u16 *)(param_1 + 2) += 1;
((Unkstruct_80126B58 *)param_1)->unk2 += 1;
}
+1 -1
View File
@@ -3129,7 +3129,7 @@ s32 func_80178D40(s32 arg0, s32 arg1)
if (((s32 (*)(s32))((Cmd_80178D40 *)arg1)->a.w)(((Actor_80178D40 *)arg0)) == 0) {
break;
}
D_801F6EC8 = *(s32 *)(D_801F6EC8 + 4);
D_801F6EC8 = CAST_WIDTH(s32, D_801F6EC8, 4);
return;
case 0x37:
(*(s16*)&D_801F78B4) = 3;
+1 -1
View File
@@ -3129,7 +3129,7 @@ s32 func_80178D40(s32 arg0, s32 arg1)
if (((s32 (*)(s32))((Cmd_80178D40 *)arg1)->a.w)(((Actor_80178D40 *)arg0)) == 0) {
break;
}
D_801E9820 = *(s32 *)(D_801E9820 + 4);
D_801E9820 = CAST_WIDTH(s32, D_801E9820, 4);
return;
case 0x37:
(*(s16*)&D_801EB2C4) = 3;
+1 -1
View File
@@ -3129,7 +3129,7 @@ s32 func_80178D40(s32 arg0, s32 arg1)
if (((s32 (*)(s32))((Cmd_80178D40 *)arg1)->a.w)(((Actor_80178D40 *)arg0)) == 0) {
break;
}
D_8019FA80 = *(s32 *)(D_8019FA80 + 4);
D_8019FA80 = CAST_WIDTH(s32, D_8019FA80, 4);
return;
case 0x37:
(*(s16*)&D_801A01CC) = 3;
+14 -14
View File
@@ -2627,34 +2627,34 @@ void func_8017AE2C(s32 param_1) {
case 1:
g[1] = (u16)g[1] - 1;
if (g[1] <= 0) {
*(u16 *)(*(s32 *)(pv + 0x20) + 0x12) = (u16)g[2];
((Unkstruct_800B5CB8 *)*(s32 *)(pv + 0x20))->unk12 = (u16)g[2];
goto reset_both;
}
{
s32 r = func_8012B608(*(s16 *)(*(s32 *)(pv + 0x20) + 0x12), g[2], 6);
*(u16 *)(*(s32 *)(pv + 0x20) + 0x12) =
*(u16 *)(*(s32 *)(pv + 0x20) + 0x12) + r;
s32 r = func_8012B608(*(s16 *)(((Unkstruct_800B5CB8 *)pv)->unk20 + 0x12), g[2], 6);
((Unkstruct_800B5CB8 *)*(s32 *)(pv + 0x20))->unk12 =
((Unkstruct_800B5CB8 *)*(s32 *)(pv + 0x20))->unk12 + r;
}
return;
case 2:
func_8012B178(pv, (s32)g[4] << 8);
func_8012AD80(pv);
*(u16 *)(pv + 0xA) -= 8;
((Unkstruct_800B5CB8 *)pv)->unkA -= 8;
func_8012B030((u8 *)pv);
break;
case 3:
if (g[1] != 0) {
if (g[5] != 0) {
void *p = (void *)(pv + 4);
if ((s16)func_80012A60(*(s16 *)(*(s32 *)(pv + 0x20) + 0x12),
if ((s16)func_80012A60(*(s16 *)(((Unkstruct_800B5CB8 *)pv)->unk20 + 0x12),
(s16)func_8012B744(p, &g[6])) < 0x100) {
g[1] = 0;
}
*(s16 *)(*(s32 *)(pv + 0x20) + 0x12) =
((Unkstruct_800B5CB8 *)*(s32 *)(pv + 0x20))->unk12 =
func_8012B744(p, &D_801A0134);
func_8012B178(pv, 0xFFFA0000);
func_8012AD80(pv);
*(u16 *)(pv + 0xA) -= 8;
((Unkstruct_800B5CB8 *)pv)->unkA -= 8;
func_8012B030((u8 *)pv);
/* &D_801A0128+0xC == &D_801A0134; distinct rtx defeats gcc's address-CSE
so BE98's arg rematerializes instead of sharing the store's reg (byte-gate). */
@@ -2665,9 +2665,9 @@ void func_8017AE2C(s32 param_1) {
}
{
s32 t = func_8012B744((void *)(pv + 4), &g[6]);
s32 r = func_8012B608(*(s16 *)(*(s32 *)(pv + 0x20) + 0x12), t, g[3]);
*(u16 *)(*(s32 *)(pv + 0x20) + 0x12) =
*(u16 *)(*(s32 *)(pv + 0x20) + 0x12) + r;
s32 r = func_8012B608(*(s16 *)(((Unkstruct_800B5CB8 *)pv)->unk20 + 0x12), t, g[3]);
((Unkstruct_800B5CB8 *)*(s32 *)(pv + 0x20))->unk12 =
((Unkstruct_800B5CB8 *)*(s32 *)(pv + 0x20))->unk12 + r;
}
g[1] = (u16)g[1] - 1;
if (g[1] > 0) {
@@ -2676,11 +2676,11 @@ void func_8017AE2C(s32 param_1) {
g[1] = 0;
return;
}
*(s16 *)(*(s32 *)(pv + 0x20) + 0x12) =
((Unkstruct_800B5CB8 *)*(s32 *)(pv + 0x20))->unk12 =
func_8012B744((void *)(pv + 4), &D_801A0134);
func_8012B178(pv, 0xFFFA0000);
func_8012AD80(pv);
*(u16 *)(pv + 0xA) -= 8;
((Unkstruct_800B5CB8 *)pv)->unkA -= 8;
func_8012B030((u8 *)pv);
/* see note above: distinct rtx for the same address defeats address-CSE. */
if (func_8012BE98(pv, (u16 *)((s32)&D_801A0128 + 0xC)) < 0x101) {
@@ -3316,7 +3316,7 @@ extern void func_80146C3C(u8 *a0);
extern void (*D_80183A08[])(void);
void func_8017BFC8(void *a0) {
D_80183A08[*(u16 *)((s32)a0 + 0x2)]();
D_80183A08[((Unkstruct_80126B58 *)a0)->unk2]();
}
+11 -11
View File
@@ -2966,17 +2966,17 @@ void func_8017F920(s32 a0) {
s32 addr;
addr = (s32)&D_8019C7EC;
*(s32 *)(a0 + 0x78) = addr;
CAST_ALIAS(s32, a0, 0x78) = addr;
if (D_80078EAE == 0) {
v0 = (*(s16 *)addr * 24) / 16;
} else {
v0 = *(u16 *)addr;
}
*(s16 *)(a0 + 0x76) = v0;
*(s16 *)(a0 + 0x5C) = D_8019C7EE;
CAST_ALIAS(s16, a0, 0x76) = v0;
CAST_ALIAS(s16, a0, 0x5C) = D_8019C7EE;
if (D_8019C7F0 != 0) {
v0 = ((s32 (*)(void))func_8012C1B8)();
*(s32 *)(a0 + 0x20) = v0;
((Unkstruct_800B5CB8 *)a0)->unk20 = v0;
if (v0 == 0) {
func_8012CAE4((void *)a0);
return;
@@ -2984,18 +2984,18 @@ void func_8017F920(s32 a0) {
func_8001C810(v0, D_8019C7F0);
}
if (D_8019C7F4 != 0) {
*(s32 *)(a0 + 0x58) = D_8019C7F4 | 0x60000000;
((Unkstruct_800B5CB8 *)a0)->unk58 = D_8019C7F4 | 0x60000000;
}
addr = *(s32 *)(a0 + 0x20);
addr = ((Unkstruct_800B5CB8 *)a0)->unk20;
*(s32 *)(addr + 0x4) |= 0x8040;
*(u16 *)(a0 + 0x5C) = 0xCC00;
((Unkstruct_800B5CB8 *)a0)->unk5C = 0xCC00;
func_8012A828(a0, (void *)&D_8019D200);
*(s16 *)(a0 + 0x34) = 1;
*(s16 *)(a0 + 0x2) = 0xB;
*(s32 *)(a0 + 0x1C) = 0x3C;
*(s8 *)(a0 + 0x75) = 9;
((Unkstruct_800B5CB8 *)a0)->unk34 = 1;
((Unkstruct_800B5CB8 *)a0)->unk2 = 0xB;
((Unkstruct_800B5CB8 *)a0)->unk1C = 0x3C;
((Unkstruct_800B5CB8 *)a0)->unk75 = 9;
D_801A005C = (s16 *)-1;
}
+1 -1
View File
@@ -3129,7 +3129,7 @@ s32 func_80178D40(s32 arg0, s32 arg1)
if (((s32 (*)(s32))((Cmd_80178D40 *)arg1)->a.w)(((Actor_80178D40 *)arg0)) == 0) {
break;
}
D_801A1D18 = *(s32 *)(D_801A1D18 + 4);
D_801A1D18 = CAST_WIDTH(s32, D_801A1D18, 4);
return;
case 0x37:
(*(s16*)&D_801A2400) = 3;
+14 -14
View File
@@ -2627,34 +2627,34 @@ void func_8017AE2C(s32 param_1) {
case 1:
g[1] = (u16)g[1] - 1;
if (g[1] <= 0) {
*(u16 *)(*(s32 *)(pv + 0x20) + 0x12) = (u16)g[2];
((Unkstruct_800B5CB8 *)*(s32 *)(pv + 0x20))->unk12 = (u16)g[2];
goto reset_both;
}
{
s32 r = func_8012B608(*(s16 *)(*(s32 *)(pv + 0x20) + 0x12), g[2], 6);
*(u16 *)(*(s32 *)(pv + 0x20) + 0x12) =
*(u16 *)(*(s32 *)(pv + 0x20) + 0x12) + r;
s32 r = func_8012B608(*(s16 *)(((Unkstruct_800B5CB8 *)pv)->unk20 + 0x12), g[2], 6);
((Unkstruct_800B5CB8 *)*(s32 *)(pv + 0x20))->unk12 =
((Unkstruct_800B5CB8 *)*(s32 *)(pv + 0x20))->unk12 + r;
}
return;
case 2:
func_8012B178(pv, (s32)g[4] << 8);
func_8012AD80(pv);
*(u16 *)(pv + 0xA) -= 8;
((Unkstruct_800B5CB8 *)pv)->unkA -= 8;
func_8012B030((u8 *)pv);
break;
case 3:
if (g[1] != 0) {
if (g[5] != 0) {
void *p = (void *)(pv + 4);
if ((s16)func_80012A60(*(s16 *)(*(s32 *)(pv + 0x20) + 0x12),
if ((s16)func_80012A60(*(s16 *)(((Unkstruct_800B5CB8 *)pv)->unk20 + 0x12),
(s16)func_8012B744(p, &g[6])) < 0x100) {
g[1] = 0;
}
*(s16 *)(*(s32 *)(pv + 0x20) + 0x12) =
((Unkstruct_800B5CB8 *)*(s32 *)(pv + 0x20))->unk12 =
func_8012B744(p, &D_801A2364);
func_8012B178(pv, 0xFFFA0000);
func_8012AD80(pv);
*(u16 *)(pv + 0xA) -= 8;
((Unkstruct_800B5CB8 *)pv)->unkA -= 8;
func_8012B030((u8 *)pv);
/* &D_801A2358+0xC == &D_801A2364; distinct rtx defeats gcc's address-CSE
so BE98's arg rematerializes instead of sharing the store's reg (byte-gate). */
@@ -2665,9 +2665,9 @@ void func_8017AE2C(s32 param_1) {
}
{
s32 t = func_8012B744((void *)(pv + 4), &g[6]);
s32 r = func_8012B608(*(s16 *)(*(s32 *)(pv + 0x20) + 0x12), t, g[3]);
*(u16 *)(*(s32 *)(pv + 0x20) + 0x12) =
*(u16 *)(*(s32 *)(pv + 0x20) + 0x12) + r;
s32 r = func_8012B608(*(s16 *)(((Unkstruct_800B5CB8 *)pv)->unk20 + 0x12), t, g[3]);
((Unkstruct_800B5CB8 *)*(s32 *)(pv + 0x20))->unk12 =
((Unkstruct_800B5CB8 *)*(s32 *)(pv + 0x20))->unk12 + r;
}
g[1] = (u16)g[1] - 1;
if (g[1] > 0) {
@@ -2676,11 +2676,11 @@ void func_8017AE2C(s32 param_1) {
g[1] = 0;
return;
}
*(s16 *)(*(s32 *)(pv + 0x20) + 0x12) =
((Unkstruct_800B5CB8 *)*(s32 *)(pv + 0x20))->unk12 =
func_8012B744((void *)(pv + 4), &D_801A2364);
func_8012B178(pv, 0xFFFA0000);
func_8012AD80(pv);
*(u16 *)(pv + 0xA) -= 8;
((Unkstruct_800B5CB8 *)pv)->unkA -= 8;
func_8012B030((u8 *)pv);
/* see note above: distinct rtx for the same address defeats address-CSE. */
if (func_8012BE98(pv, (u16 *)((s32)&D_801A2358 + 0xC)) < 0x101) {
@@ -3318,7 +3318,7 @@ extern void func_80147364(u16, s32);
extern void (*D_80184D78[])(void);
void func_8017BFC8(void *a0) {
D_80184D78[*(u16 *)((s32)a0 + 0x2)]();
D_80184D78[((Unkstruct_80126B58 *)a0)->unk2]();
}
+1 -1
View File
@@ -3129,7 +3129,7 @@ s32 func_80178D40(s32 arg0, s32 arg1)
if (((s32 (*)(s32))((Cmd_80178D40 *)arg1)->a.w)(((Actor_80178D40 *)arg0)) == 0) {
break;
}
D_80194B38 = *(s32 *)(D_80194B38 + 4);
D_80194B38 = CAST_WIDTH(s32, D_80194B38, 4);
return;
case 0x37:
(*(s16*)&D_8019515C) = 3;
+1 -1
View File
@@ -3129,7 +3129,7 @@ s32 func_80178D40(s32 arg0, s32 arg1)
if (((s32 (*)(s32))((Cmd_80178D40 *)arg1)->a.w)(((Actor_80178D40 *)arg0)) == 0) {
break;
}
D_801ACE08 = *(s32 *)(D_801ACE08 + 4);
D_801ACE08 = CAST_WIDTH(s32, D_801ACE08, 4);
return;
case 0x37:
(*(s16*)&D_801AD554) = 3;
+14 -14
View File
@@ -2627,34 +2627,34 @@ void func_8017AE2C(s32 param_1) {
case 1:
g[1] = (u16)g[1] - 1;
if (g[1] <= 0) {
*(u16 *)(*(s32 *)(pv + 0x20) + 0x12) = (u16)g[2];
((Unkstruct_800B5CB8 *)*(s32 *)(pv + 0x20))->unk12 = (u16)g[2];
goto reset_both;
}
{
s32 r = func_8012B608(*(s16 *)(*(s32 *)(pv + 0x20) + 0x12), g[2], 6);
*(u16 *)(*(s32 *)(pv + 0x20) + 0x12) =
*(u16 *)(*(s32 *)(pv + 0x20) + 0x12) + r;
s32 r = func_8012B608(*(s16 *)(((Unkstruct_800B5CB8 *)pv)->unk20 + 0x12), g[2], 6);
((Unkstruct_800B5CB8 *)*(s32 *)(pv + 0x20))->unk12 =
((Unkstruct_800B5CB8 *)*(s32 *)(pv + 0x20))->unk12 + r;
}
return;
case 2:
func_8012B178(pv, (s32)g[4] << 8);
func_8012AD80(pv);
*(u16 *)(pv + 0xA) -= 8;
((Unkstruct_800B5CB8 *)pv)->unkA -= 8;
func_8012B030((u8 *)pv);
break;
case 3:
if (g[1] != 0) {
if (g[5] != 0) {
void *p = (void *)(pv + 4);
if ((s16)func_80012A60(*(s16 *)(*(s32 *)(pv + 0x20) + 0x12),
if ((s16)func_80012A60(*(s16 *)(((Unkstruct_800B5CB8 *)pv)->unk20 + 0x12),
(s16)func_8012B744(p, &g[6])) < 0x100) {
g[1] = 0;
}
*(s16 *)(*(s32 *)(pv + 0x20) + 0x12) =
((Unkstruct_800B5CB8 *)*(s32 *)(pv + 0x20))->unk12 =
func_8012B744(p, &D_801AD4BC);
func_8012B178(pv, 0xFFFA0000);
func_8012AD80(pv);
*(u16 *)(pv + 0xA) -= 8;
((Unkstruct_800B5CB8 *)pv)->unkA -= 8;
func_8012B030((u8 *)pv);
/* &D_801AD4B0+0xC == &D_801AD4BC; distinct rtx defeats gcc's address-CSE
so BE98's arg rematerializes instead of sharing the store's reg (byte-gate). */
@@ -2665,9 +2665,9 @@ void func_8017AE2C(s32 param_1) {
}
{
s32 t = func_8012B744((void *)(pv + 4), &g[6]);
s32 r = func_8012B608(*(s16 *)(*(s32 *)(pv + 0x20) + 0x12), t, g[3]);
*(u16 *)(*(s32 *)(pv + 0x20) + 0x12) =
*(u16 *)(*(s32 *)(pv + 0x20) + 0x12) + r;
s32 r = func_8012B608(*(s16 *)(((Unkstruct_800B5CB8 *)pv)->unk20 + 0x12), t, g[3]);
((Unkstruct_800B5CB8 *)*(s32 *)(pv + 0x20))->unk12 =
((Unkstruct_800B5CB8 *)*(s32 *)(pv + 0x20))->unk12 + r;
}
g[1] = (u16)g[1] - 1;
if (g[1] > 0) {
@@ -2676,11 +2676,11 @@ void func_8017AE2C(s32 param_1) {
g[1] = 0;
return;
}
*(s16 *)(*(s32 *)(pv + 0x20) + 0x12) =
((Unkstruct_800B5CB8 *)*(s32 *)(pv + 0x20))->unk12 =
func_8012B744((void *)(pv + 4), &D_801AD4BC);
func_8012B178(pv, 0xFFFA0000);
func_8012AD80(pv);
*(u16 *)(pv + 0xA) -= 8;
((Unkstruct_800B5CB8 *)pv)->unkA -= 8;
func_8012B030((u8 *)pv);
/* see note above: distinct rtx for the same address defeats address-CSE. */
if (func_8012BE98(pv, (u16 *)((s32)&D_801AD4B0 + 0xC)) < 0x101) {
@@ -3316,7 +3316,7 @@ extern void func_80147364(u16, s32);
extern void (*D_80184A40[])(void);
void func_8017BFC8(void *a0) {
D_80184A40[*(u16 *)((s32)a0 + 0x2)]();
D_80184A40[((Unkstruct_80126B58 *)a0)->unk2]();
}
+11 -11
View File
@@ -2977,17 +2977,17 @@ void func_80180958(s32 a0) {
s32 addr;
addr = (s32)&D_801A52E4;
*(s32 *)(a0 + 0x78) = addr;
CAST_ALIAS(s32, a0, 0x78) = addr;
if (D_80078EAE == 0) {
v0 = (*(s16 *)addr * 24) / 16;
} else {
v0 = *(u16 *)addr;
}
*(s16 *)(a0 + 0x76) = v0;
*(s16 *)(a0 + 0x5C) = D_801A52E6;
CAST_ALIAS(s16, a0, 0x76) = v0;
CAST_ALIAS(s16, a0, 0x5C) = D_801A52E6;
if (D_801A52E8 != 0) {
v0 = ((s32 (*)(void))func_8012C1B8)();
*(s32 *)(a0 + 0x20) = v0;
((Unkstruct_800B5CB8 *)a0)->unk20 = v0;
if (v0 == 0) {
func_8012CAE4((void *)a0);
return;
@@ -2995,18 +2995,18 @@ void func_80180958(s32 a0) {
func_8001C810(v0, D_801A52E8);
}
if (D_801A52EC != 0) {
*(s32 *)(a0 + 0x58) = D_801A52EC | 0x60000000;
((Unkstruct_800B5CB8 *)a0)->unk58 = D_801A52EC | 0x60000000;
}
addr = *(s32 *)(a0 + 0x20);
addr = ((Unkstruct_800B5CB8 *)a0)->unk20;
*(s32 *)(addr + 0x4) |= 0x8040;
*(u16 *)(a0 + 0x5C) = 0xCC00;
((Unkstruct_800B5CB8 *)a0)->unk5C = 0xCC00;
func_8012A828(a0, (void *)&D_801A5CF8);
*(s16 *)(a0 + 0x34) = 1;
*(s16 *)(a0 + 0x2) = 0xB;
*(s32 *)(a0 + 0x1C) = 0x3C;
*(s8 *)(a0 + 0x75) = 9;
((Unkstruct_800B5CB8 *)a0)->unk34 = 1;
((Unkstruct_800B5CB8 *)a0)->unk2 = 0xB;
((Unkstruct_800B5CB8 *)a0)->unk1C = 0x3C;
((Unkstruct_800B5CB8 *)a0)->unk75 = 9;
D_801AD3E4 = (s16 *)-1;
}
+1 -1
View File
@@ -3129,7 +3129,7 @@ s32 func_80178D40(s32 arg0, s32 arg1)
if (((s32 (*)(s32))((Cmd_80178D40 *)arg1)->a.w)(((Actor_80178D40 *)arg0)) == 0) {
break;
}
D_801EA388 = *(s32 *)(D_801EA388 + 4);
D_801EA388 = CAST_WIDTH(s32, D_801EA388, 4);
return;
case 0x37:
(*(s16*)&D_801EB03C) = 3;
+1 -1
View File
@@ -3129,7 +3129,7 @@ s32 func_80178D40(s32 arg0, s32 arg1)
if (((s32 (*)(s32))((Cmd_80178D40 *)arg1)->a.w)(((Actor_80178D40 *)arg0)) == 0) {
break;
}
D_80198760 = *(s32 *)(D_80198760 + 4);
D_80198760 = CAST_WIDTH(s32, D_80198760, 4);
return;
case 0x37:
(*(s16*)&D_80198D84) = 3;
+1 -1
View File
@@ -3129,7 +3129,7 @@ s32 func_80178D40(s32 arg0, s32 arg1)
if (((s32 (*)(s32))((Cmd_80178D40 *)arg1)->a.w)(((Actor_80178D40 *)arg0)) == 0) {
break;
}
D_801C0CF8 = *(s32 *)(D_801C0CF8 + 4);
D_801C0CF8 = CAST_WIDTH(s32, D_801C0CF8, 4);
return;
case 0x37:
(*(s16*)&D_801C184C) = 3;
+1 -1
View File
@@ -3129,7 +3129,7 @@ s32 func_80178D40(s32 arg0, s32 arg1)
if (((s32 (*)(s32))((Cmd_80178D40 *)arg1)->a.w)(((Actor_80178D40 *)arg0)) == 0) {
break;
}
D_801EB030 = *(s32 *)(D_801EB030 + 4);
D_801EB030 = CAST_WIDTH(s32, D_801EB030, 4);
return;
case 0x37:
(*(s16*)&D_801EC604) = 3;