phase12: match func_80024838 (717 bodies / 726 regions)
This commit is contained in:
+826
-827
File diff suppressed because it is too large
Load Diff
@@ -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
|
||||
|
||||
|
@@ -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
|
||||
|
||||
@@ -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).**
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
Reference in New Issue
Block a user