phase12: match three continuation claims (733 bodies / 742 regions)
This commit is contained in:
@@ -959,7 +959,7 @@
|
||||
952 0x801007E0 0x80100808 40 fallthrough 3 frame 1 - 1
|
||||
#
|
||||
# listed=952
|
||||
# excluded_already_registered=737
|
||||
# excluded_already_registered=740
|
||||
# excluded_bad_extent_start=8
|
||||
# excluded_degenerate_body=252
|
||||
# excluded_delay_slot_start=5
|
||||
@@ -968,6 +968,6 @@
|
||||
# excluded_low_confidence_grade=90
|
||||
# excluded_named_exclusion=9
|
||||
# excluded_no_extent=0
|
||||
# excluded_recorded_negative=91
|
||||
# excluded_recorded_negative=88
|
||||
# excluded_restores_unsaved=11
|
||||
# excluded_trapping_arith=48
|
||||
|
||||
|
@@ -216,6 +216,7 @@
|
||||
0x80038788 0x80038790 src/func_80038788.c
|
||||
0x80038790 0x8003879C src/func_80038790.c
|
||||
0x80038D48 0x80038DD8 src/func_80038D48.c
|
||||
0x8003A5F4 0x8003A644 src/func_8003A5F4.c
|
||||
0x8003A644 0x8003A6E0 src/func_8003A644.c
|
||||
0x8003A9C8 0x8003AAB8 src/func_8003A9C8.c
|
||||
0x8003AAE8 0x8003AB20 src/func_8003AAE8.c
|
||||
@@ -390,6 +391,7 @@
|
||||
0x8007A404 0x8007A428 src/func_8007A404.c
|
||||
0x8007A428 0x8007A4FC src/func_8007A428.c
|
||||
0x8007BC64 0x8007BD0C src/func_8007BC64.c
|
||||
0x8007C408 0x8007C4A8 src/func_8007C408.c
|
||||
0x8007C4A8 0x8007C4EC src/func_8007C4A8.c
|
||||
0x8007C4EC 0x8007C524 src/func_8007C4EC.c
|
||||
0x8007D5FC 0x8007D680 src/func_8007D5FC.c
|
||||
@@ -720,6 +722,7 @@
|
||||
0x80107AA0 0x80107AE0 src/func_80107AA0.c
|
||||
0x80107AE0 0x80107B20 src/func_80107AE0.c
|
||||
0x80107B20 0x80107B38 src/func_80107B20.c
|
||||
0x80107C5C 0x80107CCC src/func_80107C5C.c maspsx=nopmarker
|
||||
0x80107CCC 0x80107D18 src/func_80107CCC.c cc1bin=gcc-2.8.1-psx
|
||||
0x80107DE8 0x80107E68 src/func_80107DE8.c maspsx=epilogue
|
||||
0x80107E68 0x80107E74 src/func_80107E68.c
|
||||
|
||||
|
@@ -6,11 +6,11 @@
|
||||
|
||||
## STATE — SOLO CONTINUATION, 2026-09-24 (current)
|
||||
|
||||
**730 bodies / 739 regions**, from 685 / 694 at the last session stop — **+45 bodies / +45 regions**.
|
||||
The Phase 12 milestone remains 750 bodies, so **+20 remains**. The promoted whole-binary gate is green:
|
||||
`c_regions=739`, `differing_bytes=0`, SHA-1
|
||||
**733 bodies / 742 regions**, from 685 / 694 at the last session stop — **+48 bodies / +48 regions**.
|
||||
The Phase 12 milestone remains 750 bodies, so **+17 remains**. The promoted whole-binary gate is green:
|
||||
`c_regions=742`, `differing_bytes=0`, SHA-1
|
||||
`e173426c157384ebf1b6caf8c6fea18a85a14af9`; 348 synthetic tests pass and extents report
|
||||
`regions=739 disagreements=0 result=AGREE`.
|
||||
`regions=742 disagreements=0 result=AGREE`.
|
||||
|
||||
The requested second batch of 20 is complete. Twenty additional bodies are now matched:
|
||||
`0x800BC9C4`, `0x800BC8C4`, `0x8006BB0C`, `0x8002D17C`, `0x801029A0`, `0x80055958`,
|
||||
@@ -24,7 +24,7 @@ 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 952 rows and the extents
|
||||
check reports `regions=739 disagreements=0 result=AGREE`.
|
||||
check reports `regions=742 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
|
||||
|
||||
@@ -2520,6 +2520,19 @@ regeneration remains 952 rows.
|
||||
**Count after task 33: 730 bodies / 739 regions (+128 bodies from the Phase 12 open baseline;
|
||||
+20 remain to milestone 750).**
|
||||
|
||||
### Worker B continuation — three more exact claims
|
||||
|
||||
* `0x8003A5F4..0x8003A644`, 80/80, byte-offset nested object stores and repeated `a0+12` reloads.
|
||||
* `0x80107C5C..0x80107CCC`, 112/112, doubly-linked-list unlink with `maspsx=nopmarker`.
|
||||
* `0x8007C408..0x8007C4A8`, 160/160, nested-if/single-return result shape.
|
||||
|
||||
All three were freshly verified, merged against the current registry, and the resulting candidate
|
||||
whole-binary gate passed at `c_regions=742`, zero differing bytes, expected SHA-1, exit 0. `make check`
|
||||
passed with 348 tests and extents `regions=742 disagreements=0`; worklist regeneration reports 952 rows.
|
||||
|
||||
**Count after task 36: 733 bodies / 742 regions (+131 bodies from the Phase 12 open baseline;
|
||||
+17 remain to milestone 750).**
|
||||
|
||||
### Duplicate-claim guard incident
|
||||
|
||||
A later autonomous draft attempted `0x8006FAEC`, but the merge check showed that exact region was
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
/*
|
||||
* func_8003A5F4 — 80 bytes at 0x8003A5F4..0x8003A644
|
||||
*
|
||||
* Store a value at byte offset 288 of a nested object and update its bit-9
|
||||
* field at byte offset 260, returning success only when the nested pointer is
|
||||
* present. Both nested accesses are intentionally re-read from a0+12.
|
||||
*
|
||||
* The object layout and flag meaning are address-based hypotheses; the byte
|
||||
* match is the evidence for this region.
|
||||
*/
|
||||
|
||||
int func_8003A5F4(int a0, int a1, int a2)
|
||||
{
|
||||
if (a0 == 0)
|
||||
return 0;
|
||||
|
||||
if (*(int **)(a0 + 12) != 0) {
|
||||
*(int *)((char *)*(int **)(a0 + 12) + 288) = a1;
|
||||
*(int *)((char *)*(int **)(a0 + 12) + 260) =
|
||||
(*(int *)((char *)*(int **)(a0 + 12) + 260) & 0xfffffdff) |
|
||||
((a2 & 1) << 9);
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
/*
|
||||
* func_8007C408 — 160 bytes at 0x8007C408..0x8007C4A8
|
||||
*
|
||||
* Four nested guards gate a callback, after which the result byte is set to
|
||||
* 100 and bit 0x4000 is set. The result variable remains live through one
|
||||
* shared return, which preserves the original branch-delay copies.
|
||||
*
|
||||
* The field meanings and callback are address-based hypotheses; the byte match
|
||||
* is the evidence for this region.
|
||||
*/
|
||||
|
||||
void func_80043DC4(int, int);
|
||||
|
||||
int func_8007C408(int a0)
|
||||
{
|
||||
int s0 = *(int *)(a0 + 28);
|
||||
int r = 0;
|
||||
|
||||
if (*(unsigned char *)(*(int *)(a0 + 16) + 12) == 2) {
|
||||
if (*(unsigned char *)(s0 + 22) == 0) {
|
||||
if ((*(int *)(*(int *)(s0 + 8) + 36) & 0x1F0000) == 0) {
|
||||
if ((*(int *)s0 & 0x4000) == 0) {
|
||||
func_80043DC4(*(short *)(a0 + 2), 12);
|
||||
r = 1;
|
||||
*(char *)(s0 + 22) = 100;
|
||||
*(int *)s0 |= 0x4000;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return r;
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
/*
|
||||
* func_80107C5C — 112 bytes at 0x80107C5C..0x80107CCC
|
||||
*
|
||||
* Unlink a node from a doubly linked list, updating the head global when the
|
||||
* previous link is null, then clear the node links and its halfword flag.
|
||||
*
|
||||
* REGION TOKEN: `maspsx=nopmarker` (the original preserves a required
|
||||
* load-delay nop between the back-link load and the following store).
|
||||
*/
|
||||
|
||||
extern int D_801221C4;
|
||||
|
||||
void func_80107C5C(int *a0)
|
||||
{
|
||||
if (a0 == 0)
|
||||
return;
|
||||
if (*(short *)((char *)a0 + 20) == 0)
|
||||
return;
|
||||
if (a0[0] != 0)
|
||||
*(int *)(a0[0] + 4) = a0[1];
|
||||
else
|
||||
D_801221C4 = a0[1];
|
||||
if (a0[1] != 0)
|
||||
*(int *)(a0[1]) = a0[0];
|
||||
*(short *)((char *)a0 + 20) = 0;
|
||||
a0[0] = 0;
|
||||
a0[1] = 0;
|
||||
}
|
||||
Reference in New Issue
Block a user