phase12: match four worker claims (730 bodies / 739 regions)

This commit is contained in:
Christopher Williams
2026-09-25 09:33:55 -04:00
parent 094a03199e
commit a6584e1978
8 changed files with 111 additions and 7 deletions
+2 -2
View File
@@ -959,7 +959,7 @@
952 0x801007E0 0x80100808 40 fallthrough 3 frame 1 - 1
#
# listed=952
# excluded_already_registered=733
# excluded_already_registered=737
# 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=95
# excluded_recorded_negative=91
# excluded_restores_unsaved=11
# excluded_trapping_arith=48
1 # Syphon Filter 3 (USA) match worklist.
959 952
960 #
961 # listed=952
962 # excluded_already_registered=733 # excluded_already_registered=737
963 # excluded_bad_extent_start=8
964 # excluded_degenerate_body=252
965 # excluded_delay_slot_start=5
968 # excluded_low_confidence_grade=90
969 # excluded_named_exclusion=9
970 # excluded_no_extent=0
971 # excluded_recorded_negative=95 # excluded_recorded_negative=91
972 # excluded_restores_unsaved=11
973 # excluded_trapping_arith=48
+4
View File
@@ -212,6 +212,7 @@
0x80036F70 0x8003713C src/func_80036F70.c
0x8003768C 0x800376CC src/func_8003768C.c
0x800376CC 0x80037770 src/func_800376CC.c
0x80037984 0x800379E0 src/func_80037984.c
0x80038788 0x80038790 src/func_80038788.c
0x80038790 0x8003879C src/func_80038790.c
0x80038D48 0x80038DD8 src/func_80038D48.c
@@ -223,6 +224,7 @@
0x8003B320 0x8003B34C src/func_8003B320.c
0x8003CB8C 0x8003CBE4 src/func_8003CB8C.c
0x8003D310 0x8003D35C src/func_8003D310.c
0x8003EB18 0x8003EB84 src/func_8003EB18.c
0x80041610 0x80041688 src/func_80041610.c
0x800419D0 0x80041A24 src/func_800419D0.c
0x80041A24 0x80041A58 src/func_80041A24.c
@@ -580,6 +582,7 @@
0x800BFEE0 0x800BFF00 src/func_800BFEE0.c
0x800BFF00 0x800BFF20 src/func_800BFF00.c
0x800C1424 0x800C14BC src/func_800C1424.c
0x800C1E54 0x800C1EA8 src/func_800C1E54.c
0x800C1EA8 0x800C1F04 src/func_800C1EA8.c
0x800C3514 0x800C356C src/func_800C3514.c
0x800C5C84 0x800C5CBC src/func_800C5C84.c
@@ -620,6 +623,7 @@
0x800F8294 0x800F82A4 src/func_800F8294.c
0x800F8638 0x800F8658 src/func_800F8638.c
0x800F88F0 0x800F8928 src/func_800F88F0.c maspsx=epilogue
0x800F8928 0x800F8970 src/func_800F8928.c maspsx=epilogue
0x800F8A0C 0x800F8A48 src/func_800F8A0C.c
0x800F8ACC 0x800F8ADC src/func_800F8ACC.c
0x800F8ADC 0x800F8AEC src/func_800F8ADC.c
1 # Code-region registry: one C region per matched function.
212 0x80036F70
213 0x8003768C
214 0x800376CC
215 0x80037984
216 0x80038788
217 0x80038790
218 0x80038D48
224 0x8003B320
225 0x8003CB8C
226 0x8003D310
227 0x8003EB18
228 0x80041610
229 0x800419D0
230 0x80041A24
582 0x800BFEE0
583 0x800BFF00
584 0x800C1424
585 0x800C1E54
586 0x800C1EA8
587 0x800C3514
588 0x800C5C84
623 0x800F8294
624 0x800F8638
625 0x800F88F0
626 0x800F8928
627 0x800F8A0C
628 0x800F8ACC
629 0x800F8ADC
+5 -5
View File
@@ -6,11 +6,11 @@
## STATE — SOLO CONTINUATION, 2026-09-24 (current)
**726 bodies / 735 regions**, from 685 / 694 at the last session stop — **+41 bodies / +41 regions**.
The Phase 12 milestone remains 750 bodies, so **+24 remains**. The promoted whole-binary gate is green:
`c_regions=735`, `differing_bytes=0`, SHA-1
**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
`e173426c157384ebf1b6caf8c6fea18a85a14af9`; 348 synthetic tests pass and extents report
`regions=735 disagreements=0 result=AGREE`.
`regions=739 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=735 disagreements=0 result=AGREE`.
check reports `regions=739 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
+17
View File
@@ -2502,3 +2502,20 @@ SHA-1, exit 0. `make check` passed with 348 tests and extents `regions=730 disag
**Count after task 29: 726 bodies / 735 regions (+124 bodies from the Phase 12 open baseline;
+24 remain to milestone 750).**
### Worker B batch — four exact claims
The fresh tracked sources were re-verified and merged after the worker's claims:
* `0x800F8928..0x800F8970`, 72/72, `maspsx=epilogue`.
* `0x800C1E54..0x800C1EA8`, 84/84, guarded local escaping to a third call.
* `0x80037984..0x800379E0`, 92/92, with the first helper argument distinct from the later
`+5356` argument.
* `0x8003EB18..0x8003EB84`, 108/108, absolute state read and symbol-form callback address.
The four-region candidate whole-binary gate passed at `c_regions=739`, zero differing bytes, expected
SHA-1, exit 0. `make check` passed with 348 tests and extents `regions=739 disagreements=0`; worklist
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).**
+22
View File
@@ -0,0 +1,22 @@
/*
* func_80037984 — 92 bytes at 0x80037984..0x800379E0
*
* Resolve a record, pass the original argument plus a fixed offset to a helper,
* then mark the resolved record and return success. The first helper receives
* the original argument; the +5356 setup belongs to the later call.
*/
int func_800376CC(int);
void func_80026560(int, int *);
int func_80037984(int a0)
{
int *p = (int *)func_800376CC(a0);
if (p != 0) {
func_80026560(a0 + 5356, p);
*(int *)*p = -1;
return 1;
}
return 0;
}
+21
View File
@@ -0,0 +1,21 @@
/*
* func_8003EB18 — 108 bytes at 0x8003EB18..0x8003EB84
*
* Select one of two callback argument modes from the input value and the
* absolute state word at 0x80121A80. The callback data address is a symbol so
* the original lui/addiu materialization is retained.
*/
extern char D_8003EA88[];
void func_800137C8(int, int, int);
void func_8003EB18(int a0, int a1)
{
if (a1 == 127) {
if (*(int *)0x80121A80 != 3)
func_800137C8((int)D_8003EA88, 1, 1);
} else {
if (*(int *)0x80121A80 == 3)
func_800137C8((int)D_8003EA88, 1, 0);
}
}
+22
View File
@@ -0,0 +1,22 @@
/*
* func_800C1E54 — 84 bytes at 0x800C1E54..0x800C1EA8
*
* When the argument's field at +468 is nonzero, obtain a value, pass it to a
* second helper, then pass its address to a third helper. The local starts at
* zero inside the guarded block because its address escapes.
*/
int func_800C14BC(void);
void func_800C1A58(int, int);
void func_80026650(int *);
void func_800C1E54(int a0)
{
if (*(int *)(a0 + 468) != 0) {
int v = 0;
v = func_800C14BC();
func_800C1A58(a0, v);
func_80026650(&v);
}
}
+18
View File
@@ -0,0 +1,18 @@
/*
* func_800F8928 — 72 bytes at 0x800F8928..0x800F8970
*
* Call the stored function pointer with the first argument, then pass its
* result and the original second/third arguments to a fixed helper.
*
* REGION TOKEN: `maspsx=epilogue`.
*/
extern int D_8011FE24;
void func_8010513C(int, int, int);
void func_800F8928(int a0, int a1, int a2)
{
int v = ((int (*)(int))D_8011FE24)(a0);
func_8010513C(v, a1, a2);
}