phase12: match func_801029A0 (700 bodies / 709 regions)

This commit is contained in:
Christopher Williams
2026-09-25 00:10:22 -04:00
parent 3219504e9d
commit 9c2befd64f
3 changed files with 868 additions and 830 deletions
+829 -830
View File
File diff suppressed because it is too large Load Diff
+1
View File
@@ -653,6 +653,7 @@
0x80101C7C 0x80101CAC src/func_80101C7C.c cc1=-fno-delayed-branch
0x80101CAC 0x80101CDC src/func_80101CAC.c
0x801027CC 0x801027F8 src/func_801027CC.c
0x801029A0 0x80102A00 src/func_801029A0.c
0x80102A00 0x80102A80 src/func_80102A00.c maspsx=regread
0x80102A80 0x80102B04 src/func_80102A80.c maspsx=epilogue
0x80102B10 0x80102B2C src/func_80102B10.c maspsx=off
1 # Code-region registry: one C region per matched function.
653 0x80101C7C
654 0x80101CAC
655 0x801027CC
656 0x801029A0
657 0x80102A00
658 0x80102A80
659 0x80102B10
+38
View File
@@ -0,0 +1,38 @@
/*
* func_801029A0 — 96 bytes at 0x801029A0..0x80102A00
*
* Clears four absolute-global words, calls func_801092C0 with zero and the value
* loaded from D_801461D8, then clears the following global, the halfword at
* 0x801461BC, and the final global word.
*
* The repeated `lui at`/absolute displacement stores are intentional: direct
* address-named globals force a fresh absolute materialization for each statement,
* matching the target's initializer rather than a strength-reduced base pointer.
* The call deliberately has two arguments; the first loaded global is the second
* argument and remains live in a1 across the zero stores.
*
* LIMITS: the global meanings and the callee's behavior are not inferred. The
* addresses, store widths/order, two-argument call dataflow, frame, and return are
* byte evidence from the USA executable.
*/
extern int D_801461D8;
extern int D_801461D4;
extern int D_801461D0;
extern int D_801461CC;
extern int D_801461C0;
extern int D_8014619C;
extern int D_801461A8;
extern void func_801092C0(int, int);
void func_801029A0(void)
{
D_801461D4 = 0;
D_801461D0 = 0;
D_801461CC = 0;
D_801461C0 = 0;
func_801092C0(0, D_801461D8);
D_8014619C = 0;
*(short *)0x801461BC = 0;
D_801461A8 = 0;
}