phase12: match func_80024838 (717 bodies / 726 regions)

This commit is contained in:
Christopher Williams
2026-09-25 08:47:52 -04:00
parent 7e449d665d
commit 317ffeb7dd
5 changed files with 887 additions and 833 deletions
+826 -827
View File
File diff suppressed because it is too large Load Diff
+1
View File
@@ -94,6 +94,7 @@
0x800230E4 0x8002311C src/func_800230E4.c
0x8002311C 0x800231BC src/func_8002311C.c
0x80023A4C 0x80023AB0 src/func_80023A4C.c
0x80024838 0x80024894 src/func_80024838.c
0x80024C14 0x80024C34 src/func_80024C14.c
0x80025070 0x800250AC src/func_80025070.c
0x8002515C 0x80025198 src/func_8002515C.c
1 # Code-region registry: one C region per matched function.
94 0x800230E4
95 0x8002311C
96 0x80023A4C
97 0x80024838
98 0x80024C14
99 0x80025070
100 0x8002515C
+6 -6
View File
@@ -6,11 +6,11 @@
## STATE — SOLO CONTINUATION, 2026-09-24 (current)
**716 bodies / 725 regions**, from 685 / 694 at the last session stop — **+31 bodies / +31 regions**.
The Phase 12 milestone remains 750 bodies, so **+34 remains**. The promoted whole-binary gate is green:
`c_regions=725`, `differing_bytes=0`, SHA-1
**717 bodies / 726 regions**, from 685 / 694 at the last session stop — **+32 bodies / +32 regions**.
The Phase 12 milestone remains 750 bodies, so **+33 remains**. The promoted whole-binary gate is green:
`c_regions=726`, `differing_bytes=0`, SHA-1
`e173426c157384ebf1b6caf8c6fea18a85a14af9`; 348 synthetic tests pass and extents report
`regions=725 disagreements=0 result=AGREE`.
`regions=726 disagreements=0 result=AGREE`.
The requested second batch of 20 is complete. Twenty additional bodies are now matched:
`0x800BC9C4`, `0x800BC8C4`, `0x8006BB0C`, `0x8002D17C`, `0x801029A0`, `0x80055958`,
@@ -23,8 +23,8 @@ not a correctness issue because the 724-region gate proves the registry simultan
Final clean verification (2026-09-25): `make clean && make all`, `make worklist`,
`make extents-verify`, and `make check` all exited 0. Both clean assembly and code rebuilds
matched the USA executable byte-for-byte; each is 1,886,208 bytes with SHA-1
`e173426c157384ebf1b6caf8c6fea18a85a14af9`. The final worklist is 957 rows and the extents
check reports `regions=725 disagreements=0 result=AGREE`.
`e173426c157384ebf1b6caf8c6fea18a85a14af9`. The final worklist is 956 rows and the extents
check reports `regions=726 disagreements=0 result=AGREE`.
## STATE — SESSION STOP, 2026-09-24 23:35 (historical; superseded by the state above, kept for provenance)
**685 bodies / 694 regions**, from 602 / 611 at the Phase 11 close — **+83 bodies**. **Milestone 750 was NOT
+25
View File
@@ -2347,3 +2347,28 @@ supersedes that count.
**Count after task 21: 716 bodies / 725 regions (+114 bodies from the Phase 12 open baseline;
+34 remain to milestone 750).**
### Bounded attempt — `0x80025E54` (88 B) stopped without registration
* The natural two-call wrapper was structurally correct but produced 80 bytes with a 48-byte frame;
an oversized local fixed the frame and prologue. The remaining 8-byte difference was isolated to
the second call: the original moves the carried third argument to `a2` before `jal`, then copies the
return through `s0` in the delay slot and moves it to `v0`. A hard-bound carried local did not
change that schedule. No scheduler flag or inline instruction was forced; no source was promoted.
### Batch task 22 — `0x80024838` (92 B) MATCH
* Exact extent: `0x80024838..0x80024894`, 92 bytes, grade `exact`. The first validator's nonzero
result returns immediately; only the zero path loads `*a0` and calls the second validator with
`a1`; a zero second result returns an explicit zero.
* Tracked source: `src/func_80024838.c`, md5 `757dad3bfa1196819073f2b34c28ff91`. Fresh range:
`candidate_bytes=92 differing_bytes=0 result=MATCH`.
* Candidate whole-binary gate passed at `c_regions=726`, `differing_bytes=0`, SHA-1
`e173426c157384ebf1b6caf8c6fea18a85a14af9`, exit 0. `make check` passed with 348 tests and
extents `regions=726 disagreements=0`; clean `make all` and `make code` both rebuilt 1,886,208
bytes with SHA-1 `e173426c157384ebf1b6caf8c6fea18a85a14af9`, and both `cmp` checks exited 0.
Worklist regeneration reports 956 rows and `excluded_already_registered=724`, preserving the
known two-row lag.
**Count after task 22: 717 bodies / 726 regions (+115 bodies from the Phase 12 open baseline;
+33 remain to milestone 750).**
+29
View File
@@ -0,0 +1,29 @@
/*
* func_80024838 — 92 bytes at 0x80024838..0x80024894
*
* Two short-circuiting validation calls. The first receives no arguments and
* its nonzero result is returned immediately. Only the zero path loads the
* first argument's pointed-to word and calls the second validator with it and
* the second argument; a zero second result becomes the explicit zero return.
*
* The saved-register frame and both delay-slot argument moves are produced by
* the declared call shapes. The function addresses and argument meanings are
* address-based hypotheses; the byte match is the evidence for this region.
*/
extern int func_800247A4(void);
extern int func_80024894(int a0, int a1);
int func_80024838(int a0, int a1)
{
int result = func_800247A4();
if (result != 0)
return result;
result = func_80024894(*(int *)a0, a1);
if (result != 0)
return result;
return 0;
}