mirror of
https://github.com/Druthulu/BFM-decomp
synced 2026-09-29 07:10:32 -04:00
docs(phase-23): 8-hour autonomous run — corpus-v3 + v3 + local serving; fleet 63.67->63.82%
The run (Drew away): built tools/serve_local.py (Unsloth GPU serving, replaces ejected LM Studio); the prompt fix (translate-every-instruction, 0/3->2/3 on the empty-leaf class); corpus-v3 (mine the 1623 engine_core.h DEFINE_func macros + struct types: 1312->2891 pairs, 2534+291 trainable); v3 trained (loss 1.275->0.085) eval 23/40 (57.5%); v3 production batch banked ~352 fns + 45 new shared groups -> fleet 63.67->63.82% (+502 byte-identical), 136/136 byte-clean, 25 auto-commits, $0. v3 banks the empty-leaf/setter class v2 couldn't. - docs/gen2-mips-matching-model.md: corpus-v3 + serving + prompt-fix + v3 eval + harvest - docs/SETUP.md: LLM matching tier added to the Tooling inventory (R21) - phase-ends/CURRENT_PHASE.md: run progress + next levers (reach>=2 targeting, dedup-collapse)
This commit is contained in:
@@ -675,6 +675,14 @@ Every script under `tools/` (plus the two report make-targets), grouped by purpo
|
||||
| | `tools/exemplar_miner.py` | **(Phase 20 / T2, cookbook §20)** Residual router: consume `.run/wall_taxonomy.json` (bucket/nins) + per-overlay reach (dedup_propagate's computation) → route every residual stub to a lever (WAVE / STRUCT / PINS / STUB) ranked by reach×size → `docs/exemplar_curriculum.md` + `.run/exemplar_routing.json` (wave-target list). "Scan all residuals, size the pools, pick the teachers." Caveat: its `mismatch` is the M2C-draft mismatch, not the hand-match floor. |
|
||||
| | `config/dedup.us.yaml` / `src/shared/*.h` | The code-share registry + the shared bodies (one macro → N sites, byte-gated). |
|
||||
| | `make report` / `make sig-refresh` / `make sig-overlays` | Convenience targets: reports (+`--cross`) / Ghidra signature-dump / Ghidra-free sign all 134 overlays. |
|
||||
| **LLM matching tier** (Phase 21–23, `docs/gen2-mips-matching-model.md`) | `tools/gate_stage.py` | The shared deterministic bank/log spine: `canon_resident_calls → cast_call_sites → sig_unify → harvest_verify (byte-gate) → dedup_propagate → backlog`. **Binary-agnostic** (resolves src/asm/out/good_sha + bare-hash from `binary`; Phase-23 fix). |
|
||||
| | `tools/harvest_verify.py` | The whole-binary byte-gate (substitute draft → `make build` → keep iff byte-identical, else revert). Sole arbiter (G3/P9). |
|
||||
| | `tools/backlog.py` | Near-miss ledger (`.run/backlog.jsonl` + `docs/backlog.md`); **fleet-aware** `load_best` (a 077-matched-but-stuck-local fn surfaces via its overlay record; Phase 23). |
|
||||
| | `tools/lora_grind.py` | Mass-run driver: rotate binaries → draft open ≤N-ins stubs with the served model → gate → propagate. `--min-reach N` (Phase 23) targets shared fns (sig-reach oracle == `dedup_propagate`). |
|
||||
| | `tools/grinder.py` | Token-free decomp-permuter daemon on the backlog near-misses; **per-binary** (Phase-23 fix). `auto_supervisor.sh`/`auto_stop.sh` keep-alive + STOP sentinel. |
|
||||
| | `tools/api_draft.py` | Provider-agnostic LEAN drafter against the served model's OpenAI endpoint. `LEAN_SYS` carries the "translate every instruction, never an empty body" clause (Phase 23 — fixes the v2 empty-leaf overfit). |
|
||||
| | `tools/serve_local.py` | **Serve the fine-tuned model on the GPU** (base+LoRA via Unsloth, `.venv-train`, OpenAI endpoint) — the in-repo replacement for LM Studio. Run: `LD_LIBRARY_PATH=$(ls -d .venv-train/lib/python3.12/site-packages/nvidia/*/lib \| tr '\n' :) .venv-train/bin/python tools/serve_local.py --adapter models/bfm-match-7b-v3 --name bfm-match-7b-v3 --port 1234`. (Prebuilt `llama-cpp-python` CUDA wheels SIGILL on this no-AVX-512 CPU; the Unsloth/torch path is reliable, no build.) |
|
||||
| | `tools/export_pairs.py` / `format_finetune.py` / `train_lora.py` / `eval_lora.py` | The corpus→LoRA pipeline (`.venv-train`): mine (asm↔C) pairs incl. the `engine_core.h` **macro bodies** + `engine_types.h` structs (corpus-v3) → Qwen chat-template + compile-filter → Unsloth QLoRA (3080 Ti) → held-out gate-true eval. Datasets/weights gitignored (`datasets/`, `models/`, `.venv-train/`). |
|
||||
|
||||
---
|
||||
|
||||
|
||||
+350
-179
@@ -2,7 +2,7 @@
|
||||
|
||||
> Generated by `tools/backlog.py render` from `.run/backlog.jsonl`. These are functions the Phase-21 automation got **close** on but did NOT byte-match. The whole-binary byte-gate is the sole arbiter (G3/P9): **byte-matches bank and are NOT listed here** — only genuine near-misses/blockers are. Ranked by hand-session priority: **reach** (×N propagation leverage) → **closeness** (match_one mismatch count, lower = closer) → **size**. Each row's `best_draft` is the closest C the machine reached — resume from there.
|
||||
|
||||
**Open near-misses:** 296 · by status {'near': 220, 'failed': 76} · by class {'WAVE': 21, 'plumbing': 42, 'other': 23, 'STUB': 2, 'schedule': 61, 'loose-typing': 7, 'struct': 61, 'regalloc-order': 58, 'remat': 4, 'iv-combine': 3, 'GIANT': 8, 'STRUCT': 3, None: 2, 'PINS': 1}
|
||||
**Open near-misses:** 467 · by status {'near': 387, 'failed': 80} · by class {'WAVE': 20, 'plumbing': 42, 'other': 23, 'STUB': 1, 'schedule': 61, 'loose-typing': 7, 'struct': 61, 'regalloc-order': 58, 'remat': 4, 'iv-combine': 3, 'GIANT': 8, 'STRUCT': 4, None: 174, 'PINS': 1}
|
||||
|
||||
| # | addr | reach | class | nins | status | closeness | where it stuck | best draft |
|
||||
|--:|------|------:|-------|-----:|--------|----------:|----------------|------------|
|
||||
@@ -124,181 +124,352 @@
|
||||
| 116 | func_801412A8 | 134 | regalloc-order | 198 | near | 154 | 154-mismatch near-miss (198/198 ins, structure+branches exact). Two irreducible gcc residuals: (1) HEAD: held &D_800B9A02 ptr must be init-at-decl to stay in a reg across all 4 prims (correct 198-ins), but that forces gcc to materialize the address at fn entry (2 ins before the branches) vs target's in-body materialization -> shifts the head regalloc cascade; in-body assign re-materializes per-use (172 ins, wrong count) even with the $9 pin. (2) BODY: gcc OFFSET-FOLDS the 4x-unrolled prim stores (p[0..3], p+=4 -> sw at 16/20/24/28 from a fixed base) instead of ADVANCING $t6 (addiu $t6,0x10; sw at 0/4/8/12) like the target; no C form (post-inc, char* advance, =r/0 barrier, r-only barrier) triggers the register-advance. Pins landed p1->$t6/uVar4->$t0/iVar1->$a0/pidx->$t1 (head 0-1,8,14,16-19 exact). | `.run/backlog_drafts/func_801412A8.c` |
|
||||
| 117 | func_801372B0 | 134 | schedule | 207 | near | 173 | STRUCTURALLY CRACKED from raw Ghidra-C (xHigh, Phase 22): 3D-gizmo/compass HUD drawer — SVEC in@0x10/out@0x18 + GsLINE prim@0x20; 4 axis unit-vectors -> ApplyMatrixSV(D_800AF630+0x18) -> GsSortLine(D_800A6518[D_800B9A02*0x14]) + func_80137030/178. Logic 100% (206/207 ins). Residual = giant scheduler/regalloc last-mile (10 held callee-saved regs; §17 pins place them but gcc list-scheduler orders prologue-saves+materializations differently -> pervasive positional diff). NOT C-steerable to byte-exact; too far for grinder (173>30). Future: focused permuter or accept as ceiling. Draft has the right types/decls/logic + pins as a head-start. | `.run/backlog_drafts/func_801372B0.c` |
|
||||
| 118 | func_80132784 | 134 | regalloc-order | 400 | near | 240 | 240/400 — prologue+frame+Blk16+both GTE pipelines match through idx114; residual is else-branch pu pointer ($s0) regalloc + GTE-section stack-ptr ($s0-$s5 sp+0x60/0x80/0xA0/0x82/0x84/0x94) allocation (pins hoist them; unpinned picks wrong regs) cascading the tail | `.run/backlog_drafts/func_80132784.c` |
|
||||
| 119 | func_80174650 | 134 | STUB | 9 | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_80174650.c` |
|
||||
| 120 | func_801705C0 | 134 | WAVE | 14 | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_801705C0.c` |
|
||||
| 121 | func_8016B91C | 134 | WAVE | 18 | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8016B91C.c` |
|
||||
| 122 | func_80156600 | 134 | other | 18 | failed | | none — MATCH (simple counted scan, do-while form per Ghidra-C) | `.run/backlog_drafts/func_80156600.c` |
|
||||
| 123 | func_801718AC | 134 | WAVE | 22 | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_801718AC.c` |
|
||||
| 124 | func_80168B70 | 134 | WAVE | 27 | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_80168B70.c` |
|
||||
| 125 | func_8016BA68 | 134 | plumbing | 29 | failed | | none — MATCH (29 ins, straight-line; lh narrow loads at call site) | `.run/backlog_drafts/func_8016BA68.c` |
|
||||
| 126 | func_801494CC | 134 | WAVE | 30 | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_801494CC.c` |
|
||||
| 127 | func_801708B0 | 134 | WAVE | 30 | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_801708B0.c` |
|
||||
| 128 | func_80170CF0 | 134 | schedule | 30 | failed | | 4-ins PROLOGUE-ORDER residual (body insns 4-29 byte-identical). My cc1 hoists the funcptr lui/lw ABOVE the frame setup (lui,lw,addiu sp,sw s0); target keeps frame setup first (addiu sp,sw s0,lui,lw). Same prologue-order class as func_80177F84 (cookbook L1332) — no C lever found (intermediate var/cast/void*-vs-funcptr/pin/early-ptr all reproduce the hoist; barriers/empty-asm/volatile-local regress). KEY WIN: `case 0: break;` forces emit_case_nodes' slti<2;bnez→default lower-bound prune, exactly matching the target dispatch tree (a bare 2-case switch omits it). | `.run/backlog_drafts/func_80170CF0.c` |
|
||||
| 129 | func_80149450 | 134 | WAVE | 31 | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_80149450.c` |
|
||||
| 130 | func_80149F2C | 134 | WAVE | 31 | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_80149F2C.c` |
|
||||
| 131 | func_80161A90 | 134 | other | 34 | failed | | none — MATCH (34 ins) at the overlay's STANDARD -O2 (match_one reports MATCH). NO -O1 split needed. | `.run/backlog_drafts/func_80161A90.c` |
|
||||
| 132 | func_80152C80 | 134 | plumbing | 41 | failed | | none — MATCH expected (linear call/store sequence, no regalloc tension) | `.run/backlog_drafts/func_80152C80.c` |
|
||||
| 133 | func_80173BC0 | 134 | plumbing | 41 | failed | | none — MATCH. Keys: invert mask branch (else-block = 80174650 path so func_8013E588 | `.run/backlog_drafts/func_80173BC0.c` |
|
||||
| 134 | func_80130A18 | 134 | struct | 43 | failed | | none — MATCH (two separate Vec3s locals give the 8-byte-spaced sp+0x10/sp+0x18 blocks) | `.run/backlog_drafts/func_80130A18.c` |
|
||||
| 135 | func_8014C1C8 | 134 | regalloc-order | 44 | failed | | none — MATCH (match_one 44/44 ins, relocation-masked) | `.run/backlog_drafts/func_8014C1C8.c` |
|
||||
| 136 | func_80146750 | 134 | regalloc-order | 47 | failed | | none — MATCH (match_one 47/47; psVar4->$a3 / psVar3->$v1 pins forced the init order) | `.run/backlog_drafts/func_80146750.c` |
|
||||
| 137 | func_8014680C | 134 | struct | 47 | failed | | none — MATCH (47 ins, relocation-masked) | `.run/backlog_drafts/func_8014680C.c` |
|
||||
| 138 | func_8014C4AC | 134 | other | 47 | failed | | none — MATCH (shared-ret0 goto §16 flips final branch polarity + schedules ret=0 into delay slot; memcpy(t0+0x7C,a3,8) inlines the lwl/lwr/swl/swr 8-byte block §21; param_1 = unsigned short* for the lhu reads) | `.run/backlog_drafts/func_8014C4AC.c` |
|
||||
| 139 | func_80151B98 | 134 | regalloc-order | 47 | failed | | none — MATCH | `.run/backlog_drafts/func_80151B98.c` |
|
||||
| 140 | func_80147F78 | 134 | schedule | 48 | failed | | TWO residuals remain. (1) FRAME: target frame is 0x60 = exactly 64 bytes (16 words) of LIVE local vars on top of the 4 saved regs (s0,s1,s2,ra) + 0x10 arg area; my body has no locals so frame is 0x20. Reproducing 64B of live local needs an address-escaped local buffer, but the target has only the 3 visible jals (no 4th call to receive &buf), so I cannot make a 16-word local survive -O2 dead-store-elim without emitting an extra instruction. (2) RELOAD SCHEDULE: target reloads D_80127090/94/98 from memory (folded lui%hi;lw%lo) with the FIRST reload HOISTED up between store90 and store94 (free non-volatile scheduling); a "memory" clobber barrier (below) forces the folded reloads but pins them strictly AFTER all three stores. The natural source is almost certainly a 16-word local buffer that ALIASES the globals (non-volatile reloads, freely scheduled) — same construct that also explains the 0x60 frame. Closest faithful body kept below; folded reload bytes are correct, frame + hoist are the gap. | `.run/backlog_drafts/func_80147F78.c` |
|
||||
| 141 | func_80151C54 | 134 | plumbing | 52 | failed | | none — MATCH (52 ins). Branch-polarity §3-T4: BD60 arm is fall-through (if !=1 && ==0x11), BC44 is else. | `.run/backlog_drafts/func_80151C54.c` |
|
||||
| 142 | func_8017129C | 134 | struct | 58 | failed | | none — MATCH (58 ins); three aligned 16-byte block-copies via struct assignment (cookbook §21) | `.run/backlog_drafts/func_8017129C.c` |
|
||||
| 143 | func_80173A60 | 134 | regalloc-order | 59 | failed | | none — MATCH (59 ins) | `.run/backlog_drafts/func_80173A60.c` |
|
||||
| 144 | func_80130650 | 134 | plumbing | 60 | failed | | none — MATCH (60 ins). ((void (*)(void))func_801319E0)() called with NO arg in the >=0x10 branch (target jal+nop, no a0 setup) → no-proto extern (K&R), promotion-safe vs canonical void ((void (*)(void))func_801319E0)(s32). func_8012CBF4 returns s32 here vs canonical void → cast_call_sites handles it. | `.run/backlog_drafts/func_80130650.c` |
|
||||
| 145 | func_8014A738 | 134 | regalloc-order | 62 | failed | | none — MATCH | `.run/backlog_drafts/func_8014A738.c` |
|
||||
| 146 | func_80175308 | 134 | struct | 67 | failed | | none — MATCH (67 ins, relocation-masked) | `.run/backlog_drafts/func_80175308.c` |
|
||||
| 147 | func_80132F40 | 134 | regalloc-order | 72 | failed | | gcc gives src (sp+0x10) a 5th saved reg ($s3, frame 0x38 not 0x40); target rematerializes | `.run/backlog_drafts/func_80132F40.c` |
|
||||
| 148 | func_8014D610 | 134 | plumbing | 74 | failed | | none — MATCH (74 ins). for-loop + continue, single IV pointer p; gcc derives the $s0 = p+0x75 second induction var. Template: DEFINE_func_80163950 (sibling, same D_801202A0 loop + func_80135A4C). | `.run/backlog_drafts/func_8014D610.c` |
|
||||
| 149 | func_80163534 | 134 | schedule | 76 | failed | | mismatch=13, a single 1-position scheduling tie. Instrs 1-30 byte-perfect; all registers correct | `.run/backlog_drafts/func_80163534.c` |
|
||||
| 150 | func_8014CF04 | 134 | struct | 82 | failed | | none — MATCH (82 ins; array-of-struct scan, for-loop over Ent D_801202A0[96], stride 0x10C) | `.run/backlog_drafts/func_8014CF04.c` |
|
||||
| 151 | func_80156670 | 134 | schedule | 83 | failed | | none — MATCH (83 ins). Key: hoist `iVar1 = uVar3*4;` as its OWN statement before the if so gcc schedules `sll v1,s1,2` into the bnez delay slot (computed unconditionally) and reuses v1 index-first (`iVar1 + (s32)&D_801150E0` → `addu v0,v1,v0`). 13-arg call to func_80157158 (a0-a3 + 9 stack args at 0x10..0x30); param_2/param_3 cast (u16) → andi; param_6 incoming as lhu(u16). Address args = integer math `iVar2 + (s32)&D_x` (index-first → lui;addiu;addu, index added first). | `.run/backlog_drafts/func_80156670.c` |
|
||||
| 152 | func_8014D4C0 | 134 | schedule | 84 | failed | | none — MATCH (goto forces if-body out-of-line/last; `>=` fixes slt operand order) | `.run/backlog_drafts/func_8014D4C0.c` |
|
||||
| 153 | func_8016A73C | 134 | struct | 85 | failed | | none — MATCH (85 ins, relocation-masked) | `.run/backlog_drafts/func_8016A73C.c` |
|
||||
| 154 | func_80173CB4 | 134 | schedule | 90 | failed | | none — MATCH (switch form keeps cases unmerged; final block: reuse one temp for the D_8012750C test + the func_8013767C result -> $a0 alloc; invert if to !=0 for branch polarity + store order) | `.run/backlog_drafts/func_80173CB4.c` |
|
||||
| 155 | func_8014C6F4 | 134 | regalloc-order | 91 | failed | | 19-off loop tie-break — target compiles the search as a while/for (pre-guard sltu;beqz present) with the found pointer snapshotted to $v0 split from the IV in $a0 and the +4 sunk into both call-arg delay slots; do-while is instruction-count-exact (91=91) but lacks the pre-guard, while every for/while form costs +4 ins (merge stays in $a0). §10 schedule/regalloc residual. | `.run/backlog_drafts/func_8014C6F4.c` |
|
||||
| 156 | func_8014D12C | 134 | schedule | 93 | failed | | none — MATCH (93 ins). Block-order lever: success-continuation (return 1) | `.run/backlog_drafts/func_8014D12C.c` |
|
||||
| 157 | func_801502EC | 134 | schedule | 93 | failed | | none — MATCH (93 ins). 8-byte block copy via alignment-1 struct (Blk8{u8 b[8]}) assignment reproduces the lwl/lwr/swl/swr; ret=0 hoisted before the block copy to fix the s3-vs-ra prologue save order. | `.run/backlog_drafts/func_801502EC.c` |
|
||||
| 158 | func_80150170 | 134 | struct | 95 | failed | | none — MATCH (95/95). Keys: (1) two parallel 3-halfword groups via chained assign `sp10.x = sp18.x = v` (sp18 inner so 0x18 stores first); (2) align-1 blk8 struct copy for the lwl/lwr/swl/swr 8-byte copy into actor+0x80 (src = sp buf from func_801502EC, or u8[] D_801152A8); (3) f0/f2 = u16 (lhu), f1 = s16 (lh for the slt); (4) `(iVar5/iVar6)!=0` single-OR test + branch-polarity invert (not-both-zero is fall-through); (5) both-zero tail register pins: 0x7fff -> $v1 (`register s32 __asm__("$3")`), sp10.f0/f2 -> reused $a0 (`register u32 __asm__("$4")` written twice) to force gcc's hoist-load + reg reuse schedule. | `.run/backlog_drafts/func_80150170.c` |
|
||||
| 159 | func_8014CD80 | 134 | regalloc-order | 97 | failed | | none — MATCH (97 ins). iVar3 pinned to $v1 (register __asm__("$3")) so | `.run/backlog_drafts/func_8014CD80.c` |
|
||||
| 160 | func_8014E284 | 134 | WAVE | 108 | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8014E284.c` |
|
||||
| 161 | func_80167540 | 134 | WAVE | 117 | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_80167540.c` |
|
||||
| 162 | func_8014F4C0 | 134 | WAVE | 141 | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8014F4C0.c` |
|
||||
| 163 | func_8014E048 | 134 | WAVE | 143 | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8014E048.c` |
|
||||
| 164 | func_80155800 | 134 | WAVE | 145 | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_80155800.c` |
|
||||
| 165 | func_80138ED0 | 134 | GIANT | 159 | failed | | won't compile standalone (loose-typing / missing decl) | |
|
||||
| 166 | func_8012EC04 | 134 | GIANT | 178 | failed | | won't compile standalone (loose-typing / missing decl) | |
|
||||
| 167 | func_801392FC | 134 | GIANT | 182 | failed | | won't compile standalone (loose-typing / missing decl) | |
|
||||
| 168 | func_8013AF20 | 134 | GIANT | 185 | failed | | won't compile standalone (loose-typing / missing decl) | |
|
||||
| 169 | func_8012D098 | 134 | GIANT | 189 | failed | | won't compile standalone (loose-typing / missing decl) | |
|
||||
| 170 | func_80129CF8 | 134 | GIANT | 191 | failed | | won't compile standalone (loose-typing / missing decl) | |
|
||||
| 171 | func_8013A530 | 134 | GIANT | 204 | failed | | won't compile standalone (loose-typing / missing decl) | |
|
||||
| 172 | func_801372B0 | 134 | GIANT | 207 | failed | | won't compile standalone (loose-typing / missing decl) | |
|
||||
| 173 | func_80144B9C | 134 | other | 770 | failed | | -O0 cluster fn (prologue 21F0A003, fp-frame, all locals spilled+reloaded, load-delay nops). match_one compiles -O2 so it CANNOT match this; needs its own per-file -O0 split (Makefile CC1FLAGS:=-O0), like ov_SC01_077_o0.c. Body below is the faithful -O0 source; gate via whole-binary -O0 build only. | `.run/backlog_drafts/func_80144B9C.c` |
|
||||
| 174 | func_80151944 | 4 | struct | 15 | near | 0 | none — MATCH (fn-pointer table dispatch; array-of-ptr indexing folds %lo) | `.run/backlog_drafts/func_80151944.c` |
|
||||
| 175 | func_8016039C | 2 | STRUCT | 15 | near | 0 | match_one MATCH but gate rejected (declaration/TU plumbing) | `.run/backlog_drafts/func_8016039C.c` |
|
||||
| 176 | func_8015DAF8 | 1 | struct | 15 | near | 0 | none — MATCH (proxy); identical idiom to matched func_8016901C in same overlay | `.run/backlog_drafts/func_8015DAF8.c` |
|
||||
| 177 | func_8015FAAC | 1 | STRUCT | 15 | near | 0 | match_one MATCH but gate rejected (declaration/TU plumbing) | `.run/backlog_drafts/func_8015FAAC.c` |
|
||||
| 178 | func_801577C8 | 1 | plumbing | 16 | near | 0 | none — MATCH expected (scalar global store + two sequential calls, param preserved across first call) | `.run/backlog_drafts/func_801577C8.c` |
|
||||
| 179 | func_80178B70 | 1 | struct | 18 | near | 0 | none — MATCH; local ptr p=&D_8018A458 used for store AND (int)p-0xC arg forces $s0-base reuse across call1, param_1 into $s1 | `.run/backlog_drafts/func_80178B70.c` |
|
||||
| 180 | func_8013373C | 1 | regalloc-order | 18 | near | 0 | none — MATCH (indexed-global int-array %lo-fold + (short)param*4 fuses sll16/sra14; loaded value pinned to $a0/$4 to reuse the param reg instead of $v0) | `.run/backlog_drafts/func_8013373C.c` |
|
||||
| 181 | func_8017F240 | 1 | regalloc-order | 20 | near | 0 | none — MATCH (base &D_801270D0 pinned to $s0 holds across call; one lui/addiu reused for load+store) | `.run/backlog_drafts/func_8017F240.c` |
|
||||
| 182 | func_80157D20 | 1 | plumbing | 21 | near | 0 | none — MATCH expected (call, indexed u16-global load as 2nd arg, then call; param_1 saved across all three calls) | `.run/backlog_drafts/func_80157D20.c` |
|
||||
| 183 | func_80163408 | 1 | struct | 21 | near | 0 | local 8-byte struct copied from D_801D8BB0, © passed as 5th arg (s32) | `.run/backlog_drafts/func_80163408.c` |
|
||||
| 184 | func_80175184 | 1 | struct | 21 | near | 0 | none — MATCH (fnptr-array %lo-fold dispatch; idx = *(u16*)(a0+2) < 2 ? D_8018A1A4[idx]() : func_80175268()) | `.run/backlog_drafts/func_80175184.c` |
|
||||
| 185 | func_8012F8C8 | 1 | plumbing | 21 | near | 0 | none — MATCH (pending verify) | `.run/backlog_drafts/func_8012F8C8.c` |
|
||||
| 186 | func_8014FBC0 | 1 | schedule | 22 | near | 0 | none — MATCH (22 ins). Stack-switch primitive: register $sp var, manual save/switch/restore around the call. | `.run/backlog_drafts/func_8014FBC0.c` |
|
||||
| 187 | func_80178B18 | 1 | other | 22 | near | 0 | none — MATCH | `.run/backlog_drafts/func_80178B18.c` |
|
||||
| 188 | func_8017B8E8 | 1 | plumbing | 22 | near | 0 | none — MATCH (two inlined unaligned 8-byte memcpy blocks: src[0..7]->D_801DA794, src[8..15]->D_801DA78C) | `.run/backlog_drafts/func_8017B8E8.c` |
|
||||
| 189 | func_80182988 | 1 | plumbing | 22 | near | 0 | none — MATCH (u16 store of 0xAA10 forces ori, not sign-extended addiu) | `.run/backlog_drafts/func_80182988.c` |
|
||||
| 190 | func_801320D8 | 1 | schedule | 27 | near | 0 | none — MATCH (27 ins, relocation-masked) | `.run/backlog_drafts/func_801320D8.c` |
|
||||
| 191 | func_80132144 | 1 | other | 27 | near | 0 | none — MATCH | `.run/backlog_drafts/func_80132144.c` |
|
||||
| 192 | func_801321B0 | 1 | other | 27 | near | 0 | none — MATCH (match_one 27/27, relocation-masked) | `.run/backlog_drafts/func_801321B0.c` |
|
||||
| 193 | func_8013221C | 1 | other | 27 | near | 0 | none — MATCH (expected); straight scheduling, one call-crossing local -> $s0 naturally | `.run/backlog_drafts/func_8013221C.c` |
|
||||
| 194 | func_801609B8 | 1 | struct | 28 | near | 0 | none — MATCH (pending byte-gate); function-pointer table %lo-fold via extern array | `.run/backlog_drafts/func_801609B8.c` |
|
||||
| 195 | func_801312D0 | 1 | struct | 28 | near | 0 | none — MATCH (unaligned 8-byte memcpy from global; if/else branch layout) | `.run/backlog_drafts/func_801312D0.c` |
|
||||
| 196 | func_80136C90 | 1 | other | 28 | near | 0 | local char[10] string-literal init -> rodata-template block move (lwl/lwr + swl/swr + lb/sb), 9+1 split | `.run/backlog_drafts/func_80136C90.c` |
|
||||
| 197 | func_8017E224 | 1 | struct | 29 | near | 0 | none — MATCH (unaligned 8-byte memcpy of global onto stack + cond byte incr) | `.run/backlog_drafts/func_8017E224.c` |
|
||||
| 198 | func_80165140 | 1 | regalloc-order | 30 | near | 0 | none — MATCH (pin i=$v1/eight=$a0/p=$a2; DON'T pin param — let it self-copy to $a3 first; memcpy 8/4 unaligned) | `.run/backlog_drafts/func_80165140.c` |
|
||||
| 199 | func_801549F8 | 1 | iv-combine | 31 | near | 0 | none — MATCH (31 ins). Re-tie barrier on the index defeats gcc's pointer-giv | `.run/backlog_drafts/func_801549F8.c` |
|
||||
| 200 | func_8015E698 | 1 | struct | 31 | near | 0 | none — MATCH (clean -O2 reconstruction; table-of-fnptr indexed by param_1[0]) | `.run/backlog_drafts/func_8015E698.c` |
|
||||
| 201 | func_8017D98C | 1 | plumbing | 31 | near | 0 | none — MATCH (expected): straight global stores + tail call; const 0x140 reused for two halves | `.run/backlog_drafts/func_8017D98C.c` |
|
||||
| 202 | func_80182268 | 1 | struct | 31 | near | 0 | none — MATCH (jump-table switch over sign-extended high byte of *(u16*)(a0+0x70); case4 decrements D_801270CC then falls into case3/7's func_8012C218; no default) | `.run/backlog_drafts/func_80182268.c` |
|
||||
| 203 | func_801602A4 | 1 | struct | 34 | near | 0 | none — MATCH (template = matched twin func_801601E4; lhu+0x8000 == compare, fnptr-table dispatch D_801891B8[*(u16*)a0]() no-arg, then 3-call setup in target order; func_80161208 in else) | `.run/backlog_drafts/func_801602A4.c` |
|
||||
| 204 | func_801734BC | 1 | struct | 34 | near | 0 | none — MATCH (pending byte-gate); switch-jtbl with no default, 3 short stores + fnptr call | `.run/backlog_drafts/func_801734BC.c` |
|
||||
| 205 | func_8017D900 | 1 | plumbing | 35 | near | 0 | none — expect MATCH (STUB: ordered global stores + single tail call, sibling of func_8017D840) | `.run/backlog_drafts/func_8017D900.c` |
|
||||
| 206 | func_8016BEA0 | 1 | other | 37 | near | 0 | none — MATCH (expected) | `.run/backlog_drafts/func_8016BEA0.c` |
|
||||
| 207 | func_801754A8 | 1 | regalloc-order | 37 | near | 0 | none — MATCH (37 ins, relocation-masked proxy) | `.run/backlog_drafts/func_801754A8.c` |
|
||||
| 208 | func_80160920 | 1 | struct | 38 | near | 0 | none — MATCH (function-pointer table folds %lo via extern array indexed by halfword) | `.run/backlog_drafts/func_80160920.c` |
|
||||
| 209 | func_80183BAC | 1 | struct | 41 | near | 0 | switch jump-table dispatch (jtbl_801D9420); verifying case grouping 0,1,2,5,6/3,7/4 emits the target table + tail | `.run/backlog_drafts/func_80183BAC.c` |
|
||||
| 210 | func_80183C50 | 1 | struct | 41 | near | 0 | none — MATCH (cross-jump exploit §cookbook L1543: dup func_8012C218 into case3/7 + case4 → merged jal;nop) | `.run/backlog_drafts/func_80183C50.c` |
|
||||
| 211 | func_8015DF34 | 1 | struct | 44 | near | 0 | none — MATCH (clean structural; fn-ptr table via array index folds %lo) | `.run/backlog_drafts/func_8015DF34.c` |
|
||||
| 212 | func_8015FE70 | 1 | struct | 44 | near | 0 | none — MATCH expected (fn-ptr-table dispatch + ushort struct fields) | `.run/backlog_drafts/func_8015FE70.c` |
|
||||
| 213 | func_8014358C | 1 | regalloc-order | 45 | near | 0 | none — MATCH (relocation-masked match_one) | `.run/backlog_drafts/func_8014358C.c` |
|
||||
| 214 | func_80183AF0 | 1 | regalloc-order | 47 | near | 0 | none — MATCH (mask pinned $a1/$5 + p pinned $v0/$2; switch w/ distributed func_8012C218 tail via dup calls + cross-jump merge) | `.run/backlog_drafts/func_80183AF0.c` |
|
||||
| 215 | func_80178BF8 | 1 | plumbing | 49 | near | 0 | none — MATCH (pure scalar-store + two pointer-decrement do-while loops) | `.run/backlog_drafts/func_80178BF8.c` |
|
||||
| 216 | func_8015E344 | 1 | struct | 50 | near | 0 | none — MATCH (pending whole-binary gate); fn-ptr table folds %lo via extern array, 0x234 single word store | `.run/backlog_drafts/func_8015E344.c` |
|
||||
| 217 | func_8017EC7C | 1 | struct | 52 | near | 0 | none — MATCH (52 ins, relocation-masked) | `.run/backlog_drafts/func_8017EC7C.c` |
|
||||
| 218 | func_80183CF4 | 1 | struct | 57 | near | 0 | none — MATCH (clean switch + jtbl; orchestrator owns jtbl/rodata migration) | `.run/backlog_drafts/func_80183CF4.c` |
|
||||
| 219 | func_8015D01C | 1 | regalloc-order | 58 | near | 0 | none — MATCH | `.run/backlog_drafts/func_8015D01C.c` |
|
||||
| 220 | func_8016D688 | 1 | struct | 60 | near | 0 | none — MATCH (byte array D_801D9C20[] folds the &D_801D9C21 base/-1 offsets; emit p+0xE store BEFORE the param+2 increment so the lhu fills the load-delay slot in $v1) | `.run/backlog_drafts/func_8016D688.c` |
|
||||
| 221 | func_801842C8 | 1 | plumbing | 62 | near | 0 | none — MATCH | `.run/backlog_drafts/func_801842C8.c` |
|
||||
| 222 | func_80165240 | 1 | regalloc-order | 63 | near | 0 | none — MATCH (63 ins). buf pinned to $s2 (register __asm__("$18")) so it stays in a callee-saved reg; param_3 then naturally lands in $s3. memcpy(buf+0x30,param_3,4) -> lwl/lwr+swl/swr unaligned 4B copy (cookbook §1 mem->mem). array-of-u8 buf with explicit *(T*)(buf+off) stores; mtx[0x20] declared 2nd so it lands at sp+0x50, buf_ at sp+0x10. | `.run/backlog_drafts/func_80165240.c` |
|
||||
| 223 | func_8017BB34 | 1 | struct | 65 | near | 0 | none — MATCH (65 ins). Keys: (1) align-1 {s8 b[8]} struct so the two 8-byte copies emit lwl/lwr; (2) stack-local declaration order = target frame order (svin@0x10, buf@0x18, out@0x38, local8@0x40, rt_in@0x48, rt_out@0x50) — reordering the locals to ascending offset fixed all 23 offset-only diffs. | `.run/backlog_drafts/func_8017BB34.c` |
|
||||
| 224 | func_8016BD78 | 1 | regalloc-order | 74 | near | 0 | none — MATCH (lazy pointer locals pa=&BC4, pb=&BC8 assigned at first use → $a1/$a2 held thru middle code as final call args; middle bytes BC5/BC6/BC9/BCA direct global) | `.run/backlog_drafts/func_8016BD78.c` |
|
||||
| 225 | func_8016E7C8 | 1 | regalloc-order | 74 | near | 0 | none — MATCH (match_one 74/74; pins $18=&prim, $19=param_3 fixed s2/s3 alloc order; Work struct sized to 0x20) | `.run/backlog_drafts/func_8016E7C8.c` |
|
||||
| 226 | func_8018281C | 1 | struct | 76 | near | 0 | none — MATCH (76 ins). jtbl forced via explicit case 4/6 (count>=5 over MIPS tablejump threshold); case-5 block placed between if-block and default via goto so the if-block emits j default w/ e2=0 in the delay slot | `.run/backlog_drafts/func_8018281C.c` |
|
||||
| 227 | func_8016AE5C | 1 | regalloc-order | 85 | near | 0 | none — MATCH (85 ins, match_one). switch/jtbl STRUCT fn. The tail's | `.run/backlog_drafts/func_8016AE5C.c` |
|
||||
| 228 | func_80182E7C | 1 | struct | 85 | near | 0 | none — MATCH (85 ins, relocation-masked). Two switch-codegen levers: | `.run/backlog_drafts/func_80182E7C.c` |
|
||||
| 229 | func_8015C7E4 | 1 | struct | 88 | near | 0 | none — MATCH (match_one 88/88); fn-ptr-array dispatch, top-level if/else needed branch-polarity invert (small block falls through, big block at L854) | `.run/backlog_drafts/func_8015C7E4.c` |
|
||||
| 230 | func_8015CA28 | 1 | schedule | 91 | near | 0 | none — MATCH (goto forces the func_80161240 block to the function tail; bnez-to-end layout vs early-return fall-through) | `.run/backlog_drafts/func_8015CA28.c` |
|
||||
| 231 | func_801820DC | 1 | struct | 94 | near | 0 | none — MATCH (switch on entity state at 0x34, inner jtbl on (s8)(u70>>8)) | `.run/backlog_drafts/func_801820DC.c` |
|
||||
| 232 | func_80184D50 | 1 | schedule | 98 | near | 0 | none — MATCH (98 ins, relocation-masked) | `.run/backlog_drafts/func_80184D50.c` |
|
||||
| 233 | func_80161D20 | 1 | struct | 14 | near | 1 | none — MATCH (array-of-u16 %lo-fold, §18) | `.run/backlog_drafts/func_80161D20.c` |
|
||||
| 234 | func_8017F714 | 1 | plumbing | 27 | near | 1 | none — MATCH (27/27 ins, match_one verified) | `.run/backlog_drafts/func_8017F714.c` |
|
||||
| 235 | func_80142A10 | 1 | struct | 28 | near | 1 | none — MATCH (pending byte-gate) | `.run/backlog_drafts/func_80142A10.c` |
|
||||
| 236 | func_80161C24 | 1 | struct | 29 | near | 1 | none — MATCH (array-of-struct %lo-fold; even/odd u16 fields at off 0/2, stride 4) | `.run/backlog_drafts/func_80161C24.c` |
|
||||
| 237 | func_80184C0C | 1 | struct | 48 | near | 1 | none — MATCH (array-of-struct %lo-fold for &D_8018AEB8[idx], stride 0x34) | `.run/backlog_drafts/func_80184C0C.c` |
|
||||
| 238 | func_8016B4F8 | 1 | regalloc-order | 50 | near | 1 | none — MATCH | `.run/backlog_drafts/func_8016B4F8.c` |
|
||||
| 239 | func_801803B0 | 1 | other | 51 | near | 1 | none — MATCH expected; simple if/else, no call-crossing locals beyond param in $s0 | `.run/backlog_drafts/func_801803B0.c` |
|
||||
| 240 | func_8015FBE0 | 1 | schedule | 58 | near | 1 | none — MATCH | `.run/backlog_drafts/func_8015FBE0.c` |
|
||||
| 241 | func_8017F114 | 1 | regalloc-order | 75 | near | 1 | none — MATCH | `.run/backlog_drafts/func_8017F114.c` |
|
||||
| 242 | func_8017F290 | 1 | regalloc-order | 86 | near | 2 | none — MATCH. Two levers: (1) hold &D_801270CC in a `int *state` local so its | `.run/backlog_drafts/func_8017F290.c` |
|
||||
| 243 | func_8016EC0C | 1 | schedule | 88 | near | 2 | none — MATCH (88 ins). Sparse switch(uVar2) = gcc's beq-pivot+slti comparison | `.run/backlog_drafts/func_8016EC0C.c` |
|
||||
| 244 | func_80171B4C | 1 | schedule | 70 | near | 3 | 3-off in the tail only (body+prologue MATCH via $s1 pin on arg1). gcc fills the | `.run/backlog_drafts/func_80171B4C.c` |
|
||||
| 245 | func_80140E6C | 1 | schedule | 37 | near | 4 | 4 ins — each save-across-call copy (move s1,v0 / move s0,v0) should fill the NEXT jal's delay slot (target) but gcc-2.7.2 sched ties the copy with the next call's arg-setup at priority 2 and the LUID tie-break (rank_for_schedule) keeps the copy first, so reorg fills the slot with the arg-setup instead; no C reshape found that flips the LUID/priority order without breaking the OR-chain regalloc. | `.run/backlog_drafts/func_80140E6C.c` |
|
||||
| 246 | func_8017EF50 | 1 | schedule | 53 | near | 5 | 5 ins — gcc-2.7.2 instr-scheduler load-order tie-breaks. Branch region + cross-jump-break (t14 pin to $3) + 0x34/0x30 hoist (c34 pin $5, c2c pin $3) all MATCH. Residual: (a) header 0x10-load vs 0x2c-load order swap; (b) compare loads 0x36-before-0xA and puts 0xA in $a1 not $a2 (slt operand reg differs). Both clusters resist source steering — every fix to one perturbs the pinned header schedule. | `.run/backlog_drafts/func_8017EF50.c` |
|
||||
| 247 | func_8014D3E0 | 1 | other | 22 | near | 6 | none — MATCH | `.run/backlog_drafts/func_8014D3E0.c` |
|
||||
| 248 | func_8013CF68 | 1 | schedule | 63 | near | 6 | blocks 2&3 delay-slot fill — gcc picks dead-reg $v1(b0,0x10/0x20) store for the jal delay slot; target picks arg-reg $a3(0x12/0x22). 6 ins (2 rotations); not flippable by source store-order/interleave/barrier (all tested); permuter/scheduler-internal lever needed. Prologue, $s0 fold, regalloc, block-1 all exact. | `.run/backlog_drafts/func_8013CF68.c` |
|
||||
| 249 | func_8017B940 | 1 | struct | 63 | near | 6 | none — MATCH | `.run/backlog_drafts/func_8017B940.c` |
|
||||
| 250 | func_8017B238 | 1 | regalloc-order | 76 | near | 6 | 6 ins — gcc coalesces param_2 into callee-saved $s0 and hoists `move $s0,$a1` | `.run/backlog_drafts/func_8017B238.c` |
|
||||
| 251 | func_8017B614 | 1 | regalloc-order | 101 | near | 6 | 6 ins — param_2 lands in callee-saved $s0 (entry `move s0,a1`, sltiu/sll read s0) vs target's $a1; gcc prefers s0 (saved anyway for the late p794/p78C copies) over caller-saved $a1. Body+schedule otherwise byte-exact (101/101 ins); the late-part `__asm__("")` barrier is load-bearing (fixes the const-store schedule, 21->6). | `.run/backlog_drafts/func_8017B614.c` |
|
||||
| 252 | func_801345F8 | 1 | schedule | 106 | near | 7 | 7 ins, all pure scheduling order — maskedp copy not sunk into bnez delay slot | `.run/backlog_drafts/func_801345F8.c` |
|
||||
| 253 | func_80164E40 | 1 | struct | 25 | near | 8 | none — MATCH expected; byte 0 keeps base $v1 (reused by final lw word), bytes 1/2 standalone | `.run/backlog_drafts/func_80164E40.c` |
|
||||
| 254 | func_8012A018 | None | | None | near | 9 | residual: 9 mismatch | `.run/backlog_drafts/func_8012A018.c` |
|
||||
| 255 | func_8014C8C8 | None | | None | near | 10 | residual: 10 mismatch | `.run/backlog_drafts/func_8014C8C8.c` |
|
||||
| 256 | func_8016E9EC | 1 | schedule | 53 | near | 11 | 11 left — all GNU scheduler/canon tie-breaks (regs all match via pins): (a) prologue hoists `addiu a1,0x1C` into the save block; (b) first lbu reads $a0 not $s1 (incoming-arg still live); (c) iCopy copy `addu s4,s0` lands early (scheduler) vs target's func_800D2CA8 delay-slot; (d) `addu a2,s2,s3` vs target `s3,s2` commutative-canon (unflippable w/o breaking load order). Permuter can't run (register __asm__ pins rejected, cookbook §5a). | `.run/backlog_drafts/func_8016E9EC.c` |
|
||||
| 257 | func_80156044 | 1 | struct | 74 | near | 12 | none — MATCH (74 ins, relocation-masked); $s2-pin for u16-return + def-mask + 3-arg cast on func_80156848 | `.run/backlog_drafts/func_80156044.c` |
|
||||
| 258 | func_80161CD0 | 1 | regalloc-order | 20 | near | 14 | param_2 must survive the call in $s0; try plain C first then pin to $16 | `.run/backlog_drafts/func_80161CD0.c` |
|
||||
| 259 | func_80158FA4 | 1 | schedule | 51 | near | 17 | target keeps a DEAD `sra $a1,$v0,16` before `beqz $a1` (sign-extend of func_80159464's | `.run/backlog_drafts/func_80158FA4.c` |
|
||||
| 260 | func_80182338 | 1 | PINS | 26 | near | 24 | PINS: 24 mismatch | `.run/backlog_drafts/func_80182338.c` |
|
||||
| 261 | func_8018301C | 1 | plumbing | 28 | near | 24 | none — MATCH (straight-line, statement-order; verify with match_one) | `.run/backlog_drafts/func_8018301C.c` |
|
||||
| 262 | func_8016BBE0 | 1 | other | 56 | near | 24 | none — straightforward; expect MATCH (mirror Ghidra-C order, synth_mult ×0x555) | `.run/backlog_drafts/func_8016BBE0.c` |
|
||||
| 263 | func_8016E95C | 1 | regalloc-order | 36 | near | 25 | none — MATCH (pending byte-gate) | `.run/backlog_drafts/func_8016E95C.c` |
|
||||
| 264 | func_80139BE0 | 1 | loose-typing | 39 | near | 32 | target has redundant andi a1,v0,0xff (uchar zero-extend) gcc proves away; else identical | `.run/backlog_drafts/func_80139BE0.c` |
|
||||
| 265 | func_80148E54 | 1 | regalloc-order | 67 | near | 40 | 67/67 ins, structure+branches+block-order+body-reload all match; residual is pure register-allocation order (permuter-eligible, no register-pins). (1) masked first-angle folds andi->$s1; target keeps it in $a0 then copies addu $s1,$a0 lazily into the beq delay-slot (the s1-copy schedules 1 slot later). (2) the 0x80 const is CSE-held in $a2 across both test+body; target re-materializes 0x80 in $v0 per block (it gets clobbered by `srl v0,v1,8`), which both renames the compare regs ($v0 not $a2) AND fills the body's reload load-delay slot (mine emits a nop there). (3) single-exit ret funnels $v1->$v0 (move v0,v1) where target writes $v0 directly. All three are gcc regalloc/value-prop tie-breaks no C reshape steered (tried: $v0 pin, temp-split, low-mask-reuse compare, memory-clobber-vs-volatile reload) — leave for the permuter. | `.run/backlog_drafts/func_80148E54.c` |
|
||||
| 266 | func_8017B0E4 | 1 | other | 61 | near | 51 | none — MATCH (expected; clean six-call sign-extend-store pattern) | `.run/backlog_drafts/func_8017B0E4.c` |
|
||||
| 267 | func_80166F58 | 1 | schedule | 69 | near | 55 | regs/loop/logic/%lo-fold all match (pinned $s0-$s6); residual is reorg.c delay-slot fill — target replicates `addiu $v0,$s2,1` into the 3 skip-branch delay slots + commits `addu $s2,$v0,0` at merge (my codegen emits in-place `addiu $s2,$s2,1` w/ nop slots, -1 ins); plus prologue short-arg promote-then-move not fusing (`sra $a1;addu $s4,$a1,0` vs my fused `sra $s4,$a1`). Not source-steerable (pins block permuter). | `.run/backlog_drafts/func_80166F58.c` |
|
||||
| 268 | func_80177DA8 | 1 | remat | 63 | near | 58 | gcc narrows `&0xfffffeff` on a 16-bit (lhu) value to `andi 0xfeff` (inline), but target hoisted -0x101 into $t4 (and-reg) in the loop preheader — a gcc-2.7.2 LICM-before-combine pass-ordering quirk unsteerable from C; that 1-ins gap cascades the constant-reg numbering + tail reassoc. Secondary: single-IV loop ptr anchors at +0xA (short, 2 accesses) not +0xC (byte) like target. | `.run/backlog_drafts/func_80177DA8.c` |
|
||||
| 269 | func_80141A60 | 1 | other | 76 | near | 63 | none — MATCH (76 ins, relocation-masked). Body byte-identical; target reserves an 8-byte | `.run/backlog_drafts/func_80141A60.c` |
|
||||
| 270 | func_801457A4 | 1 | other | 79 | near | 74 | MATCH at -O0 (79 ins, reloc-masked, real -O0 flags). BANKING BLOCKER: this -O0 fn lives in the -O2 main ov_SC01_077.c; needs its own §18 -O0 split at 0x801457A4 (existing _o0.c covers 0x8013B568..0x8013C98C only). match_one is -O2 -> WRONG here. | `.run/backlog_drafts/func_801457A4.c` |
|
||||
| 271 | func_8016B6BC | 1 | schedule | 94 | near | 80 | 12-off, all in the last 12 ins (tail). First 82 ins byte-match. Target materializes | `.run/backlog_drafts/func_8016B6BC.c` |
|
||||
| 272 | func_80134A74 | 1 | regalloc-order | 107 | near | 84 | structure + all 8 callee-saved regs (s0..s7) + block layout MATCH; residual is caller-saved-temp | `.run/backlog_drafts/func_80134A74.c` |
|
||||
| 273 | func_8013EE10 | 1 | struct | 94 | near | 86 | none — MATCH (94 ins). array-of-struct %lo-fold (E[]) for the 5-elt loops; | `.run/backlog_drafts/func_8013EE10.c` |
|
||||
| 274 | func_80185E68 | 1 | STRUCT | 132 | near | 131 | STRUCT: 131 mismatch | `.run/backlog_drafts/func_80185E68.c` |
|
||||
| 275 | func_801824D0 | 1 | WAVE | 181 | near | 180 | WAVE: 180 mismatch | `.run/backlog_drafts/func_801824D0.c` |
|
||||
| 276 | func_80184A68 | 1 | regalloc-order | 33 | failed | | none — MATCH | `.run/backlog_drafts/func_80184A68.c` |
|
||||
| 277 | func_8015E018 | 1 | loose-typing | 47 | failed | | none — MATCH (signed char forces lbu+sll24/sra24 sign-extend; default char is unsigned in this toolchain) | `.run/backlog_drafts/func_8015E018.c` |
|
||||
| 278 | func_80159A20 | 1 | struct | 58 | failed | | none — MATCH. Key lever: block tail-MERGE (gcc shared `bne ...,$L1` cross-jump) by making the two return-tests STRUCTURALLY DIFFERENT — positive `if(==){goto mask;} return;` per branch (not `if(!=) return;`), so neither tail can merge. Then fix block ORDER by inverting the outer test (`if(d!=1)` makes the ==4/return path the inline fall-through, the d==1/p[2] path the forward `beq`-target block — matching the target layout). | `.run/backlog_drafts/func_80159A20.c` |
|
||||
| 279 | func_8013E958 | 1 | schedule | 63 | failed | | 2 ins swapped — cc1 emits `andi 0x7f; andi 0xff; beqz`(tests doubly-masked) but target wants `andi 0x7f; beqz; andi 0xff`(andi 0xff in the first beqz delay slot). Loop fully byte-matches; struct/ptr fold idioms nailed (D_80115110.q[0x16] hoists base+0x58 disp, Cell D_80115188[i].v folds %lo). func_800D0488 takes (m&0xFF) arg. s16 m -> 2 mism (right ins count); s32 m fixes order but merges andi+arg-move (62 ins, 1 short). | `.run/backlog_drafts/func_8013E958.c` |
|
||||
| 280 | func_8013E83C | 1 | plumbing | 71 | failed | | none — MATCH (scalar global stores + 2 conditional calls; §3-T4 branch-polarity invert on the &0xFF test) | `.run/backlog_drafts/func_8013E83C.c` |
|
||||
| 281 | func_8017B368 | 1 | schedule | 74 | failed | | dead table-path off by 1 ins — target keeps src*16 live in $s0 & computes 2nd arg src16+(base+8) in call1 delay slot; every C form either folds to e+8 (73 ins) or CSEs base into an extra saved reg $s2 (75 ins). All live code (prologue, sltiu dispatch, copy path, 4 struct-copy stores, tail) matches; only the unreachable func_8012F214 path scheduling diverges. | `.run/backlog_drafts/func_8017B368.c` |
|
||||
| 282 | func_80180B64 | 1 | struct | 75 | failed | | none — MATCH (75 ins, relocation-masked) | `.run/backlog_drafts/func_80180B64.c` |
|
||||
| 283 | func_80180F10 | 1 | schedule | 75 | failed | | none — MATCH (aggregate-initializer form schedules const setup after the prologue saves) | `.run/backlog_drafts/func_80180F10.c` |
|
||||
| 284 | func_8016C188 | 1 | schedule | 79 | failed | | none — MATCH (79 ins, match_one). Levers: invert if to if(iVar1!=0){big}else{small} | `.run/backlog_drafts/func_8016C188.c` |
|
||||
| 285 | func_80164930 | 1 | regalloc-order | 81 | failed | | none — MATCH (81 ins, relocation-masked) | `.run/backlog_drafts/func_80164930.c` |
|
||||
| 286 | func_801418F8 | 1 | loose-typing | 90 | failed | | none — MATCH (90 ins). Keys: D_8011511A is `volatile u16` (store-2-then-read must NOT const-fold), read ONCE into a `u16` local t (an `unsigned int` local adds a stray andi 0xffff; reusing t feeds the single lhu to both sltiu and t-3), and the lone D_80115158 store after the if yields the delay-slot-fill-from-target dup of `addiu 0x106`. | `.run/backlog_drafts/func_801418F8.c` |
|
||||
| 287 | func_801789AC | 1 | struct | 91 | failed | | none — MATCH (91 ins, relocation-masked) | `.run/backlog_drafts/func_801789AC.c` |
|
||||
| 288 | func_80183DE0 | 1 | regalloc-order | 91 | failed | | testing if(!=1) layout + counter-before-pointer init order | `.run/backlog_drafts/func_80183DE0.c` |
|
||||
| 289 | func_80185428 | 1 | struct | 94 | failed | | none — MATCH (94 ins, relocation-masked) | `.run/backlog_drafts/func_80185428.c` |
|
||||
| 290 | func_801506A4 | 1 | loose-typing | 95 | failed | | none — MATCH (95 ins). switch var must be int not u16 (u16 adds andi 0xffff promotion mask) | `.run/backlog_drafts/func_801506A4.c` |
|
||||
| 291 | func_8016BFD0 | 1 | struct | 95 | failed | | none — MATCH (95 ins). memcpy(d,s,4) -> lwl/lwr/swl/swr; MATRIX work buf as s32[16] (0x40, fills 0x10-0x4f, t[] = buf[5..7]); two SVECTOR locals at 0x50/0x58; natural saved-reg order s0=param_5/s1=param_4/s2=iVar5 | `.run/backlog_drafts/func_8016BFD0.c` |
|
||||
| 292 | func_801596F0 | 1 | struct | 97 | failed | | none — MATCH (97 ins). Loop 1 = struct-ptr for-loop (E38, flag@+4) -> -4 guard / +4 test via gcc biv-elim. Loop 2 needed an EXPLICIT if-guard + do-while with the FIELD pointer as the loop var (so the giv init emits FIRST in the preheader, before the &D invariant block), a non-volatile re-tie barrier on d=&D_800AFAE8 (keeps &D BARE so +4/+0x88 add off it = +1 ins vs the folded %lo, matching target), an explicit u32 mask hoisted first (fills the guard's delay slot), and a separate range check fp<d+4 // fp>=d+0x88. | `.run/backlog_drafts/func_801596F0.c` |
|
||||
| 293 | func_8017B490 | 1 | schedule | 97 | failed | | none — MATCH (97 ins). Keys: (1) inverted if so the SV4 block-copy else is fallthrough and block A is bnez-far (cond = (u32)&D_801DA73C >= 0xB, a relocated-symbol compare gcc can't fold); (2) SV4{s16 a,b,c,d} align-2 8-byte copy -> lwl/lwr/swl/swr, locals at sp+0x10/0x18; (3) the DEAD block-A index = (s32)&D_801DA73C into D_8018A45C[] (WAVE16=two SV4) needs BOTH source addrs (&[idx].v0,&[idx].v1) in EXPLICIT TEMPS before call1 so base (&D_8018A45C) dies pre-call -> temp $v0 (not callee-saved), forcing the natural 2-reg alloc idx=$s0/param_1=$s1 + src2 into call1's delay slot; (4) tail: D_801DA794/D_801DA78C are SV4, re-read .a/.b/.c via lh sign-extended to s32 stores. | `.run/backlog_drafts/func_8017B490.c` |
|
||||
| 294 | func_80182C9C | 1 | schedule | 101 | failed | | none — MATCH (101 ins). Inner-switch break-to-shared-tail must be written as | `.run/backlog_drafts/func_80182C9C.c` |
|
||||
| 295 | func_80183FB8 | 1 | loose-typing | 101 | failed | | none — MATCH (relocation-masked match_one, 101/101 ins) | `.run/backlog_drafts/func_80183FB8.c` |
|
||||
| 296 | func_8013EF88 | 1 | struct | 108 | failed | | none — MATCH (108 ins). Keys: (1) §18 array-of-struct E4{s32 v} for | `.run/backlog_drafts/func_8013EF88.c` |
|
||||
| 119 | func_8016B91C | 134 | WAVE | 18 | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8016B91C.c` |
|
||||
| 120 | func_80156600 | 134 | other | 18 | failed | | none — MATCH (simple counted scan, do-while form per Ghidra-C) | `.run/backlog_drafts/func_80156600.c` |
|
||||
| 121 | func_801718AC | 134 | WAVE | 22 | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_801718AC.c` |
|
||||
| 122 | func_80168B70 | 134 | WAVE | 27 | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_80168B70.c` |
|
||||
| 123 | func_8016BA68 | 134 | plumbing | 29 | failed | | none — MATCH (29 ins, straight-line; lh narrow loads at call site) | `.run/backlog_drafts/func_8016BA68.c` |
|
||||
| 124 | func_801494CC | 134 | WAVE | 30 | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_801494CC.c` |
|
||||
| 125 | func_801708B0 | 134 | WAVE | 30 | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_801708B0.c` |
|
||||
| 126 | func_80170CF0 | 134 | schedule | 30 | failed | | 4-ins PROLOGUE-ORDER residual (body insns 4-29 byte-identical). My cc1 hoists the funcptr lui/lw ABOVE the frame setup (lui,lw,addiu sp,sw s0); target keeps frame setup first (addiu sp,sw s0,lui,lw). Same prologue-order class as func_80177F84 (cookbook L1332) — no C lever found (intermediate var/cast/void*-vs-funcptr/pin/early-ptr all reproduce the hoist; barriers/empty-asm/volatile-local regress). KEY WIN: `case 0: break;` forces emit_case_nodes' slti<2;bnez→default lower-bound prune, exactly matching the target dispatch tree (a bare 2-case switch omits it). | `.run/backlog_drafts/func_80170CF0.c` |
|
||||
| 127 | func_80149450 | 134 | WAVE | 31 | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_80149450.c` |
|
||||
| 128 | func_80149F2C | 134 | WAVE | 31 | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_80149F2C.c` |
|
||||
| 129 | func_80161A90 | 134 | other | 34 | failed | | none — MATCH (34 ins) at the overlay's STANDARD -O2 (match_one reports MATCH). NO -O1 split needed. | `.run/backlog_drafts/func_80161A90.c` |
|
||||
| 130 | func_80152C80 | 134 | plumbing | 41 | failed | | none — MATCH expected (linear call/store sequence, no regalloc tension) | `.run/backlog_drafts/func_80152C80.c` |
|
||||
| 131 | func_80173BC0 | 134 | plumbing | 41 | failed | | none — MATCH. Keys: invert mask branch (else-block = 80174650 path so func_8013E588 | `.run/backlog_drafts/func_80173BC0.c` |
|
||||
| 132 | func_80130A18 | 134 | struct | 43 | failed | | none — MATCH (two separate Vec3s locals give the 8-byte-spaced sp+0x10/sp+0x18 blocks) | `.run/backlog_drafts/func_80130A18.c` |
|
||||
| 133 | func_8014C1C8 | 134 | regalloc-order | 44 | failed | | none — MATCH (match_one 44/44 ins, relocation-masked) | `.run/backlog_drafts/func_8014C1C8.c` |
|
||||
| 134 | func_80146750 | 134 | regalloc-order | 47 | failed | | none — MATCH (match_one 47/47; psVar4->$a3 / psVar3->$v1 pins forced the init order) | `.run/backlog_drafts/func_80146750.c` |
|
||||
| 135 | func_8014680C | 134 | struct | 47 | failed | | none — MATCH (47 ins, relocation-masked) | `.run/backlog_drafts/func_8014680C.c` |
|
||||
| 136 | func_8014C4AC | 134 | other | 47 | failed | | none — MATCH (shared-ret0 goto §16 flips final branch polarity + schedules ret=0 into delay slot; memcpy(t0+0x7C,a3,8) inlines the lwl/lwr/swl/swr 8-byte block §21; param_1 = unsigned short* for the lhu reads) | `.run/backlog_drafts/func_8014C4AC.c` |
|
||||
| 137 | func_80151B98 | 134 | regalloc-order | 47 | failed | | none — MATCH | `.run/backlog_drafts/func_80151B98.c` |
|
||||
| 138 | func_80147F78 | 134 | schedule | 48 | failed | | TWO residuals remain. (1) FRAME: target frame is 0x60 = exactly 64 bytes (16 words) of LIVE local vars on top of the 4 saved regs (s0,s1,s2,ra) + 0x10 arg area; my body has no locals so frame is 0x20. Reproducing 64B of live local needs an address-escaped local buffer, but the target has only the 3 visible jals (no 4th call to receive &buf), so I cannot make a 16-word local survive -O2 dead-store-elim without emitting an extra instruction. (2) RELOAD SCHEDULE: target reloads D_80127090/94/98 from memory (folded lui%hi;lw%lo) with the FIRST reload HOISTED up between store90 and store94 (free non-volatile scheduling); a "memory" clobber barrier (below) forces the folded reloads but pins them strictly AFTER all three stores. The natural source is almost certainly a 16-word local buffer that ALIASES the globals (non-volatile reloads, freely scheduled) — same construct that also explains the 0x60 frame. Closest faithful body kept below; folded reload bytes are correct, frame + hoist are the gap. | `.run/backlog_drafts/func_80147F78.c` |
|
||||
| 139 | func_80151C54 | 134 | plumbing | 52 | failed | | none — MATCH (52 ins). Branch-polarity §3-T4: BD60 arm is fall-through (if !=1 && ==0x11), BC44 is else. | `.run/backlog_drafts/func_80151C54.c` |
|
||||
| 140 | func_8017129C | 134 | struct | 58 | failed | | none — MATCH (58 ins); three aligned 16-byte block-copies via struct assignment (cookbook §21) | `.run/backlog_drafts/func_8017129C.c` |
|
||||
| 141 | func_80173A60 | 134 | regalloc-order | 59 | failed | | none — MATCH (59 ins) | `.run/backlog_drafts/func_80173A60.c` |
|
||||
| 142 | func_80130650 | 134 | plumbing | 60 | failed | | none — MATCH (60 ins). ((void (*)(void))func_801319E0)() called with NO arg in the >=0x10 branch (target jal+nop, no a0 setup) → no-proto extern (K&R), promotion-safe vs canonical void ((void (*)(void))func_801319E0)(s32). func_8012CBF4 returns s32 here vs canonical void → cast_call_sites handles it. | `.run/backlog_drafts/func_80130650.c` |
|
||||
| 143 | func_8014A738 | 134 | regalloc-order | 62 | failed | | none — MATCH | `.run/backlog_drafts/func_8014A738.c` |
|
||||
| 144 | func_80175308 | 134 | struct | 67 | failed | | none — MATCH (67 ins, relocation-masked) | `.run/backlog_drafts/func_80175308.c` |
|
||||
| 145 | func_80132F40 | 134 | regalloc-order | 72 | failed | | gcc gives src (sp+0x10) a 5th saved reg ($s3, frame 0x38 not 0x40); target rematerializes | `.run/backlog_drafts/func_80132F40.c` |
|
||||
| 146 | func_8014D610 | 134 | plumbing | 74 | failed | | none — MATCH (74 ins). for-loop + continue, single IV pointer p; gcc derives the $s0 = p+0x75 second induction var. Template: DEFINE_func_80163950 (sibling, same D_801202A0 loop + func_80135A4C). | `.run/backlog_drafts/func_8014D610.c` |
|
||||
| 147 | func_80163534 | 134 | schedule | 76 | failed | | mismatch=13, a single 1-position scheduling tie. Instrs 1-30 byte-perfect; all registers correct | `.run/backlog_drafts/func_80163534.c` |
|
||||
| 148 | func_8014CF04 | 134 | struct | 82 | failed | | none — MATCH (82 ins; array-of-struct scan, for-loop over Ent D_801202A0[96], stride 0x10C) | `.run/backlog_drafts/func_8014CF04.c` |
|
||||
| 149 | func_80156670 | 134 | schedule | 83 | failed | | none — MATCH (83 ins). Key: hoist `iVar1 = uVar3*4;` as its OWN statement before the if so gcc schedules `sll v1,s1,2` into the bnez delay slot (computed unconditionally) and reuses v1 index-first (`iVar1 + (s32)&D_801150E0` → `addu v0,v1,v0`). 13-arg call to func_80157158 (a0-a3 + 9 stack args at 0x10..0x30); param_2/param_3 cast (u16) → andi; param_6 incoming as lhu(u16). Address args = integer math `iVar2 + (s32)&D_x` (index-first → lui;addiu;addu, index added first). | `.run/backlog_drafts/func_80156670.c` |
|
||||
| 150 | func_8014D4C0 | 134 | schedule | 84 | failed | | none — MATCH (goto forces if-body out-of-line/last; `>=` fixes slt operand order) | `.run/backlog_drafts/func_8014D4C0.c` |
|
||||
| 151 | func_8016A73C | 134 | struct | 85 | failed | | none — MATCH (85 ins, relocation-masked) | `.run/backlog_drafts/func_8016A73C.c` |
|
||||
| 152 | func_80173CB4 | 134 | schedule | 90 | failed | | none — MATCH (switch form keeps cases unmerged; final block: reuse one temp for the D_8012750C test + the func_8013767C result -> $a0 alloc; invert if to !=0 for branch polarity + store order) | `.run/backlog_drafts/func_80173CB4.c` |
|
||||
| 153 | func_8014C6F4 | 134 | regalloc-order | 91 | failed | | 19-off loop tie-break — target compiles the search as a while/for (pre-guard sltu;beqz present) with the found pointer snapshotted to $v0 split from the IV in $a0 and the +4 sunk into both call-arg delay slots; do-while is instruction-count-exact (91=91) but lacks the pre-guard, while every for/while form costs +4 ins (merge stays in $a0). §10 schedule/regalloc residual. | `.run/backlog_drafts/func_8014C6F4.c` |
|
||||
| 154 | func_8014D12C | 134 | schedule | 93 | failed | | none — MATCH (93 ins). Block-order lever: success-continuation (return 1) | `.run/backlog_drafts/func_8014D12C.c` |
|
||||
| 155 | func_801502EC | 134 | schedule | 93 | failed | | none — MATCH (93 ins). 8-byte block copy via alignment-1 struct (Blk8{u8 b[8]}) assignment reproduces the lwl/lwr/swl/swr; ret=0 hoisted before the block copy to fix the s3-vs-ra prologue save order. | `.run/backlog_drafts/func_801502EC.c` |
|
||||
| 156 | func_80150170 | 134 | struct | 95 | failed | | none — MATCH (95/95). Keys: (1) two parallel 3-halfword groups via chained assign `sp10.x = sp18.x = v` (sp18 inner so 0x18 stores first); (2) align-1 blk8 struct copy for the lwl/lwr/swl/swr 8-byte copy into actor+0x80 (src = sp buf from func_801502EC, or u8[] D_801152A8); (3) f0/f2 = u16 (lhu), f1 = s16 (lh for the slt); (4) `(iVar5/iVar6)!=0` single-OR test + branch-polarity invert (not-both-zero is fall-through); (5) both-zero tail register pins: 0x7fff -> $v1 (`register s32 __asm__("$3")`), sp10.f0/f2 -> reused $a0 (`register u32 __asm__("$4")` written twice) to force gcc's hoist-load + reg reuse schedule. | `.run/backlog_drafts/func_80150170.c` |
|
||||
| 157 | func_8014CD80 | 134 | regalloc-order | 97 | failed | | none — MATCH (97 ins). iVar3 pinned to $v1 (register __asm__("$3")) so | `.run/backlog_drafts/func_8014CD80.c` |
|
||||
| 158 | func_8014E284 | 134 | WAVE | 108 | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8014E284.c` |
|
||||
| 159 | func_80167540 | 134 | WAVE | 117 | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_80167540.c` |
|
||||
| 160 | func_8014F4C0 | 134 | WAVE | 141 | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8014F4C0.c` |
|
||||
| 161 | func_8014E048 | 134 | WAVE | 143 | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8014E048.c` |
|
||||
| 162 | func_80155800 | 134 | WAVE | 145 | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_80155800.c` |
|
||||
| 163 | func_80138ED0 | 134 | GIANT | 159 | failed | | won't compile standalone (loose-typing / missing decl) | |
|
||||
| 164 | func_8012EC04 | 134 | GIANT | 178 | failed | | won't compile standalone (loose-typing / missing decl) | |
|
||||
| 165 | func_801392FC | 134 | GIANT | 182 | failed | | won't compile standalone (loose-typing / missing decl) | |
|
||||
| 166 | func_8013AF20 | 134 | GIANT | 185 | failed | | won't compile standalone (loose-typing / missing decl) | |
|
||||
| 167 | func_8012D098 | 134 | GIANT | 189 | failed | | won't compile standalone (loose-typing / missing decl) | |
|
||||
| 168 | func_80129CF8 | 134 | GIANT | 191 | failed | | won't compile standalone (loose-typing / missing decl) | |
|
||||
| 169 | func_8013A530 | 134 | GIANT | 204 | failed | | won't compile standalone (loose-typing / missing decl) | |
|
||||
| 170 | func_801372B0 | 134 | GIANT | 207 | failed | | won't compile standalone (loose-typing / missing decl) | |
|
||||
| 171 | func_80144B9C | 134 | other | 770 | failed | | -O0 cluster fn (prologue 21F0A003, fp-frame, all locals spilled+reloaded, load-delay nops). match_one compiles -O2 so it CANNOT match this; needs its own per-file -O0 split (Makefile CC1FLAGS:=-O0), like ov_SC01_077_o0.c. Body below is the faithful -O0 source; gate via whole-binary -O0 build only. | `.run/backlog_drafts/func_80144B9C.c` |
|
||||
| 172 | func_80151944 | 4 | struct | 15 | near | 0 | none — MATCH (fn-pointer table dispatch; array-of-ptr indexing folds %lo) | `.run/backlog_drafts/func_80151944.c` |
|
||||
| 173 | func_8016039C | 2 | STRUCT | 15 | near | 0 | match_one MATCH but gate rejected (declaration/TU plumbing) | `.run/backlog_drafts/func_8016039C.c` |
|
||||
| 174 | func_8015CC74 | 2 | STRUCT | 15 | near | 0 | match_one MATCH but gate rejected (declaration/TU plumbing) | `.run/backlog_drafts/func_8015CC74.c` |
|
||||
| 175 | func_8015DAF8 | 1 | struct | 15 | near | 0 | none — MATCH (proxy); identical idiom to matched func_8016901C in same overlay | `.run/backlog_drafts/func_8015DAF8.c` |
|
||||
| 176 | func_8015FAAC | 1 | STRUCT | 15 | near | 0 | match_one MATCH but gate rejected (declaration/TU plumbing) | `.run/backlog_drafts/func_8015FAAC.c` |
|
||||
| 177 | func_801577C8 | 1 | plumbing | 16 | near | 0 | none — MATCH expected (scalar global store + two sequential calls, param preserved across first call) | `.run/backlog_drafts/func_801577C8.c` |
|
||||
| 178 | func_80178B70 | 1 | struct | 18 | near | 0 | none — MATCH; local ptr p=&D_8018A458 used for store AND (int)p-0xC arg forces $s0-base reuse across call1, param_1 into $s1 | `.run/backlog_drafts/func_80178B70.c` |
|
||||
| 179 | func_8013373C | 1 | regalloc-order | 18 | near | 0 | none — MATCH (indexed-global int-array %lo-fold + (short)param*4 fuses sll16/sra14; loaded value pinned to $a0/$4 to reuse the param reg instead of $v0) | `.run/backlog_drafts/func_8013373C.c` |
|
||||
| 180 | func_8017F240 | 1 | regalloc-order | 20 | near | 0 | none — MATCH (base &D_801270D0 pinned to $s0 holds across call; one lui/addiu reused for load+store) | `.run/backlog_drafts/func_8017F240.c` |
|
||||
| 181 | func_80157D20 | 1 | plumbing | 21 | near | 0 | none — MATCH expected (call, indexed u16-global load as 2nd arg, then call; param_1 saved across all three calls) | `.run/backlog_drafts/func_80157D20.c` |
|
||||
| 182 | func_80163408 | 1 | struct | 21 | near | 0 | local 8-byte struct copied from D_801D8BB0, © passed as 5th arg (s32) | `.run/backlog_drafts/func_80163408.c` |
|
||||
| 183 | func_80175184 | 1 | struct | 21 | near | 0 | none — MATCH (fnptr-array %lo-fold dispatch; idx = *(u16*)(a0+2) < 2 ? D_8018A1A4[idx]() : func_80175268()) | `.run/backlog_drafts/func_80175184.c` |
|
||||
| 184 | func_8012F8C8 | 1 | plumbing | 21 | near | 0 | none — MATCH (pending verify) | `.run/backlog_drafts/func_8012F8C8.c` |
|
||||
| 185 | func_8014FBC0 | 1 | schedule | 22 | near | 0 | none — MATCH (22 ins). Stack-switch primitive: register $sp var, manual save/switch/restore around the call. | `.run/backlog_drafts/func_8014FBC0.c` |
|
||||
| 186 | func_80178B18 | 1 | other | 22 | near | 0 | none — MATCH | `.run/backlog_drafts/func_80178B18.c` |
|
||||
| 187 | func_8017B8E8 | 1 | plumbing | 22 | near | 0 | none — MATCH (two inlined unaligned 8-byte memcpy blocks: src[0..7]->D_801DA794, src[8..15]->D_801DA78C) | `.run/backlog_drafts/func_8017B8E8.c` |
|
||||
| 188 | func_80182988 | 1 | plumbing | 22 | near | 0 | none — MATCH (u16 store of 0xAA10 forces ori, not sign-extended addiu) | `.run/backlog_drafts/func_80182988.c` |
|
||||
| 189 | func_801320D8 | 1 | schedule | 27 | near | 0 | none — MATCH (27 ins, relocation-masked) | `.run/backlog_drafts/func_801320D8.c` |
|
||||
| 190 | func_80132144 | 1 | other | 27 | near | 0 | none — MATCH | `.run/backlog_drafts/func_80132144.c` |
|
||||
| 191 | func_801321B0 | 1 | other | 27 | near | 0 | none — MATCH (match_one 27/27, relocation-masked) | `.run/backlog_drafts/func_801321B0.c` |
|
||||
| 192 | func_8013221C | 1 | other | 27 | near | 0 | none — MATCH (expected); straight scheduling, one call-crossing local -> $s0 naturally | `.run/backlog_drafts/func_8013221C.c` |
|
||||
| 193 | func_801609B8 | 1 | struct | 28 | near | 0 | none — MATCH (pending byte-gate); function-pointer table %lo-fold via extern array | `.run/backlog_drafts/func_801609B8.c` |
|
||||
| 194 | func_801312D0 | 1 | struct | 28 | near | 0 | none — MATCH (unaligned 8-byte memcpy from global; if/else branch layout) | `.run/backlog_drafts/func_801312D0.c` |
|
||||
| 195 | func_80136C90 | 1 | other | 28 | near | 0 | local char[10] string-literal init -> rodata-template block move (lwl/lwr + swl/swr + lb/sb), 9+1 split | `.run/backlog_drafts/func_80136C90.c` |
|
||||
| 196 | func_8017E224 | 1 | struct | 29 | near | 0 | none — MATCH (unaligned 8-byte memcpy of global onto stack + cond byte incr) | `.run/backlog_drafts/func_8017E224.c` |
|
||||
| 197 | func_80165140 | 1 | regalloc-order | 30 | near | 0 | none — MATCH (pin i=$v1/eight=$a0/p=$a2; DON'T pin param — let it self-copy to $a3 first; memcpy 8/4 unaligned) | `.run/backlog_drafts/func_80165140.c` |
|
||||
| 198 | func_801549F8 | 1 | iv-combine | 31 | near | 0 | none — MATCH (31 ins). Re-tie barrier on the index defeats gcc's pointer-giv | `.run/backlog_drafts/func_801549F8.c` |
|
||||
| 199 | func_8015E698 | 1 | struct | 31 | near | 0 | none — MATCH (clean -O2 reconstruction; table-of-fnptr indexed by param_1[0]) | `.run/backlog_drafts/func_8015E698.c` |
|
||||
| 200 | func_8017D98C | 1 | plumbing | 31 | near | 0 | none — MATCH (expected): straight global stores + tail call; const 0x140 reused for two halves | `.run/backlog_drafts/func_8017D98C.c` |
|
||||
| 201 | func_80182268 | 1 | struct | 31 | near | 0 | none — MATCH (jump-table switch over sign-extended high byte of *(u16*)(a0+0x70); case4 decrements D_801270CC then falls into case3/7's func_8012C218; no default) | `.run/backlog_drafts/func_80182268.c` |
|
||||
| 202 | func_801602A4 | 1 | struct | 34 | near | 0 | none — MATCH (template = matched twin func_801601E4; lhu+0x8000 == compare, fnptr-table dispatch D_801891B8[*(u16*)a0]() no-arg, then 3-call setup in target order; func_80161208 in else) | `.run/backlog_drafts/func_801602A4.c` |
|
||||
| 203 | func_801734BC | 1 | struct | 34 | near | 0 | none — MATCH (pending byte-gate); switch-jtbl with no default, 3 short stores + fnptr call | `.run/backlog_drafts/func_801734BC.c` |
|
||||
| 204 | func_8017D900 | 1 | plumbing | 35 | near | 0 | none — expect MATCH (STUB: ordered global stores + single tail call, sibling of func_8017D840) | `.run/backlog_drafts/func_8017D900.c` |
|
||||
| 205 | func_8016BEA0 | 1 | other | 37 | near | 0 | none — MATCH (expected) | `.run/backlog_drafts/func_8016BEA0.c` |
|
||||
| 206 | func_801754A8 | 1 | regalloc-order | 37 | near | 0 | none — MATCH (37 ins, relocation-masked proxy) | `.run/backlog_drafts/func_801754A8.c` |
|
||||
| 207 | func_80160920 | 1 | struct | 38 | near | 0 | none — MATCH (function-pointer table folds %lo via extern array indexed by halfword) | `.run/backlog_drafts/func_80160920.c` |
|
||||
| 208 | func_80183BAC | 1 | struct | 41 | near | 0 | switch jump-table dispatch (jtbl_801D9420); verifying case grouping 0,1,2,5,6/3,7/4 emits the target table + tail | `.run/backlog_drafts/func_80183BAC.c` |
|
||||
| 209 | func_80183C50 | 1 | struct | 41 | near | 0 | none — MATCH (cross-jump exploit §cookbook L1543: dup func_8012C218 into case3/7 + case4 → merged jal;nop) | `.run/backlog_drafts/func_80183C50.c` |
|
||||
| 210 | func_8015DF34 | 1 | struct | 44 | near | 0 | none — MATCH (clean structural; fn-ptr table via array index folds %lo) | `.run/backlog_drafts/func_8015DF34.c` |
|
||||
| 211 | func_8015FE70 | 1 | struct | 44 | near | 0 | none — MATCH expected (fn-ptr-table dispatch + ushort struct fields) | `.run/backlog_drafts/func_8015FE70.c` |
|
||||
| 212 | func_8014358C | 1 | regalloc-order | 45 | near | 0 | none — MATCH (relocation-masked match_one) | `.run/backlog_drafts/func_8014358C.c` |
|
||||
| 213 | func_80183AF0 | 1 | regalloc-order | 47 | near | 0 | none — MATCH (mask pinned $a1/$5 + p pinned $v0/$2; switch w/ distributed func_8012C218 tail via dup calls + cross-jump merge) | `.run/backlog_drafts/func_80183AF0.c` |
|
||||
| 214 | func_80178BF8 | 1 | plumbing | 49 | near | 0 | none — MATCH (pure scalar-store + two pointer-decrement do-while loops) | `.run/backlog_drafts/func_80178BF8.c` |
|
||||
| 215 | func_8015E344 | 1 | struct | 50 | near | 0 | none — MATCH (pending whole-binary gate); fn-ptr table folds %lo via extern array, 0x234 single word store | `.run/backlog_drafts/func_8015E344.c` |
|
||||
| 216 | func_8017EC7C | 1 | struct | 52 | near | 0 | none — MATCH (52 ins, relocation-masked) | `.run/backlog_drafts/func_8017EC7C.c` |
|
||||
| 217 | func_80183CF4 | 1 | struct | 57 | near | 0 | none — MATCH (clean switch + jtbl; orchestrator owns jtbl/rodata migration) | `.run/backlog_drafts/func_80183CF4.c` |
|
||||
| 218 | func_8015D01C | 1 | regalloc-order | 58 | near | 0 | none — MATCH | `.run/backlog_drafts/func_8015D01C.c` |
|
||||
| 219 | func_8016D688 | 1 | struct | 60 | near | 0 | none — MATCH (byte array D_801D9C20[] folds the &D_801D9C21 base/-1 offsets; emit p+0xE store BEFORE the param+2 increment so the lhu fills the load-delay slot in $v1) | `.run/backlog_drafts/func_8016D688.c` |
|
||||
| 220 | func_801842C8 | 1 | plumbing | 62 | near | 0 | none — MATCH | `.run/backlog_drafts/func_801842C8.c` |
|
||||
| 221 | func_80165240 | 1 | regalloc-order | 63 | near | 0 | none — MATCH (63 ins). buf pinned to $s2 (register __asm__("$18")) so it stays in a callee-saved reg; param_3 then naturally lands in $s3. memcpy(buf+0x30,param_3,4) -> lwl/lwr+swl/swr unaligned 4B copy (cookbook §1 mem->mem). array-of-u8 buf with explicit *(T*)(buf+off) stores; mtx[0x20] declared 2nd so it lands at sp+0x50, buf_ at sp+0x10. | `.run/backlog_drafts/func_80165240.c` |
|
||||
| 222 | func_8017BB34 | 1 | struct | 65 | near | 0 | none — MATCH (65 ins). Keys: (1) align-1 {s8 b[8]} struct so the two 8-byte copies emit lwl/lwr; (2) stack-local declaration order = target frame order (svin@0x10, buf@0x18, out@0x38, local8@0x40, rt_in@0x48, rt_out@0x50) — reordering the locals to ascending offset fixed all 23 offset-only diffs. | `.run/backlog_drafts/func_8017BB34.c` |
|
||||
| 223 | func_8016BD78 | 1 | regalloc-order | 74 | near | 0 | none — MATCH (lazy pointer locals pa=&BC4, pb=&BC8 assigned at first use → $a1/$a2 held thru middle code as final call args; middle bytes BC5/BC6/BC9/BCA direct global) | `.run/backlog_drafts/func_8016BD78.c` |
|
||||
| 224 | func_8016E7C8 | 1 | regalloc-order | 74 | near | 0 | none — MATCH (match_one 74/74; pins $18=&prim, $19=param_3 fixed s2/s3 alloc order; Work struct sized to 0x20) | `.run/backlog_drafts/func_8016E7C8.c` |
|
||||
| 225 | func_8018281C | 1 | struct | 76 | near | 0 | none — MATCH (76 ins). jtbl forced via explicit case 4/6 (count>=5 over MIPS tablejump threshold); case-5 block placed between if-block and default via goto so the if-block emits j default w/ e2=0 in the delay slot | `.run/backlog_drafts/func_8018281C.c` |
|
||||
| 226 | func_8016AE5C | 1 | regalloc-order | 85 | near | 0 | none — MATCH (85 ins, match_one). switch/jtbl STRUCT fn. The tail's | `.run/backlog_drafts/func_8016AE5C.c` |
|
||||
| 227 | func_80182E7C | 1 | struct | 85 | near | 0 | none — MATCH (85 ins, relocation-masked). Two switch-codegen levers: | `.run/backlog_drafts/func_80182E7C.c` |
|
||||
| 228 | func_8015C7E4 | 1 | struct | 88 | near | 0 | none — MATCH (match_one 88/88); fn-ptr-array dispatch, top-level if/else needed branch-polarity invert (small block falls through, big block at L854) | `.run/backlog_drafts/func_8015C7E4.c` |
|
||||
| 229 | func_8015CA28 | 1 | schedule | 91 | near | 0 | none — MATCH (goto forces the func_80161240 block to the function tail; bnez-to-end layout vs early-return fall-through) | `.run/backlog_drafts/func_8015CA28.c` |
|
||||
| 230 | func_801820DC | 1 | struct | 94 | near | 0 | none — MATCH (switch on entity state at 0x34, inner jtbl on (s8)(u70>>8)) | `.run/backlog_drafts/func_801820DC.c` |
|
||||
| 231 | func_80184D50 | 1 | schedule | 98 | near | 0 | none — MATCH (98 ins, relocation-masked) | `.run/backlog_drafts/func_80184D50.c` |
|
||||
| 232 | func_80128218 | None | | None | near | 0 | match_one MATCH but gate rejected (declaration/TU plumbing) | `.run/backlog_drafts/func_80128218.c` |
|
||||
| 233 | func_8013E054 | None | | None | near | 0 | match_one MATCH but gate rejected (declaration/TU plumbing) | `.run/backlog_drafts/func_8013E054.c` |
|
||||
| 234 | func_80165658 | None | | None | near | 0 | match_one MATCH but gate rejected (declaration/TU plumbing) | `.run/backlog_drafts/func_80165658.c` |
|
||||
| 235 | func_80178D18 | None | | None | near | 0 | match_one MATCH but gate rejected (declaration/TU plumbing) | `.run/backlog_drafts/func_80178D18.c` |
|
||||
| 236 | func_8017CFD4 | None | | None | near | 0 | match_one MATCH but gate rejected (declaration/TU plumbing) | `.run/backlog_drafts/func_8017CFD4.c` |
|
||||
| 237 | func_8017CFFC | None | | None | near | 0 | match_one MATCH but gate rejected (declaration/TU plumbing) | `.run/backlog_drafts/func_8017CFFC.c` |
|
||||
| 238 | func_8017CF78 | None | | None | near | 0 | match_one MATCH but gate rejected (declaration/TU plumbing) | `.run/backlog_drafts/func_8017CF78.c` |
|
||||
| 239 | func_8017CFA0 | None | | None | near | 0 | match_one MATCH but gate rejected (declaration/TU plumbing) | `.run/backlog_drafts/func_8017CFA0.c` |
|
||||
| 240 | func_8013CABC | None | | None | near | 0 | match_one MATCH but gate rejected (declaration/TU plumbing) | `.run/backlog_drafts/func_8013CABC.c` |
|
||||
| 241 | func_8013D164 | None | | None | near | 0 | match_one MATCH but gate rejected (declaration/TU plumbing) | `.run/backlog_drafts/func_8013D164.c` |
|
||||
| 242 | func_8014C1A0 | None | | None | near | 0 | match_one MATCH but gate rejected (declaration/TU plumbing) | `.run/backlog_drafts/func_8014C1A0.c` |
|
||||
| 243 | func_8015E588 | None | | None | near | 0 | match_one MATCH but gate rejected (declaration/TU plumbing) | `.run/backlog_drafts/func_8015E588.c` |
|
||||
| 244 | func_8017D13C | None | | None | near | 0 | match_one MATCH but gate rejected (declaration/TU plumbing) | `.run/backlog_drafts/func_8017D13C.c` |
|
||||
| 245 | func_8017D164 | None | | None | near | 0 | match_one MATCH but gate rejected (declaration/TU plumbing) | `.run/backlog_drafts/func_8017D164.c` |
|
||||
| 246 | func_8017D18C | None | | None | near | 0 | match_one MATCH but gate rejected (declaration/TU plumbing) | `.run/backlog_drafts/func_8017D18C.c` |
|
||||
| 247 | func_8017DA9C | None | | None | near | 0 | match_one MATCH but gate rejected (declaration/TU plumbing) | `.run/backlog_drafts/func_8017DA9C.c` |
|
||||
| 248 | func_8014C5D0 | None | | None | near | 0 | match_one MATCH but gate rejected (declaration/TU plumbing) | `.run/backlog_drafts/func_8014C5D0.c` |
|
||||
| 249 | func_8017D5D4 | None | | None | near | 0 | match_one MATCH but gate rejected (declaration/TU plumbing) | `.run/backlog_drafts/func_8017D5D4.c` |
|
||||
| 250 | func_8017D5FC | None | | None | near | 0 | match_one MATCH but gate rejected (declaration/TU plumbing) | `.run/backlog_drafts/func_8017D5FC.c` |
|
||||
| 251 | func_8017D02C | None | | None | near | 0 | match_one MATCH but gate rejected (declaration/TU plumbing) | `.run/backlog_drafts/func_8017D02C.c` |
|
||||
| 252 | func_8017D054 | None | | None | near | 0 | match_one MATCH but gate rejected (declaration/TU plumbing) | `.run/backlog_drafts/func_8017D054.c` |
|
||||
| 253 | func_8017D07C | None | | None | near | 0 | match_one MATCH but gate rejected (declaration/TU plumbing) | `.run/backlog_drafts/func_8017D07C.c` |
|
||||
| 254 | func_8017D430 | None | | None | near | 0 | match_one MATCH but gate rejected (declaration/TU plumbing) | `.run/backlog_drafts/func_8017D430.c` |
|
||||
| 255 | func_8017D134 | None | | None | near | 0 | match_one MATCH but gate rejected (declaration/TU plumbing) | `.run/backlog_drafts/func_8017D134.c` |
|
||||
| 256 | func_8017D15C | None | | None | near | 0 | match_one MATCH but gate rejected (declaration/TU plumbing) | `.run/backlog_drafts/func_8017D15C.c` |
|
||||
| 257 | func_8017D3FC | None | | None | near | 0 | match_one MATCH but gate rejected (declaration/TU plumbing) | `.run/backlog_drafts/func_8017D3FC.c` |
|
||||
| 258 | func_8017D6D4 | None | | None | near | 0 | match_one MATCH but gate rejected (declaration/TU plumbing) | `.run/backlog_drafts/func_8017D6D4.c` |
|
||||
| 259 | func_8017D964 | None | | None | near | 0 | match_one MATCH but gate rejected (declaration/TU plumbing) | `.run/backlog_drafts/func_8017D964.c` |
|
||||
| 260 | func_8017F458 | None | | None | near | 0 | match_one MATCH but gate rejected (declaration/TU plumbing) | `.run/backlog_drafts/func_8017F458.c` |
|
||||
| 261 | func_8018A660 | None | | None | near | 0 | match_one MATCH but gate rejected (declaration/TU plumbing) | `.run/backlog_drafts/func_8018A660.c` |
|
||||
| 262 | func_8013C98C | None | | None | near | 0 | match_one MATCH but gate rejected (declaration/TU plumbing) | `.run/backlog_drafts/func_8013C98C.c` |
|
||||
| 263 | func_80161C98 | None | | None | near | 0 | match_one MATCH but gate rejected (declaration/TU plumbing) | `.run/backlog_drafts/func_80161C98.c` |
|
||||
| 264 | func_80171120 | None | | None | near | 0 | match_one MATCH but gate rejected (declaration/TU plumbing) | `.run/backlog_drafts/func_80171120.c` |
|
||||
| 265 | func_80157544 | None | | None | near | 0 | match_one MATCH but gate rejected (declaration/TU plumbing) | `.run/backlog_drafts/func_80157544.c` |
|
||||
| 266 | func_8015DE58 | None | | None | near | 0 | match_one MATCH but gate rejected (declaration/TU plumbing) | `.run/backlog_drafts/func_8015DE58.c` |
|
||||
| 267 | func_801678B4 | None | | None | near | 0 | match_one MATCH but gate rejected (declaration/TU plumbing) | `.run/backlog_drafts/func_801678B4.c` |
|
||||
| 268 | func_8016F6E0 | None | | None | near | 0 | match_one MATCH but gate rejected (declaration/TU plumbing) | `.run/backlog_drafts/func_8016F6E0.c` |
|
||||
| 269 | func_8016FDB4 | None | | None | near | 0 | match_one MATCH but gate rejected (declaration/TU plumbing) | `.run/backlog_drafts/func_8016FDB4.c` |
|
||||
| 270 | func_8016FFDC | None | | None | near | 0 | match_one MATCH but gate rejected (declaration/TU plumbing) | `.run/backlog_drafts/func_8016FFDC.c` |
|
||||
| 271 | func_8017D418 | None | | None | near | 0 | match_one MATCH but gate rejected (declaration/TU plumbing) | `.run/backlog_drafts/func_8017D418.c` |
|
||||
| 272 | func_8017D440 | None | | None | near | 0 | match_one MATCH but gate rejected (declaration/TU plumbing) | `.run/backlog_drafts/func_8017D440.c` |
|
||||
| 273 | func_8017E034 | None | | None | near | 0 | match_one MATCH but gate rejected (declaration/TU plumbing) | `.run/backlog_drafts/func_8017E034.c` |
|
||||
| 274 | func_8017ED30 | None | | None | near | 0 | match_one MATCH but gate rejected (declaration/TU plumbing) | `.run/backlog_drafts/func_8017ED30.c` |
|
||||
| 275 | func_8017ED58 | None | | None | near | 0 | match_one MATCH but gate rejected (declaration/TU plumbing) | `.run/backlog_drafts/func_8017ED58.c` |
|
||||
| 276 | func_80157DC4 | None | | None | near | 0 | match_one MATCH but gate rejected (declaration/TU plumbing) | `.run/backlog_drafts/func_80157DC4.c` |
|
||||
| 277 | func_80164EA4 | None | | None | near | 0 | match_one MATCH but gate rejected (declaration/TU plumbing) | `.run/backlog_drafts/func_80164EA4.c` |
|
||||
| 278 | func_8016F8E4 | None | | None | near | 0 | match_one MATCH but gate rejected (declaration/TU plumbing) | `.run/backlog_drafts/func_8016F8E4.c` |
|
||||
| 279 | func_80171064 | None | | None | near | 0 | match_one MATCH but gate rejected (declaration/TU plumbing) | `.run/backlog_drafts/func_80171064.c` |
|
||||
| 280 | func_801727D0 | None | | None | near | 0 | match_one MATCH but gate rejected (declaration/TU plumbing) | `.run/backlog_drafts/func_801727D0.c` |
|
||||
| 281 | func_801747CC | None | | None | near | 0 | match_one MATCH but gate rejected (declaration/TU plumbing) | `.run/backlog_drafts/func_801747CC.c` |
|
||||
| 282 | func_8017EE24 | None | | None | near | 0 | match_one MATCH but gate rejected (declaration/TU plumbing) | `.run/backlog_drafts/func_8017EE24.c` |
|
||||
| 283 | func_8017F40C | None | | None | near | 0 | match_one MATCH but gate rejected (declaration/TU plumbing) | `.run/backlog_drafts/func_8017F40C.c` |
|
||||
| 284 | func_8017D34C | None | | None | near | 0 | match_one MATCH but gate rejected (declaration/TU plumbing) | `.run/backlog_drafts/func_8017D34C.c` |
|
||||
| 285 | func_8017D374 | None | | None | near | 0 | match_one MATCH but gate rejected (declaration/TU plumbing) | `.run/backlog_drafts/func_8017D374.c` |
|
||||
| 286 | func_8017F080 | None | | None | near | 0 | match_one MATCH but gate rejected (declaration/TU plumbing) | `.run/backlog_drafts/func_8017F080.c` |
|
||||
| 287 | func_801866B0 | None | | None | near | 0 | match_one MATCH but gate rejected (declaration/TU plumbing) | `.run/backlog_drafts/func_801866B0.c` |
|
||||
| 288 | func_8017D00C | None | | None | near | 0 | match_one MATCH but gate rejected (declaration/TU plumbing) | `.run/backlog_drafts/func_8017D00C.c` |
|
||||
| 289 | func_8017D034 | None | | None | near | 0 | match_one MATCH but gate rejected (declaration/TU plumbing) | `.run/backlog_drafts/func_8017D034.c` |
|
||||
| 290 | func_80161D20 | 1 | struct | 14 | near | 1 | none — MATCH (array-of-u16 %lo-fold, §18) | `.run/backlog_drafts/func_80161D20.c` |
|
||||
| 291 | func_8017F714 | 1 | plumbing | 27 | near | 1 | none — MATCH (27/27 ins, match_one verified) | `.run/backlog_drafts/func_8017F714.c` |
|
||||
| 292 | func_80142A10 | 1 | struct | 28 | near | 1 | none — MATCH (pending byte-gate) | `.run/backlog_drafts/func_80142A10.c` |
|
||||
| 293 | func_80161C24 | 1 | struct | 29 | near | 1 | none — MATCH (array-of-struct %lo-fold; even/odd u16 fields at off 0/2, stride 4) | `.run/backlog_drafts/func_80161C24.c` |
|
||||
| 294 | func_80184C0C | 1 | struct | 48 | near | 1 | none — MATCH (array-of-struct %lo-fold for &D_8018AEB8[idx], stride 0x34) | `.run/backlog_drafts/func_80184C0C.c` |
|
||||
| 295 | func_8016B4F8 | 1 | regalloc-order | 50 | near | 1 | none — MATCH | `.run/backlog_drafts/func_8016B4F8.c` |
|
||||
| 296 | func_801803B0 | 1 | other | 51 | near | 1 | none — MATCH expected; simple if/else, no call-crossing locals beyond param in $s0 | `.run/backlog_drafts/func_801803B0.c` |
|
||||
| 297 | func_8015FBE0 | 1 | schedule | 58 | near | 1 | none — MATCH | `.run/backlog_drafts/func_8015FBE0.c` |
|
||||
| 298 | func_8017F114 | 1 | regalloc-order | 75 | near | 1 | none — MATCH | `.run/backlog_drafts/func_8017F114.c` |
|
||||
| 299 | func_801656E8 | None | | None | near | 1 | residual: 1 mismatch | `.run/backlog_drafts/func_801656E8.c` |
|
||||
| 300 | func_8017D2D4 | None | | None | near | 1 | residual: 1 mismatch | `.run/backlog_drafts/func_8017D2D4.c` |
|
||||
| 301 | func_801807D8 | None | | None | near | 1 | residual: 1 mismatch | `.run/backlog_drafts/func_801807D8.c` |
|
||||
| 302 | func_80180AD0 | None | | None | near | 1 | residual: 1 mismatch | `.run/backlog_drafts/func_80180AD0.c` |
|
||||
| 303 | func_8017F758 | None | | None | near | 1 | residual: 1 mismatch | `.run/backlog_drafts/func_8017F758.c` |
|
||||
| 304 | func_8017FDB0 | None | | None | near | 1 | residual: 1 mismatch | `.run/backlog_drafts/func_8017FDB0.c` |
|
||||
| 305 | func_80180720 | None | | None | near | 1 | residual: 1 mismatch | `.run/backlog_drafts/func_80180720.c` |
|
||||
| 306 | func_80184D80 | None | | None | near | 1 | residual: 1 mismatch | `.run/backlog_drafts/func_80184D80.c` |
|
||||
| 307 | func_80184A28 | None | | None | near | 1 | residual: 1 mismatch | `.run/backlog_drafts/func_80184A28.c` |
|
||||
| 308 | func_8017FB2C | None | | None | near | 1 | residual: 1 mismatch | `.run/backlog_drafts/func_8017FB2C.c` |
|
||||
| 309 | func_80183724 | None | | None | near | 1 | residual: 1 mismatch | `.run/backlog_drafts/func_80183724.c` |
|
||||
| 310 | func_80183AFC | None | | None | near | 1 | residual: 1 mismatch | `.run/backlog_drafts/func_80183AFC.c` |
|
||||
| 311 | func_8017EE50 | None | | None | near | 1 | residual: 1 mismatch | `.run/backlog_drafts/func_8017EE50.c` |
|
||||
| 312 | func_80181FF8 | None | | None | near | 1 | residual: 1 mismatch | `.run/backlog_drafts/func_80181FF8.c` |
|
||||
| 313 | func_80185D5C | None | | None | near | 1 | residual: 1 mismatch | `.run/backlog_drafts/func_80185D5C.c` |
|
||||
| 314 | func_8018AE80 | None | | None | near | 1 | residual: 1 mismatch | `.run/backlog_drafts/func_8018AE80.c` |
|
||||
| 315 | func_80183FF4 | None | | None | near | 1 | residual: 1 mismatch | `.run/backlog_drafts/func_80183FF4.c` |
|
||||
| 316 | func_801832F4 | None | | None | near | 1 | residual: 1 mismatch | `.run/backlog_drafts/func_801832F4.c` |
|
||||
| 317 | func_8017FE4C | None | | None | near | 1 | residual: 1 mismatch | `.run/backlog_drafts/func_8017FE4C.c` |
|
||||
| 318 | func_801827C4 | None | | None | near | 1 | residual: 1 mismatch | `.run/backlog_drafts/func_801827C4.c` |
|
||||
| 319 | func_8017F290 | 1 | regalloc-order | 86 | near | 2 | none — MATCH. Two levers: (1) hold &D_801270CC in a `int *state` local so its | `.run/backlog_drafts/func_8017F290.c` |
|
||||
| 320 | func_8016EC0C | 1 | schedule | 88 | near | 2 | none — MATCH (88 ins). Sparse switch(uVar2) = gcc's beq-pivot+slti comparison | `.run/backlog_drafts/func_8016EC0C.c` |
|
||||
| 321 | func_8017F6B0 | None | | None | near | 2 | residual: 2 mismatch | `.run/backlog_drafts/func_8017F6B0.c` |
|
||||
| 322 | func_8017DDFC | None | | None | near | 2 | residual: 2 mismatch | `.run/backlog_drafts/func_8017DDFC.c` |
|
||||
| 323 | func_8017FD2C | None | | None | near | 2 | residual: 2 mismatch | `.run/backlog_drafts/func_8017FD2C.c` |
|
||||
| 324 | func_8018A640 | None | | None | near | 2 | residual: 2 mismatch | `.run/backlog_drafts/func_8018A640.c` |
|
||||
| 325 | func_80188F30 | None | | None | near | 2 | residual: 2 mismatch | `.run/backlog_drafts/func_80188F30.c` |
|
||||
| 326 | func_8018BCB4 | None | | None | near | 2 | residual: 2 mismatch | `.run/backlog_drafts/func_8018BCB4.c` |
|
||||
| 327 | func_80185320 | None | | None | near | 2 | residual: 2 mismatch | `.run/backlog_drafts/func_80185320.c` |
|
||||
| 328 | func_80185670 | None | | None | near | 2 | residual: 2 mismatch | `.run/backlog_drafts/func_80185670.c` |
|
||||
| 329 | func_801880F4 | None | | None | near | 2 | residual: 2 mismatch | `.run/backlog_drafts/func_801880F4.c` |
|
||||
| 330 | func_80171B4C | 1 | schedule | 70 | near | 3 | 3-off in the tail only (body+prologue MATCH via $s1 pin on arg1). gcc fills the | `.run/backlog_drafts/func_80171B4C.c` |
|
||||
| 331 | func_8017DA80 | None | | None | near | 3 | residual: 3 mismatch | `.run/backlog_drafts/func_8017DA80.c` |
|
||||
| 332 | func_8017D468 | None | | None | near | 3 | residual: 3 mismatch | `.run/backlog_drafts/func_8017D468.c` |
|
||||
| 333 | func_80185BF4 | None | | None | near | 3 | residual: 3 mismatch | `.run/backlog_drafts/func_80185BF4.c` |
|
||||
| 334 | func_8017DCE4 | None | | None | near | 3 | residual: 3 mismatch | `.run/backlog_drafts/func_8017DCE4.c` |
|
||||
| 335 | func_8017F510 | None | | None | near | 3 | residual: 3 mismatch | `.run/backlog_drafts/func_8017F510.c` |
|
||||
| 336 | func_80182EC4 | None | | None | near | 3 | residual: 3 mismatch | `.run/backlog_drafts/func_80182EC4.c` |
|
||||
| 337 | func_80140E6C | 1 | schedule | 37 | near | 4 | 4 ins — each save-across-call copy (move s1,v0 / move s0,v0) should fill the NEXT jal's delay slot (target) but gcc-2.7.2 sched ties the copy with the next call's arg-setup at priority 2 and the LUID tie-break (rank_for_schedule) keeps the copy first, so reorg fills the slot with the arg-setup instead; no C reshape found that flips the LUID/priority order without breaking the OR-chain regalloc. | `.run/backlog_drafts/func_80140E6C.c` |
|
||||
| 338 | func_8012A018 | None | | None | near | 4 | residual: 4 mismatch | `.run/backlog_drafts/func_8012A018.c` |
|
||||
| 339 | func_80180B24 | None | | None | near | 4 | residual: 4 mismatch | `.run/backlog_drafts/func_80180B24.c` |
|
||||
| 340 | func_80180B34 | None | | None | near | 4 | residual: 4 mismatch | `.run/backlog_drafts/func_80180B34.c` |
|
||||
| 341 | func_80181758 | None | | None | near | 4 | residual: 4 mismatch | `.run/backlog_drafts/func_80181758.c` |
|
||||
| 342 | func_80188484 | None | | None | near | 4 | residual: 4 mismatch | `.run/backlog_drafts/func_80188484.c` |
|
||||
| 343 | func_8013CAE8 | None | | None | near | 4 | residual: 4 mismatch | `.run/backlog_drafts/func_8013CAE8.c` |
|
||||
| 344 | func_8018F080 | None | | None | near | 4 | residual: 4 mismatch | `.run/backlog_drafts/func_8018F080.c` |
|
||||
| 345 | func_8018F090 | None | | None | near | 4 | residual: 4 mismatch | `.run/backlog_drafts/func_8018F090.c` |
|
||||
| 346 | func_80190460 | None | | None | near | 4 | residual: 4 mismatch | `.run/backlog_drafts/func_80190460.c` |
|
||||
| 347 | func_80190470 | None | | None | near | 4 | residual: 4 mismatch | `.run/backlog_drafts/func_80190470.c` |
|
||||
| 348 | func_80183690 | None | | None | near | 4 | residual: 4 mismatch | `.run/backlog_drafts/func_80183690.c` |
|
||||
| 349 | func_801836A0 | None | | None | near | 4 | residual: 4 mismatch | `.run/backlog_drafts/func_801836A0.c` |
|
||||
| 350 | func_80188F4C | None | | None | near | 4 | residual: 4 mismatch | `.run/backlog_drafts/func_80188F4C.c` |
|
||||
| 351 | func_80188F5C | None | | None | near | 4 | residual: 4 mismatch | `.run/backlog_drafts/func_80188F5C.c` |
|
||||
| 352 | func_80185CC8 | None | | None | near | 4 | residual: 4 mismatch | `.run/backlog_drafts/func_80185CC8.c` |
|
||||
| 353 | func_80185CD8 | None | | None | near | 4 | residual: 4 mismatch | `.run/backlog_drafts/func_80185CD8.c` |
|
||||
| 354 | func_8018ADEC | None | | None | near | 4 | residual: 4 mismatch | `.run/backlog_drafts/func_8018ADEC.c` |
|
||||
| 355 | func_8018ADFC | None | | None | near | 4 | residual: 4 mismatch | `.run/backlog_drafts/func_8018ADFC.c` |
|
||||
| 356 | func_8018478C | None | | None | near | 4 | residual: 4 mismatch | `.run/backlog_drafts/func_8018478C.c` |
|
||||
| 357 | func_8018479C | None | | None | near | 4 | residual: 4 mismatch | `.run/backlog_drafts/func_8018479C.c` |
|
||||
| 358 | func_8017EF50 | 1 | schedule | 53 | near | 5 | 5 ins — gcc-2.7.2 instr-scheduler load-order tie-breaks. Branch region + cross-jump-break (t14 pin to $3) + 0x34/0x30 hoist (c34 pin $5, c2c pin $3) all MATCH. Residual: (a) header 0x10-load vs 0x2c-load order swap; (b) compare loads 0x36-before-0xA and puts 0xA in $a1 not $a2 (slt operand reg differs). Both clusters resist source steering — every fix to one perturbs the pinned header schedule. | `.run/backlog_drafts/func_8017EF50.c` |
|
||||
| 359 | func_8017CE34 | None | | None | near | 5 | residual: 5 mismatch | `.run/backlog_drafts/func_8017CE34.c` |
|
||||
| 360 | func_8017D948 | None | | None | near | 5 | residual: 5 mismatch | `.run/backlog_drafts/func_8017D948.c` |
|
||||
| 361 | func_8017D2EC | None | | None | near | 5 | residual: 5 mismatch | `.run/backlog_drafts/func_8017D2EC.c` |
|
||||
| 362 | func_801803F0 | None | | None | near | 5 | residual: 5 mismatch | `.run/backlog_drafts/func_801803F0.c` |
|
||||
| 363 | func_80180710 | None | | None | near | 5 | residual: 5 mismatch | `.run/backlog_drafts/func_80180710.c` |
|
||||
| 364 | func_8017CE7C | None | | None | near | 5 | residual: 5 mismatch | `.run/backlog_drafts/func_8017CE7C.c` |
|
||||
| 365 | func_8017F7D8 | None | | None | near | 5 | residual: 5 mismatch | `.run/backlog_drafts/func_8017F7D8.c` |
|
||||
| 366 | func_8017ED98 | None | | None | near | 5 | residual: 5 mismatch | `.run/backlog_drafts/func_8017ED98.c` |
|
||||
| 367 | func_80181B8C | None | | None | near | 5 | residual: 5 mismatch | `.run/backlog_drafts/func_80181B8C.c` |
|
||||
| 368 | func_8017E14C | None | | None | near | 5 | residual: 5 mismatch | `.run/backlog_drafts/func_8017E14C.c` |
|
||||
| 369 | func_8017D528 | None | | None | near | 5 | residual: 5 mismatch | `.run/backlog_drafts/func_8017D528.c` |
|
||||
| 370 | func_801900E0 | None | | None | near | 5 | residual: 5 mismatch | `.run/backlog_drafts/func_801900E0.c` |
|
||||
| 371 | func_8017D1F4 | None | | None | near | 5 | residual: 5 mismatch | `.run/backlog_drafts/func_8017D1F4.c` |
|
||||
| 372 | func_8017DB48 | None | | None | near | 5 | residual: 5 mismatch | `.run/backlog_drafts/func_8017DB48.c` |
|
||||
| 373 | func_8017EBD0 | None | | None | near | 5 | residual: 5 mismatch | `.run/backlog_drafts/func_8017EBD0.c` |
|
||||
| 374 | func_80182720 | None | | None | near | 5 | residual: 5 mismatch | `.run/backlog_drafts/func_80182720.c` |
|
||||
| 375 | func_8017D160 | None | | None | near | 5 | residual: 5 mismatch | `.run/backlog_drafts/func_8017D160.c` |
|
||||
| 376 | func_8017E9D0 | None | | None | near | 5 | residual: 5 mismatch | `.run/backlog_drafts/func_8017E9D0.c` |
|
||||
| 377 | func_8017D368 | None | | None | near | 5 | residual: 5 mismatch | `.run/backlog_drafts/func_8017D368.c` |
|
||||
| 378 | func_8014D3E0 | 1 | other | 22 | near | 6 | none — MATCH | `.run/backlog_drafts/func_8014D3E0.c` |
|
||||
| 379 | func_8013CF68 | 1 | schedule | 63 | near | 6 | blocks 2&3 delay-slot fill — gcc picks dead-reg $v1(b0,0x10/0x20) store for the jal delay slot; target picks arg-reg $a3(0x12/0x22). 6 ins (2 rotations); not flippable by source store-order/interleave/barrier (all tested); permuter/scheduler-internal lever needed. Prologue, $s0 fold, regalloc, block-1 all exact. | `.run/backlog_drafts/func_8013CF68.c` |
|
||||
| 380 | func_8017B940 | 1 | struct | 63 | near | 6 | none — MATCH | `.run/backlog_drafts/func_8017B940.c` |
|
||||
| 381 | func_8017B238 | 1 | regalloc-order | 76 | near | 6 | 6 ins — gcc coalesces param_2 into callee-saved $s0 and hoists `move $s0,$a1` | `.run/backlog_drafts/func_8017B238.c` |
|
||||
| 382 | func_8017B614 | 1 | regalloc-order | 101 | near | 6 | 6 ins — param_2 lands in callee-saved $s0 (entry `move s0,a1`, sltiu/sll read s0) vs target's $a1; gcc prefers s0 (saved anyway for the late p794/p78C copies) over caller-saved $a1. Body+schedule otherwise byte-exact (101/101 ins); the late-part `__asm__("")` barrier is load-bearing (fixes the const-store schedule, 21->6). | `.run/backlog_drafts/func_8017B614.c` |
|
||||
| 383 | func_801656D0 | None | | None | near | 6 | residual: 6 mismatch | `.run/backlog_drafts/func_801656D0.c` |
|
||||
| 384 | func_80165700 | None | | None | near | 6 | residual: 6 mismatch | `.run/backlog_drafts/func_80165700.c` |
|
||||
| 385 | func_80180AE8 | None | | None | near | 6 | residual: 6 mismatch | `.run/backlog_drafts/func_80180AE8.c` |
|
||||
| 386 | func_8017D398 | None | | None | near | 6 | residual: 6 mismatch | `.run/backlog_drafts/func_8017D398.c` |
|
||||
| 387 | func_801345F8 | 1 | schedule | 106 | near | 7 | 7 ins, all pure scheduling order — maskedp copy not sunk into bnez delay slot | `.run/backlog_drafts/func_801345F8.c` |
|
||||
| 388 | func_8016BFA8 | None | | None | near | 7 | residual: 7 mismatch | `.run/backlog_drafts/func_8016BFA8.c` |
|
||||
| 389 | func_801815D8 | None | | None | near | 7 | residual: 7 mismatch | `.run/backlog_drafts/func_801815D8.c` |
|
||||
| 390 | func_80189898 | None | | None | near | 7 | residual: 7 mismatch | `.run/backlog_drafts/func_80189898.c` |
|
||||
| 391 | func_8018823C | None | | None | near | 7 | residual: 7 mismatch | `.run/backlog_drafts/func_8018823C.c` |
|
||||
| 392 | func_80183E3C | None | | None | near | 7 | residual: 7 mismatch | `.run/backlog_drafts/func_80183E3C.c` |
|
||||
| 393 | func_80164E40 | 1 | struct | 25 | near | 8 | none — MATCH expected; byte 0 keeps base $v1 (reused by final lw word), bytes 1/2 standalone | `.run/backlog_drafts/func_80164E40.c` |
|
||||
| 394 | func_80185F24 | None | | None | near | 8 | residual: 8 mismatch | `.run/backlog_drafts/func_80185F24.c` |
|
||||
| 395 | func_80189858 | None | | None | near | 8 | residual: 8 mismatch | `.run/backlog_drafts/func_80189858.c` |
|
||||
| 396 | func_8017FFF0 | None | | None | near | 8 | residual: 8 mismatch | `.run/backlog_drafts/func_8017FFF0.c` |
|
||||
| 397 | func_8017E908 | None | | None | near | 8 | residual: 8 mismatch | `.run/backlog_drafts/func_8017E908.c` |
|
||||
| 398 | func_8013CB5C | None | | None | near | 9 | residual: 9 mismatch | `.run/backlog_drafts/func_8013CB5C.c` |
|
||||
| 399 | func_8017A3B0 | None | | None | near | 9 | residual: 9 mismatch | `.run/backlog_drafts/func_8017A3B0.c` |
|
||||
| 400 | func_8017F358 | None | | None | near | 9 | residual: 9 mismatch | `.run/backlog_drafts/func_8017F358.c` |
|
||||
| 401 | func_80180174 | None | | None | near | 9 | residual: 9 mismatch | `.run/backlog_drafts/func_80180174.c` |
|
||||
| 402 | func_8014C8C8 | None | | None | near | 10 | residual: 10 mismatch | `.run/backlog_drafts/func_8014C8C8.c` |
|
||||
| 403 | func_80185A00 | None | | None | near | 10 | residual: 10 mismatch | `.run/backlog_drafts/func_80185A00.c` |
|
||||
| 404 | func_8016E9EC | 1 | schedule | 53 | near | 11 | 11 left — all GNU scheduler/canon tie-breaks (regs all match via pins): (a) prologue hoists `addiu a1,0x1C` into the save block; (b) first lbu reads $a0 not $s1 (incoming-arg still live); (c) iCopy copy `addu s4,s0` lands early (scheduler) vs target's func_800D2CA8 delay-slot; (d) `addu a2,s2,s3` vs target `s3,s2` commutative-canon (unflippable w/o breaking load order). Permuter can't run (register __asm__ pins rejected, cookbook §5a). | `.run/backlog_drafts/func_8016E9EC.c` |
|
||||
| 405 | func_801824D0 | 1 | WAVE | 181 | near | 11 | WAVE: 11 mismatch | `.run/backlog_drafts/func_801824D0.c` |
|
||||
| 406 | func_80165670 | None | | None | near | 11 | residual: 11 mismatch | `.run/backlog_drafts/func_80165670.c` |
|
||||
| 407 | func_80182F4C | None | | None | near | 11 | residual: 11 mismatch | `.run/backlog_drafts/func_80182F4C.c` |
|
||||
| 408 | func_801835C8 | None | | None | near | 11 | residual: 11 mismatch | `.run/backlog_drafts/func_801835C8.c` |
|
||||
| 409 | func_8017D6C4 | None | | None | near | 11 | residual: 11 mismatch | `.run/backlog_drafts/func_8017D6C4.c` |
|
||||
| 410 | func_80156044 | 1 | struct | 74 | near | 12 | none — MATCH (74 ins, relocation-masked); $s2-pin for u16-return + def-mask + 3-arg cast on func_80156848 | `.run/backlog_drafts/func_80156044.c` |
|
||||
| 411 | func_8013C964 | None | | None | near | 12 | residual: 12 mismatch | `.run/backlog_drafts/func_8013C964.c` |
|
||||
| 412 | func_8013B568 | None | | None | near | 12 | residual: 12 mismatch | `.run/backlog_drafts/func_8013B568.c` |
|
||||
| 413 | func_801289F0 | None | | None | near | 12 | residual: 12 mismatch | `.run/backlog_drafts/func_801289F0.c` |
|
||||
| 414 | func_80182E58 | None | | None | near | 12 | residual: 12 mismatch | `.run/backlog_drafts/func_80182E58.c` |
|
||||
| 415 | func_80185F58 | None | | None | near | 13 | residual: 13 mismatch | `.run/backlog_drafts/func_80185F58.c` |
|
||||
| 416 | func_8018A3C8 | None | | None | near | 13 | residual: 13 mismatch | `.run/backlog_drafts/func_8018A3C8.c` |
|
||||
| 417 | func_8017EA20 | None | | None | near | 13 | residual: 13 mismatch | `.run/backlog_drafts/func_8017EA20.c` |
|
||||
| 418 | func_80161CD0 | 1 | regalloc-order | 20 | near | 14 | param_2 must survive the call in $s0; try plain C first then pin to $16 | `.run/backlog_drafts/func_80161CD0.c` |
|
||||
| 419 | func_801824CC | None | | None | near | 15 | residual: 15 mismatch | `.run/backlog_drafts/func_801824CC.c` |
|
||||
| 420 | func_8013C938 | None | | None | near | 16 | residual: 16 mismatch | `.run/backlog_drafts/func_8013C938.c` |
|
||||
| 421 | func_8017D2F0 | None | | None | near | 16 | residual: 16 mismatch | `.run/backlog_drafts/func_8017D2F0.c` |
|
||||
| 422 | func_80158FA4 | 1 | schedule | 51 | near | 17 | target keeps a DEAD `sra $a1,$v0,16` before `beqz $a1` (sign-extend of func_80159464's | `.run/backlog_drafts/func_80158FA4.c` |
|
||||
| 423 | func_8017D2D0 | None | | None | near | 17 | residual: 17 mismatch | `.run/backlog_drafts/func_8017D2D0.c` |
|
||||
| 424 | func_80182338 | 1 | PINS | 26 | near | 24 | PINS: 24 mismatch | `.run/backlog_drafts/func_80182338.c` |
|
||||
| 425 | func_8018301C | 1 | plumbing | 28 | near | 24 | none — MATCH (straight-line, statement-order; verify with match_one) | `.run/backlog_drafts/func_8018301C.c` |
|
||||
| 426 | func_8016BBE0 | 1 | other | 56 | near | 24 | none — straightforward; expect MATCH (mirror Ghidra-C order, synth_mult ×0x555) | `.run/backlog_drafts/func_8016BBE0.c` |
|
||||
| 427 | func_80182488 | None | | None | near | 24 | residual: 24 mismatch | `.run/backlog_drafts/func_80182488.c` |
|
||||
| 428 | func_8016E95C | 1 | regalloc-order | 36 | near | 25 | none — MATCH (pending byte-gate) | `.run/backlog_drafts/func_8016E95C.c` |
|
||||
| 429 | func_801900F4 | None | | None | near | 27 | residual: 27 mismatch | `.run/backlog_drafts/func_801900F4.c` |
|
||||
| 430 | func_80139BE0 | 1 | loose-typing | 39 | near | 32 | target has redundant andi a1,v0,0xff (uchar zero-extend) gcc proves away; else identical | `.run/backlog_drafts/func_80139BE0.c` |
|
||||
| 431 | func_80148E54 | 1 | regalloc-order | 67 | near | 40 | 67/67 ins, structure+branches+block-order+body-reload all match; residual is pure register-allocation order (permuter-eligible, no register-pins). (1) masked first-angle folds andi->$s1; target keeps it in $a0 then copies addu $s1,$a0 lazily into the beq delay-slot (the s1-copy schedules 1 slot later). (2) the 0x80 const is CSE-held in $a2 across both test+body; target re-materializes 0x80 in $v0 per block (it gets clobbered by `srl v0,v1,8`), which both renames the compare regs ($v0 not $a2) AND fills the body's reload load-delay slot (mine emits a nop there). (3) single-exit ret funnels $v1->$v0 (move v0,v1) where target writes $v0 directly. All three are gcc regalloc/value-prop tie-breaks no C reshape steered (tried: $v0 pin, temp-split, low-mask-reuse compare, memory-clobber-vs-volatile reload) — leave for the permuter. | `.run/backlog_drafts/func_80148E54.c` |
|
||||
| 432 | func_8017B0E4 | 1 | other | 61 | near | 51 | none — MATCH (expected; clean six-call sign-extend-store pattern) | `.run/backlog_drafts/func_8017B0E4.c` |
|
||||
| 433 | func_80166F58 | 1 | schedule | 69 | near | 55 | regs/loop/logic/%lo-fold all match (pinned $s0-$s6); residual is reorg.c delay-slot fill — target replicates `addiu $v0,$s2,1` into the 3 skip-branch delay slots + commits `addu $s2,$v0,0` at merge (my codegen emits in-place `addiu $s2,$s2,1` w/ nop slots, -1 ins); plus prologue short-arg promote-then-move not fusing (`sra $a1;addu $s4,$a1,0` vs my fused `sra $s4,$a1`). Not source-steerable (pins block permuter). | `.run/backlog_drafts/func_80166F58.c` |
|
||||
| 434 | func_80177DA8 | 1 | remat | 63 | near | 58 | gcc narrows `&0xfffffeff` on a 16-bit (lhu) value to `andi 0xfeff` (inline), but target hoisted -0x101 into $t4 (and-reg) in the loop preheader — a gcc-2.7.2 LICM-before-combine pass-ordering quirk unsteerable from C; that 1-ins gap cascades the constant-reg numbering + tail reassoc. Secondary: single-IV loop ptr anchors at +0xA (short, 2 accesses) not +0xC (byte) like target. | `.run/backlog_drafts/func_80177DA8.c` |
|
||||
| 435 | func_80141A60 | 1 | other | 76 | near | 63 | none — MATCH (76 ins, relocation-masked). Body byte-identical; target reserves an 8-byte | `.run/backlog_drafts/func_80141A60.c` |
|
||||
| 436 | func_801457A4 | 1 | other | 79 | near | 74 | MATCH at -O0 (79 ins, reloc-masked, real -O0 flags). BANKING BLOCKER: this -O0 fn lives in the -O2 main ov_SC01_077.c; needs its own §18 -O0 split at 0x801457A4 (existing _o0.c covers 0x8013B568..0x8013C98C only). match_one is -O2 -> WRONG here. | `.run/backlog_drafts/func_801457A4.c` |
|
||||
| 437 | func_8016B6BC | 1 | schedule | 94 | near | 80 | 12-off, all in the last 12 ins (tail). First 82 ins byte-match. Target materializes | `.run/backlog_drafts/func_8016B6BC.c` |
|
||||
| 438 | func_80134A74 | 1 | regalloc-order | 107 | near | 84 | structure + all 8 callee-saved regs (s0..s7) + block layout MATCH; residual is caller-saved-temp | `.run/backlog_drafts/func_80134A74.c` |
|
||||
| 439 | func_8013EE10 | 1 | struct | 94 | near | 86 | none — MATCH (94 ins). array-of-struct %lo-fold (E[]) for the 5-elt loops; | `.run/backlog_drafts/func_8013EE10.c` |
|
||||
| 440 | func_80185E68 | 1 | STRUCT | 132 | near | 131 | STRUCT: 131 mismatch | `.run/backlog_drafts/func_80185E68.c` |
|
||||
| 441 | func_80184A68 | 1 | regalloc-order | 33 | failed | | none — MATCH | `.run/backlog_drafts/func_80184A68.c` |
|
||||
| 442 | func_8015E018 | 1 | loose-typing | 47 | failed | | none — MATCH (signed char forces lbu+sll24/sra24 sign-extend; default char is unsigned in this toolchain) | `.run/backlog_drafts/func_8015E018.c` |
|
||||
| 443 | func_80159A20 | 1 | struct | 58 | failed | | none — MATCH. Key lever: block tail-MERGE (gcc shared `bne ...,$L1` cross-jump) by making the two return-tests STRUCTURALLY DIFFERENT — positive `if(==){goto mask;} return;` per branch (not `if(!=) return;`), so neither tail can merge. Then fix block ORDER by inverting the outer test (`if(d!=1)` makes the ==4/return path the inline fall-through, the d==1/p[2] path the forward `beq`-target block — matching the target layout). | `.run/backlog_drafts/func_80159A20.c` |
|
||||
| 444 | func_8013E958 | 1 | schedule | 63 | failed | | 2 ins swapped — cc1 emits `andi 0x7f; andi 0xff; beqz`(tests doubly-masked) but target wants `andi 0x7f; beqz; andi 0xff`(andi 0xff in the first beqz delay slot). Loop fully byte-matches; struct/ptr fold idioms nailed (D_80115110.q[0x16] hoists base+0x58 disp, Cell D_80115188[i].v folds %lo). func_800D0488 takes (m&0xFF) arg. s16 m -> 2 mism (right ins count); s32 m fixes order but merges andi+arg-move (62 ins, 1 short). | `.run/backlog_drafts/func_8013E958.c` |
|
||||
| 445 | func_8013E83C | 1 | plumbing | 71 | failed | | none — MATCH (scalar global stores + 2 conditional calls; §3-T4 branch-polarity invert on the &0xFF test) | `.run/backlog_drafts/func_8013E83C.c` |
|
||||
| 446 | func_8017B368 | 1 | schedule | 74 | failed | | dead table-path off by 1 ins — target keeps src*16 live in $s0 & computes 2nd arg src16+(base+8) in call1 delay slot; every C form either folds to e+8 (73 ins) or CSEs base into an extra saved reg $s2 (75 ins). All live code (prologue, sltiu dispatch, copy path, 4 struct-copy stores, tail) matches; only the unreachable func_8012F214 path scheduling diverges. | `.run/backlog_drafts/func_8017B368.c` |
|
||||
| 447 | func_80180B64 | 1 | struct | 75 | failed | | none — MATCH (75 ins, relocation-masked) | `.run/backlog_drafts/func_80180B64.c` |
|
||||
| 448 | func_80180F10 | 1 | schedule | 75 | failed | | none — MATCH (aggregate-initializer form schedules const setup after the prologue saves) | `.run/backlog_drafts/func_80180F10.c` |
|
||||
| 449 | func_8016C188 | 1 | schedule | 79 | failed | | none — MATCH (79 ins, match_one). Levers: invert if to if(iVar1!=0){big}else{small} | `.run/backlog_drafts/func_8016C188.c` |
|
||||
| 450 | func_80164930 | 1 | regalloc-order | 81 | failed | | none — MATCH (81 ins, relocation-masked) | `.run/backlog_drafts/func_80164930.c` |
|
||||
| 451 | func_801418F8 | 1 | loose-typing | 90 | failed | | none — MATCH (90 ins). Keys: D_8011511A is `volatile u16` (store-2-then-read must NOT const-fold), read ONCE into a `u16` local t (an `unsigned int` local adds a stray andi 0xffff; reusing t feeds the single lhu to both sltiu and t-3), and the lone D_80115158 store after the if yields the delay-slot-fill-from-target dup of `addiu 0x106`. | `.run/backlog_drafts/func_801418F8.c` |
|
||||
| 452 | func_801789AC | 1 | struct | 91 | failed | | none — MATCH (91 ins, relocation-masked) | `.run/backlog_drafts/func_801789AC.c` |
|
||||
| 453 | func_80183DE0 | 1 | regalloc-order | 91 | failed | | testing if(!=1) layout + counter-before-pointer init order | `.run/backlog_drafts/func_80183DE0.c` |
|
||||
| 454 | func_80185428 | 1 | struct | 94 | failed | | none — MATCH (94 ins, relocation-masked) | `.run/backlog_drafts/func_80185428.c` |
|
||||
| 455 | func_801506A4 | 1 | loose-typing | 95 | failed | | none — MATCH (95 ins). switch var must be int not u16 (u16 adds andi 0xffff promotion mask) | `.run/backlog_drafts/func_801506A4.c` |
|
||||
| 456 | func_8016BFD0 | 1 | struct | 95 | failed | | none — MATCH (95 ins). memcpy(d,s,4) -> lwl/lwr/swl/swr; MATRIX work buf as s32[16] (0x40, fills 0x10-0x4f, t[] = buf[5..7]); two SVECTOR locals at 0x50/0x58; natural saved-reg order s0=param_5/s1=param_4/s2=iVar5 | `.run/backlog_drafts/func_8016BFD0.c` |
|
||||
| 457 | func_801596F0 | 1 | struct | 97 | failed | | none — MATCH (97 ins). Loop 1 = struct-ptr for-loop (E38, flag@+4) -> -4 guard / +4 test via gcc biv-elim. Loop 2 needed an EXPLICIT if-guard + do-while with the FIELD pointer as the loop var (so the giv init emits FIRST in the preheader, before the &D invariant block), a non-volatile re-tie barrier on d=&D_800AFAE8 (keeps &D BARE so +4/+0x88 add off it = +1 ins vs the folded %lo, matching target), an explicit u32 mask hoisted first (fills the guard's delay slot), and a separate range check fp<d+4 // fp>=d+0x88. | `.run/backlog_drafts/func_801596F0.c` |
|
||||
| 458 | func_8017B490 | 1 | schedule | 97 | failed | | none — MATCH (97 ins). Keys: (1) inverted if so the SV4 block-copy else is fallthrough and block A is bnez-far (cond = (u32)&D_801DA73C >= 0xB, a relocated-symbol compare gcc can't fold); (2) SV4{s16 a,b,c,d} align-2 8-byte copy -> lwl/lwr/swl/swr, locals at sp+0x10/0x18; (3) the DEAD block-A index = (s32)&D_801DA73C into D_8018A45C[] (WAVE16=two SV4) needs BOTH source addrs (&[idx].v0,&[idx].v1) in EXPLICIT TEMPS before call1 so base (&D_8018A45C) dies pre-call -> temp $v0 (not callee-saved), forcing the natural 2-reg alloc idx=$s0/param_1=$s1 + src2 into call1's delay slot; (4) tail: D_801DA794/D_801DA78C are SV4, re-read .a/.b/.c via lh sign-extended to s32 stores. | `.run/backlog_drafts/func_8017B490.c` |
|
||||
| 459 | func_80182C9C | 1 | schedule | 101 | failed | | none — MATCH (101 ins). Inner-switch break-to-shared-tail must be written as | `.run/backlog_drafts/func_80182C9C.c` |
|
||||
| 460 | func_80183FB8 | 1 | loose-typing | 101 | failed | | none — MATCH (relocation-masked match_one, 101/101 ins) | `.run/backlog_drafts/func_80183FB8.c` |
|
||||
| 461 | func_8013EF88 | 1 | struct | 108 | failed | | none — MATCH (108 ins). Keys: (1) §18 array-of-struct E4{s32 v} for | `.run/backlog_drafts/func_8013EF88.c` |
|
||||
| 462 | func_8013D13C | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8013D13C.c` |
|
||||
| 463 | func_801563EC | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_801563EC.c` |
|
||||
| 464 | func_8017A0C4 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8017A0C4.c` |
|
||||
| 465 | func_8017A094 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8017A094.c` |
|
||||
| 466 | func_801288B0 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_801288B0.c` |
|
||||
| 467 | func_80131E00 | None | | None | failed | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_80131E00.c` |
|
||||
|
||||
@@ -200,6 +200,46 @@ reach-134 ×134 payoff routes through **corpus-v3** (better leaf drafts for the
|
||||
**dedup-collapse** (for stuck-local inline matches) — NOT the permuter, which the bytes show isn't the
|
||||
closer for this fuel.
|
||||
|
||||
### Corpus-v3 + local GPU serving + the prompt fix — 2026-06-30 (8-hour autonomous run)
|
||||
|
||||
LM Studio was ejected (Drew freed the GPU), so serving moved in-repo: **`tools/serve_local.py`**
|
||||
serves base+LoRA via Unsloth (`.venv-train`, cu128) as an OpenAI endpoint that `api_draft`/`lora_grind`
|
||||
hit unchanged. (The prebuilt `llama-cpp-python` CUDA wheels SIGILL on this no-AVX-512 CPU; the
|
||||
Unsloth/torch path is reliable and needs no build — `serve_local.py` loads in ~6s.)
|
||||
|
||||
**The prompt fix (cheap, no retrain).** The v2 corpus overfit an empty `void f(void){}` leaf pattern —
|
||||
it drafted trivial `return 1` / setter functions as *empty*. One clause added to the LEAN prompt
|
||||
("translate EVERY instruction, never an empty body; a `jr`+`addiu` delay slot is `return N`, a `sw/sh`
|
||||
is a store") took the small-leaf band **0/3 → 2/3** in a prompt test, and banked 3 on a fresh
|
||||
ov_SC01_001 batch end-to-end. Baked into `api_draft.LEAN_SYS` + `format_finetune.SYS` (kept in sync).
|
||||
|
||||
**Corpus-v3 (the root fix).** `export_pairs` now also mines the **1623 `DEFINE_func` macro bodies** in
|
||||
`engine_core.h` — the shared setters/return-const/dispatchers `extract_defs` never saw (96.6% of v2 was
|
||||
overlay-unique inline defs → the source of the empty-leaf overfit). `format_finetune` inlines
|
||||
`engine_types.h` structs in the compile-filter so struct-using bodies are KEPT, not dropped. Corpus
|
||||
**1312 → 2891** (1312 inline + 1579 macros); trainable **2534 train + 291 test** (2.5× v2's 1111),
|
||||
97.8% compile.
|
||||
|
||||
**v3 trained + eval'd.** Qwen2.5-Coder-7B QLoRA, 3 epochs, loss **1.275 → 0.085** (~2h on the 3080 Ti
|
||||
at batch 1 / maxlen 2048, VRAM-tight). Held-out gate-true eval (unseen functions): **MATCH 23/40
|
||||
(57.5%)** — strong and generalizing, well above v2's mixed-set rate and the stock-local ~0 floor. So v3
|
||||
is the better model (more+better data + the baked-in prompt) and drove the production batch.
|
||||
|
||||
**Production harvest (v3, ~3h, broad rotation over ~25 binaries, propagate-every-3, $0 LLM cost):**
|
||||
the v3 batch banked **~352 functions** (inline, byte-gated) and the propagate sweeps lifted **+45 new
|
||||
shared groups** (1633→1678) ×reach, taking the fleet **63.67% → 63.82%** (**+502 byte-identical
|
||||
functions**), **136/136 byte-clean** throughout, across **25 auto-committed batches**. v3 repeatedly
|
||||
banked the previously-impossible **empty-leaf/setter class** (`func_8012E27C` = `return 1`,
|
||||
`func_8012AD64`/`8012BF4C` = `sw`/`sh` setters — all drafted *empty* by v2). The modest headline %
|
||||
is the expected T9 reality (small open stubs are mostly reach-1 ×1; and the shared setters hit the
|
||||
§19/20 propagation cap, so they re-bank inline per binary rather than collapse once ×134). **The
|
||||
validated result is the pipeline itself:** a free, local, fine-tuned model now harvests the
|
||||
small/setter bulk for $0, including the exact class the whole prior apparatus could not draft —
|
||||
gated identically (G3/P9), with the data flywheel (banks → corpus → retrain) and propagation
|
||||
(match-once → ×reach) intact. Next levers (unchanged, now higher-yield with v3): **shared/reach≥2
|
||||
targeting** (so the setter banks propagate ×134 instead of re-banking inline) + the **dedup-collapse**
|
||||
of the per-binary inline setters; corpus-v4 = struct-giant types; raise `--max-nins` as the band lifts.
|
||||
|
||||
## Open questions / notes
|
||||
|
||||
- **Corpus quality > size.** ~1,700 verified pairs is plenty for LoRA; dedup near-identical reach
|
||||
|
||||
+137
-137
@@ -3,148 +3,148 @@
|
||||
# source-derived (committed src/*.c + config/dedup.us.yaml). Live byte gate: `make check-all`;
|
||||
# cross-binary collapsible-byte leverage: docs/duplicates.cross.md.
|
||||
|
||||
FLEET REAL substantive : 217975 (of which dedup-shared 217219 via 1634 groups / 217270 instances)
|
||||
FLEET REAL substantive : 218512 (of which dedup-shared 217439 via 1678 groups / 217490 instances)
|
||||
FLEET LINKED PsyQ objs : 959
|
||||
FLEET byte-identical : 219622 / 344941 = 63.67% (REAL+LINKED+empties)
|
||||
FLEET byte-identical : 220127 / 344941 = 63.82% (REAL+LINKED+empties)
|
||||
FLEET NON_MATCHING : 7 (0 in any default build — G4)
|
||||
FLEET INCLUDE_ASM stubs : 125312
|
||||
FLEET INCLUDE_ASM stubs : 124807
|
||||
FLEET matchable : 344941
|
||||
|
||||
| binary | REAL | shared | LINKED | byte-ident | matchable | byte-ident % |
|
||||
|---|---:|---:|---:|---:|---:|---:|
|
||||
| main | 54 | 2 | 959 | 1055 | 2096 | 50.3% |
|
||||
| resident | 123 | 0 | 0 | 125 | 146 | 85.6% |
|
||||
| ov_SC01_000 | 1635 | 1626 | 0 | 1635 | 2410 | 67.8% |
|
||||
| ov_SC01_001 | 1626 | 1626 | 0 | 1628 | 2474 | 65.8% |
|
||||
| ov_SC01_004 | 1617 | 1617 | 0 | 1618 | 2423 | 66.8% |
|
||||
| ov_SC01_005 | 1624 | 1624 | 0 | 1631 | 2511 | 65.0% |
|
||||
| ov_SC01_006 | 1624 | 1624 | 0 | 1631 | 2511 | 65.0% |
|
||||
| ov_SC01_008 | 1617 | 1617 | 0 | 1619 | 2435 | 66.5% |
|
||||
| ov_SC01_009 | 1617 | 1617 | 0 | 1618 | 2517 | 64.3% |
|
||||
| ov_SC01_074 | 1617 | 1617 | 0 | 1619 | 2434 | 66.5% |
|
||||
| ov_SC01_077 | 2150 | 1578 | 0 | 2152 | 2586 | 83.2% |
|
||||
| ov_SC01_080 | 1621 | 1621 | 0 | 1621 | 2522 | 64.3% |
|
||||
| ov_SC01_084 | 1621 | 1621 | 0 | 1626 | 2588 | 62.8% |
|
||||
| ov_SC02_000 | 1625 | 1625 | 0 | 1632 | 2691 | 60.6% |
|
||||
| ov_SC02_003 | 1625 | 1625 | 0 | 1632 | 2691 | 60.6% |
|
||||
| ov_SC02_004 | 1621 | 1621 | 0 | 1621 | 2410 | 67.3% |
|
||||
| ov_SC02_005 | 1617 | 1617 | 0 | 1627 | 2937 | 55.4% |
|
||||
| ov_SC02_011 | 1623 | 1623 | 0 | 1635 | 2903 | 56.3% |
|
||||
| ov_SC02_015 | 1623 | 1623 | 0 | 1623 | 2423 | 67.0% |
|
||||
| ov_SC02_016 | 1623 | 1623 | 0 | 1626 | 2555 | 63.6% |
|
||||
| ov_SC02_017 | 1623 | 1623 | 0 | 1631 | 2742 | 59.5% |
|
||||
| ov_SC02_021 | 1623 | 1623 | 0 | 1623 | 2446 | 66.4% |
|
||||
| ov_SC02_026 | 1621 | 1621 | 0 | 1627 | 2582 | 63.0% |
|
||||
| ov_SC02_027 | 1621 | 1621 | 0 | 1630 | 2702 | 60.3% |
|
||||
| ov_SC02_028 | 1621 | 1621 | 0 | 1631 | 2711 | 60.2% |
|
||||
| ov_SC02_031 | 1621 | 1621 | 0 | 1627 | 2572 | 63.3% |
|
||||
| ov_SC02_035 | 1621 | 1621 | 0 | 1624 | 2530 | 64.2% |
|
||||
| ov_SC02_039 | 1621 | 1621 | 0 | 1621 | 2425 | 66.8% |
|
||||
| ov_SC02_041 | 1621 | 1621 | 0 | 1624 | 2570 | 63.2% |
|
||||
| ov_SC03_001 | 1621 | 1621 | 0 | 1639 | 2877 | 57.0% |
|
||||
| ov_SC03_002 | 1625 | 1625 | 0 | 1641 | 2639 | 62.2% |
|
||||
| ov_SC03_003 | 1621 | 1621 | 0 | 1622 | 2432 | 66.7% |
|
||||
| ov_SC03_006 | 1627 | 1627 | 0 | 1636 | 2775 | 59.0% |
|
||||
| ov_SC03_007 | 1621 | 1621 | 0 | 1625 | 2633 | 61.7% |
|
||||
| ov_SC03_010 | 1621 | 1621 | 0 | 1621 | 2479 | 65.4% |
|
||||
| ov_SC03_011 | 1621 | 1621 | 0 | 1627 | 2537 | 64.1% |
|
||||
| ov_SC03_012 | 1621 | 1621 | 0 | 1622 | 2415 | 67.2% |
|
||||
| ov_SC03_013 | 1621 | 1621 | 0 | 1621 | 2502 | 64.8% |
|
||||
| ov_SC03_014 | 1621 | 1621 | 0 | 1631 | 2695 | 60.5% |
|
||||
| ov_SC03_015 | 1621 | 1621 | 0 | 1631 | 2695 | 60.5% |
|
||||
| ov_SC03_023 | 1621 | 1621 | 0 | 1622 | 2444 | 66.4% |
|
||||
| ov_SC03_024 | 1621 | 1621 | 0 | 1633 | 2651 | 61.6% |
|
||||
| ov_SC03_028 | 1621 | 1621 | 0 | 1625 | 2674 | 60.8% |
|
||||
| ov_SC03_029 | 1623 | 1623 | 0 | 1633 | 2654 | 61.5% |
|
||||
| ov_SC03_030 | 1625 | 1625 | 0 | 1627 | 2505 | 65.0% |
|
||||
| ov_SC03_031 | 1621 | 1621 | 0 | 1625 | 2524 | 64.4% |
|
||||
| ov_SC03_089 | 1621 | 1621 | 0 | 1628 | 2591 | 62.8% |
|
||||
| ov_SC03_090 | 1621 | 1621 | 0 | 1629 | 2635 | 61.8% |
|
||||
| ov_SC03_091 | 1621 | 1621 | 0 | 1629 | 2650 | 61.5% |
|
||||
| ov_SC03_092 | 1621 | 1621 | 0 | 1633 | 2597 | 62.9% |
|
||||
| ov_SC03_093 | 1621 | 1621 | 0 | 1625 | 2573 | 63.2% |
|
||||
| ov_SC03_094 | 1621 | 1621 | 0 | 1627 | 2586 | 62.9% |
|
||||
| ov_SC03_095 | 1621 | 1621 | 0 | 1624 | 2484 | 65.4% |
|
||||
| ov_SC03_096 | 1621 | 1621 | 0 | 1624 | 2475 | 65.6% |
|
||||
| ov_SC03_097 | 1621 | 1621 | 0 | 1628 | 2613 | 62.3% |
|
||||
| ov_SC03_098 | 1621 | 1621 | 0 | 1624 | 2551 | 63.7% |
|
||||
| ov_SC03_099 | 1621 | 1621 | 0 | 1624 | 2514 | 64.6% |
|
||||
| ov_SC03_100 | 1621 | 1621 | 0 | 1625 | 2549 | 63.8% |
|
||||
| ov_SC03_101 | 1621 | 1621 | 0 | 1625 | 2538 | 64.0% |
|
||||
| ov_SC03_102 | 1621 | 1621 | 0 | 1624 | 2502 | 64.9% |
|
||||
| ov_SC03_103 | 1623 | 1623 | 0 | 1626 | 2520 | 64.5% |
|
||||
| ov_SC03_104 | 1621 | 1621 | 0 | 1628 | 2626 | 62.0% |
|
||||
| ov_SC03_105 | 1621 | 1621 | 0 | 1628 | 2607 | 62.4% |
|
||||
| ov_SC03_108 | 1621 | 1621 | 0 | 1621 | 2453 | 66.1% |
|
||||
| ov_SC03_109 | 1621 | 1621 | 0 | 1623 | 2433 | 66.7% |
|
||||
| ov_SC03_110 | 1621 | 1621 | 0 | 1621 | 2478 | 65.4% |
|
||||
| ov_SC03_111 | 1621 | 1621 | 0 | 1624 | 2520 | 64.4% |
|
||||
| ov_SC03_112 | 1623 | 1623 | 0 | 1625 | 2536 | 64.1% |
|
||||
| ov_SC03_113 | 1623 | 1623 | 0 | 1626 | 2478 | 65.6% |
|
||||
| ov_SC03_114 | 1621 | 1621 | 0 | 1623 | 2424 | 67.0% |
|
||||
| ov_SC03_115 | 1621 | 1621 | 0 | 1623 | 2482 | 65.4% |
|
||||
| ov_SC03_116 | 1621 | 1621 | 0 | 1624 | 2448 | 66.3% |
|
||||
| ov_SC03_117 | 1621 | 1621 | 0 | 1627 | 2567 | 63.4% |
|
||||
| ov_SC03_118 | 1621 | 1621 | 0 | 1634 | 2695 | 60.6% |
|
||||
| ov_SC03_119 | 1621 | 1621 | 0 | 1634 | 2695 | 60.6% |
|
||||
| ov_SC03_121 | 1621 | 1621 | 0 | 1624 | 2469 | 65.8% |
|
||||
| ov_SC03_124 | 1617 | 1617 | 0 | 1637 | 2751 | 59.5% |
|
||||
| ov_SC03_125 | 1621 | 1621 | 0 | 1633 | 2598 | 62.9% |
|
||||
| ov_SC03_126 | 1621 | 1621 | 0 | 1622 | 2432 | 66.7% |
|
||||
| ov_SC04_000 | 1625 | 1625 | 0 | 1634 | 2554 | 64.0% |
|
||||
| ov_SC04_002 | 1621 | 1621 | 0 | 1625 | 2646 | 61.4% |
|
||||
| ov_SC04_003 | 1621 | 1621 | 0 | 1625 | 2512 | 64.7% |
|
||||
| ov_SC04_004 | 1621 | 1621 | 0 | 1623 | 2568 | 63.2% |
|
||||
| ov_SC04_005 | 1621 | 1621 | 0 | 1627 | 2622 | 62.1% |
|
||||
| ov_SC04_006 | 1621 | 1621 | 0 | 1623 | 2463 | 65.9% |
|
||||
| ov_SC04_007 | 1621 | 1621 | 0 | 1625 | 2579 | 63.0% |
|
||||
| ov_SC04_008 | 1621 | 1621 | 0 | 1621 | 2424 | 66.9% |
|
||||
| ov_SC04_009 | 1621 | 1621 | 0 | 1624 | 2450 | 66.3% |
|
||||
| ov_SC04_010 | 1621 | 1621 | 0 | 1622 | 2428 | 66.8% |
|
||||
| ov_SC04_011 | 1621 | 1621 | 0 | 1627 | 2813 | 57.8% |
|
||||
| ov_SC04_012 | 1621 | 1621 | 0 | 1622 | 2429 | 66.8% |
|
||||
| ov_SC04_015 | 1621 | 1621 | 0 | 1633 | 2621 | 62.3% |
|
||||
| ov_SC04_016 | 1621 | 1621 | 0 | 1623 | 2449 | 66.3% |
|
||||
| ov_SC04_018 | 1621 | 1621 | 0 | 1634 | 2865 | 57.0% |
|
||||
| ov_SC04_019 | 1621 | 1621 | 0 | 1634 | 2865 | 57.0% |
|
||||
| ov_SC04_020 | 1621 | 1621 | 0 | 1633 | 2577 | 63.4% |
|
||||
| ov_SC04_021 | 1621 | 1621 | 0 | 1622 | 2432 | 66.7% |
|
||||
| ov_SC05_000 | 1625 | 1625 | 0 | 1628 | 2429 | 67.0% |
|
||||
| ov_SC05_001 | 1621 | 1621 | 0 | 1626 | 2584 | 62.9% |
|
||||
| ov_SC05_002 | 1621 | 1621 | 0 | 1624 | 2452 | 66.2% |
|
||||
| ov_SC05_003 | 1621 | 1621 | 0 | 1622 | 2491 | 65.1% |
|
||||
| ov_SC05_004 | 1621 | 1621 | 0 | 1623 | 2474 | 65.6% |
|
||||
| ov_SC05_005 | 1621 | 1621 | 0 | 1622 | 2501 | 64.9% |
|
||||
| ov_SC05_006 | 1621 | 1621 | 0 | 1621 | 2439 | 66.5% |
|
||||
| ov_SC05_007 | 1621 | 1621 | 0 | 1626 | 2492 | 65.2% |
|
||||
| ov_SC05_008 | 1621 | 1621 | 0 | 1623 | 2553 | 63.6% |
|
||||
| ov_SC05_009 | 1621 | 1621 | 0 | 1625 | 2447 | 66.4% |
|
||||
| ov_SC05_010 | 1621 | 1621 | 0 | 1625 | 2598 | 62.5% |
|
||||
| ov_SC05_011 | 1621 | 1621 | 0 | 1622 | 2418 | 67.1% |
|
||||
| ov_SC05_017 | 1617 | 1617 | 0 | 1629 | 2852 | 57.1% |
|
||||
| ov_SC05_018 | 1621 | 1621 | 0 | 1634 | 2683 | 60.9% |
|
||||
| ov_SC05_019 | 1621 | 1621 | 0 | 1622 | 2432 | 66.7% |
|
||||
| ov_SC06_000 | 1625 | 1625 | 0 | 1633 | 2699 | 60.5% |
|
||||
| ov_SC06_006 | 1621 | 1621 | 0 | 1622 | 2521 | 64.3% |
|
||||
| ov_SC06_008 | 1623 | 1623 | 0 | 1629 | 2551 | 63.9% |
|
||||
| ov_SC06_010 | 1621 | 1621 | 0 | 1626 | 2527 | 64.3% |
|
||||
| ov_SC06_011 | 1621 | 1621 | 0 | 1625 | 2478 | 65.6% |
|
||||
| ov_SC06_013 | 1621 | 1621 | 0 | 1622 | 2434 | 66.6% |
|
||||
| ov_SC06_014 | 1621 | 1621 | 0 | 1623 | 2462 | 65.9% |
|
||||
| ov_SC06_015 | 1621 | 1621 | 0 | 1621 | 2430 | 66.7% |
|
||||
| ov_SC06_016 | 1621 | 1621 | 0 | 1623 | 2559 | 63.4% |
|
||||
| ov_SC06_018 | 1621 | 1621 | 0 | 1629 | 2675 | 60.9% |
|
||||
| ov_SC06_020 | 1621 | 1621 | 0 | 1622 | 2528 | 64.2% |
|
||||
| ov_SC06_022 | 1621 | 1621 | 0 | 1629 | 2652 | 61.4% |
|
||||
| ov_SC06_024 | 1621 | 1621 | 0 | 1627 | 2677 | 60.8% |
|
||||
| ov_SC06_025 | 1621 | 1621 | 0 | 1626 | 2582 | 63.0% |
|
||||
| ov_SC06_027 | 1621 | 1621 | 0 | 1622 | 2417 | 67.1% |
|
||||
| ov_SC06_029 | 1621 | 1621 | 0 | 1633 | 2672 | 61.1% |
|
||||
| ov_SC06_030 | 1621 | 1621 | 0 | 1621 | 2466 | 65.7% |
|
||||
| ov_SC06_032 | 1621 | 1621 | 0 | 1628 | 2668 | 61.0% |
|
||||
| ov_SC06_033 | 1621 | 1621 | 0 | 1628 | 2641 | 61.6% |
|
||||
| ov_SC07_000 | 1625 | 1625 | 0 | 1627 | 2529 | 64.3% |
|
||||
| ov_SC07_001 | 1621 | 1621 | 0 | 1623 | 2464 | 65.9% |
|
||||
| ov_SC07_002 | 1621 | 1621 | 0 | 1625 | 2589 | 62.8% |
|
||||
| ov_SC07_008 | 1621 | 1621 | 0 | 1621 | 2395 | 67.7% |
|
||||
| ov_SC07_009 | 1621 | 1621 | 0 | 1623 | 2439 | 66.5% |
|
||||
| ov_SC01_000 | 1639 | 1627 | 0 | 1639 | 2410 | 68.0% |
|
||||
| ov_SC01_001 | 1637 | 1627 | 0 | 1639 | 2474 | 66.2% |
|
||||
| ov_SC01_004 | 1626 | 1618 | 0 | 1627 | 2423 | 67.1% |
|
||||
| ov_SC01_005 | 1647 | 1640 | 0 | 1647 | 2511 | 65.6% |
|
||||
| ov_SC01_006 | 1651 | 1640 | 0 | 1651 | 2511 | 65.8% |
|
||||
| ov_SC01_008 | 1628 | 1618 | 0 | 1630 | 2435 | 66.9% |
|
||||
| ov_SC01_009 | 1635 | 1619 | 0 | 1636 | 2517 | 65.0% |
|
||||
| ov_SC01_074 | 1628 | 1619 | 0 | 1630 | 2434 | 67.0% |
|
||||
| ov_SC01_077 | 2151 | 1579 | 0 | 2153 | 2586 | 83.3% |
|
||||
| ov_SC01_080 | 1637 | 1622 | 0 | 1637 | 2522 | 64.9% |
|
||||
| ov_SC01_084 | 1641 | 1622 | 0 | 1646 | 2588 | 63.6% |
|
||||
| ov_SC02_000 | 1659 | 1651 | 0 | 1659 | 2691 | 61.6% |
|
||||
| ov_SC02_003 | 1662 | 1651 | 0 | 1662 | 2691 | 61.8% |
|
||||
| ov_SC02_004 | 1635 | 1622 | 0 | 1635 | 2410 | 67.8% |
|
||||
| ov_SC02_005 | 1637 | 1618 | 0 | 1647 | 2937 | 56.1% |
|
||||
| ov_SC02_011 | 1640 | 1625 | 0 | 1651 | 2903 | 56.9% |
|
||||
| ov_SC02_015 | 1635 | 1624 | 0 | 1635 | 2423 | 67.5% |
|
||||
| ov_SC02_016 | 1638 | 1624 | 0 | 1641 | 2555 | 64.2% |
|
||||
| ov_SC02_017 | 1642 | 1624 | 0 | 1650 | 2742 | 60.2% |
|
||||
| ov_SC02_021 | 1638 | 1624 | 0 | 1638 | 2446 | 67.0% |
|
||||
| ov_SC02_026 | 1635 | 1622 | 0 | 1641 | 2582 | 63.6% |
|
||||
| ov_SC02_027 | 1640 | 1622 | 0 | 1649 | 2702 | 61.0% |
|
||||
| ov_SC02_028 | 1645 | 1622 | 0 | 1655 | 2711 | 61.0% |
|
||||
| ov_SC02_031 | 1641 | 1623 | 0 | 1646 | 2572 | 64.0% |
|
||||
| ov_SC02_035 | 1636 | 1622 | 0 | 1639 | 2530 | 64.8% |
|
||||
| ov_SC02_039 | 1622 | 1622 | 0 | 1622 | 2425 | 66.9% |
|
||||
| ov_SC02_041 | 1622 | 1622 | 0 | 1625 | 2570 | 63.2% |
|
||||
| ov_SC03_001 | 1622 | 1622 | 0 | 1640 | 2877 | 57.0% |
|
||||
| ov_SC03_002 | 1627 | 1627 | 0 | 1642 | 2639 | 62.2% |
|
||||
| ov_SC03_003 | 1622 | 1622 | 0 | 1623 | 2432 | 66.7% |
|
||||
| ov_SC03_006 | 1628 | 1628 | 0 | 1637 | 2775 | 59.0% |
|
||||
| ov_SC03_007 | 1622 | 1622 | 0 | 1626 | 2633 | 61.8% |
|
||||
| ov_SC03_010 | 1622 | 1622 | 0 | 1622 | 2479 | 65.4% |
|
||||
| ov_SC03_011 | 1622 | 1622 | 0 | 1628 | 2537 | 64.2% |
|
||||
| ov_SC03_012 | 1622 | 1622 | 0 | 1623 | 2415 | 67.2% |
|
||||
| ov_SC03_013 | 1622 | 1622 | 0 | 1622 | 2502 | 64.8% |
|
||||
| ov_SC03_014 | 1622 | 1622 | 0 | 1632 | 2695 | 60.6% |
|
||||
| ov_SC03_015 | 1622 | 1622 | 0 | 1632 | 2695 | 60.6% |
|
||||
| ov_SC03_023 | 1622 | 1622 | 0 | 1623 | 2444 | 66.4% |
|
||||
| ov_SC03_024 | 1622 | 1622 | 0 | 1634 | 2651 | 61.6% |
|
||||
| ov_SC03_028 | 1622 | 1622 | 0 | 1626 | 2674 | 60.8% |
|
||||
| ov_SC03_029 | 1624 | 1624 | 0 | 1634 | 2654 | 61.6% |
|
||||
| ov_SC03_030 | 1626 | 1626 | 0 | 1628 | 2505 | 65.0% |
|
||||
| ov_SC03_031 | 1622 | 1622 | 0 | 1626 | 2524 | 64.4% |
|
||||
| ov_SC03_089 | 1622 | 1622 | 0 | 1629 | 2591 | 62.9% |
|
||||
| ov_SC03_090 | 1622 | 1622 | 0 | 1630 | 2635 | 61.9% |
|
||||
| ov_SC03_091 | 1622 | 1622 | 0 | 1630 | 2650 | 61.5% |
|
||||
| ov_SC03_092 | 1622 | 1622 | 0 | 1634 | 2597 | 62.9% |
|
||||
| ov_SC03_093 | 1622 | 1622 | 0 | 1626 | 2573 | 63.2% |
|
||||
| ov_SC03_094 | 1622 | 1622 | 0 | 1628 | 2586 | 63.0% |
|
||||
| ov_SC03_095 | 1622 | 1622 | 0 | 1625 | 2484 | 65.4% |
|
||||
| ov_SC03_096 | 1622 | 1622 | 0 | 1625 | 2475 | 65.7% |
|
||||
| ov_SC03_097 | 1622 | 1622 | 0 | 1629 | 2613 | 62.3% |
|
||||
| ov_SC03_098 | 1622 | 1622 | 0 | 1625 | 2551 | 63.7% |
|
||||
| ov_SC03_099 | 1622 | 1622 | 0 | 1625 | 2514 | 64.6% |
|
||||
| ov_SC03_100 | 1622 | 1622 | 0 | 1626 | 2549 | 63.8% |
|
||||
| ov_SC03_101 | 1622 | 1622 | 0 | 1626 | 2538 | 64.1% |
|
||||
| ov_SC03_102 | 1622 | 1622 | 0 | 1625 | 2502 | 64.9% |
|
||||
| ov_SC03_103 | 1624 | 1624 | 0 | 1627 | 2520 | 64.6% |
|
||||
| ov_SC03_104 | 1622 | 1622 | 0 | 1629 | 2626 | 62.0% |
|
||||
| ov_SC03_105 | 1622 | 1622 | 0 | 1629 | 2607 | 62.5% |
|
||||
| ov_SC03_108 | 1622 | 1622 | 0 | 1622 | 2453 | 66.1% |
|
||||
| ov_SC03_109 | 1622 | 1622 | 0 | 1624 | 2433 | 66.7% |
|
||||
| ov_SC03_110 | 1622 | 1622 | 0 | 1622 | 2478 | 65.5% |
|
||||
| ov_SC03_111 | 1622 | 1622 | 0 | 1625 | 2520 | 64.5% |
|
||||
| ov_SC03_112 | 1624 | 1624 | 0 | 1626 | 2536 | 64.1% |
|
||||
| ov_SC03_113 | 1624 | 1624 | 0 | 1627 | 2478 | 65.7% |
|
||||
| ov_SC03_114 | 1622 | 1622 | 0 | 1624 | 2424 | 67.0% |
|
||||
| ov_SC03_115 | 1622 | 1622 | 0 | 1624 | 2482 | 65.4% |
|
||||
| ov_SC03_116 | 1622 | 1622 | 0 | 1625 | 2448 | 66.4% |
|
||||
| ov_SC03_117 | 1622 | 1622 | 0 | 1628 | 2567 | 63.4% |
|
||||
| ov_SC03_118 | 1622 | 1622 | 0 | 1635 | 2695 | 60.7% |
|
||||
| ov_SC03_119 | 1622 | 1622 | 0 | 1635 | 2695 | 60.7% |
|
||||
| ov_SC03_121 | 1622 | 1622 | 0 | 1625 | 2469 | 65.8% |
|
||||
| ov_SC03_124 | 1618 | 1618 | 0 | 1638 | 2751 | 59.5% |
|
||||
| ov_SC03_125 | 1622 | 1622 | 0 | 1634 | 2598 | 62.9% |
|
||||
| ov_SC03_126 | 1622 | 1622 | 0 | 1623 | 2432 | 66.7% |
|
||||
| ov_SC04_000 | 1626 | 1626 | 0 | 1635 | 2554 | 64.0% |
|
||||
| ov_SC04_002 | 1622 | 1622 | 0 | 1626 | 2646 | 61.5% |
|
||||
| ov_SC04_003 | 1622 | 1622 | 0 | 1626 | 2512 | 64.7% |
|
||||
| ov_SC04_004 | 1622 | 1622 | 0 | 1624 | 2568 | 63.2% |
|
||||
| ov_SC04_005 | 1622 | 1622 | 0 | 1628 | 2622 | 62.1% |
|
||||
| ov_SC04_006 | 1622 | 1622 | 0 | 1624 | 2463 | 65.9% |
|
||||
| ov_SC04_007 | 1622 | 1622 | 0 | 1626 | 2579 | 63.0% |
|
||||
| ov_SC04_008 | 1622 | 1622 | 0 | 1622 | 2424 | 66.9% |
|
||||
| ov_SC04_009 | 1622 | 1622 | 0 | 1625 | 2450 | 66.3% |
|
||||
| ov_SC04_010 | 1622 | 1622 | 0 | 1623 | 2428 | 66.8% |
|
||||
| ov_SC04_011 | 1622 | 1622 | 0 | 1628 | 2813 | 57.9% |
|
||||
| ov_SC04_012 | 1622 | 1622 | 0 | 1623 | 2429 | 66.8% |
|
||||
| ov_SC04_015 | 1623 | 1623 | 0 | 1634 | 2621 | 62.3% |
|
||||
| ov_SC04_016 | 1622 | 1622 | 0 | 1624 | 2449 | 66.3% |
|
||||
| ov_SC04_018 | 1622 | 1622 | 0 | 1635 | 2865 | 57.1% |
|
||||
| ov_SC04_019 | 1622 | 1622 | 0 | 1635 | 2865 | 57.1% |
|
||||
| ov_SC04_020 | 1622 | 1622 | 0 | 1634 | 2577 | 63.4% |
|
||||
| ov_SC04_021 | 1622 | 1622 | 0 | 1623 | 2432 | 66.7% |
|
||||
| ov_SC05_000 | 1626 | 1626 | 0 | 1629 | 2429 | 67.1% |
|
||||
| ov_SC05_001 | 1622 | 1622 | 0 | 1627 | 2584 | 63.0% |
|
||||
| ov_SC05_002 | 1622 | 1622 | 0 | 1625 | 2452 | 66.3% |
|
||||
| ov_SC05_003 | 1622 | 1622 | 0 | 1623 | 2491 | 65.2% |
|
||||
| ov_SC05_004 | 1622 | 1622 | 0 | 1624 | 2474 | 65.6% |
|
||||
| ov_SC05_005 | 1622 | 1622 | 0 | 1623 | 2501 | 64.9% |
|
||||
| ov_SC05_006 | 1622 | 1622 | 0 | 1622 | 2439 | 66.5% |
|
||||
| ov_SC05_007 | 1622 | 1622 | 0 | 1627 | 2492 | 65.3% |
|
||||
| ov_SC05_008 | 1622 | 1622 | 0 | 1624 | 2553 | 63.6% |
|
||||
| ov_SC05_009 | 1622 | 1622 | 0 | 1626 | 2447 | 66.4% |
|
||||
| ov_SC05_010 | 1622 | 1622 | 0 | 1626 | 2598 | 62.6% |
|
||||
| ov_SC05_011 | 1622 | 1622 | 0 | 1623 | 2418 | 67.1% |
|
||||
| ov_SC05_017 | 1618 | 1618 | 0 | 1630 | 2852 | 57.2% |
|
||||
| ov_SC05_018 | 1622 | 1622 | 0 | 1635 | 2683 | 60.9% |
|
||||
| ov_SC05_019 | 1622 | 1622 | 0 | 1623 | 2432 | 66.7% |
|
||||
| ov_SC06_000 | 1626 | 1626 | 0 | 1634 | 2699 | 60.5% |
|
||||
| ov_SC06_006 | 1622 | 1622 | 0 | 1623 | 2521 | 64.4% |
|
||||
| ov_SC06_008 | 1624 | 1624 | 0 | 1630 | 2551 | 63.9% |
|
||||
| ov_SC06_010 | 1622 | 1622 | 0 | 1627 | 2527 | 64.4% |
|
||||
| ov_SC06_011 | 1622 | 1622 | 0 | 1626 | 2478 | 65.6% |
|
||||
| ov_SC06_013 | 1622 | 1622 | 0 | 1623 | 2434 | 66.7% |
|
||||
| ov_SC06_014 | 1622 | 1622 | 0 | 1624 | 2462 | 66.0% |
|
||||
| ov_SC06_015 | 1622 | 1622 | 0 | 1622 | 2430 | 66.7% |
|
||||
| ov_SC06_016 | 1622 | 1622 | 0 | 1624 | 2559 | 63.5% |
|
||||
| ov_SC06_018 | 1622 | 1622 | 0 | 1630 | 2675 | 60.9% |
|
||||
| ov_SC06_020 | 1622 | 1622 | 0 | 1623 | 2528 | 64.2% |
|
||||
| ov_SC06_022 | 1622 | 1622 | 0 | 1630 | 2652 | 61.5% |
|
||||
| ov_SC06_024 | 1622 | 1622 | 0 | 1628 | 2677 | 60.8% |
|
||||
| ov_SC06_025 | 1622 | 1622 | 0 | 1627 | 2582 | 63.0% |
|
||||
| ov_SC06_027 | 1622 | 1622 | 0 | 1623 | 2417 | 67.1% |
|
||||
| ov_SC06_029 | 1622 | 1622 | 0 | 1634 | 2672 | 61.2% |
|
||||
| ov_SC06_030 | 1622 | 1622 | 0 | 1622 | 2466 | 65.8% |
|
||||
| ov_SC06_032 | 1622 | 1622 | 0 | 1629 | 2668 | 61.1% |
|
||||
| ov_SC06_033 | 1622 | 1622 | 0 | 1629 | 2641 | 61.7% |
|
||||
| ov_SC07_000 | 1626 | 1626 | 0 | 1628 | 2529 | 64.4% |
|
||||
| ov_SC07_001 | 1622 | 1622 | 0 | 1624 | 2464 | 65.9% |
|
||||
| ov_SC07_002 | 1622 | 1622 | 0 | 1626 | 2589 | 62.8% |
|
||||
| ov_SC07_008 | 1622 | 1622 | 0 | 1622 | 2395 | 67.7% |
|
||||
| ov_SC07_009 | 1622 | 1622 | 0 | 1624 | 2439 | 66.6% |
|
||||
|
||||
@@ -67,3 +67,4 @@ The **whole-binary byte-gate** (`gate_stage`/`harvest_verify`, G3/P9) is the sol
|
||||
- 2026-06-30: **T7 DEBUGGED + FIXED.** 3 Explore scouts (tooling / run-evidence / corpus) + a direct code read (R14 — which resolved a flat contradiction between two scouts) found **two independent bugs** in `lora_grind`'s gate path: **(A)** `good_sha()` passed `"<sha> <name>"` vs harvest_verify's bare `sha1()` → 0 banks for ALL binaries incl. 077 (so 077's "0/12" was a bug artifact); **(B)** `src/asm/out` defaulted to ov_SC01_077 → non-077 drafts dropped at the 077 stub-filter, silently. Fixed `gate_stage.run_gate` (binary-agnostic resolution + bare-hash normalize + a loud negative-control guard) + `lora_grind.good_sha`; byte-neutral (check-all 136/136). ov_SC01_000 spot-run **banked 7/15 (47%) byte-identical** (@commit:0322) → reach-2 `func_8017CE24` propagated ×2. **ROI:** 6/7 reach-1 → broad rotation is high bank-rate / low fleet-% ROI; the fleet lever is **reach≥2 targeting** + corpus-v3. Backlog now correctly classified (4× close=1 = grinder fuel). NEXT: **T8 corpus-v3** (struct types) + **T9 reach≥2 selection** + concurrent grinder.
|
||||
- 2026-06-30 (cont.): **T9 reach≥2 targeting built + measured.** Added `lora_grind --min-reach N` (lazy sig-based reach oracle == `dedup_propagate`, validated 0-mismatch/60 + the func_8017CE24=2 ground truth; `--min-reach 2` ranks high-reach-first, naturally restricts to overlays). Bounded reach≥2 mass-run: ov_SC01_000's 15 reach≥2 (shared) stubs banked **0/15** (vs the reach-1 spot-run's 7/15) — the model is **weakest on shared code** (corpus skipped the `DEFINE_func` bodies + it's the regalloc/schedule tail). But **5/15 are close≤3 reach-134 near-misses** (3× close=1 = func_8012E27C/BF4C/AD64) → high-value permuter fuel (×134 each). **FINDING: reach≥2 model-only ≠ a fleet lever; the lever is reach≥2-draft → grinder-close (×134)**, which needs `grinder.py`'s per-binary fix (same class as T7) + a backlog `binary` field. (A foreground mass-run hit the 10-min Bash cap mid-2nd-batch; tree recovered clean via `git checkout`, check-all 136/136.) Details: `docs/gen2-mips-matching-model.md` "T9 RESULT". NEXT: the grinder per-binary fix (realize the reach-134 ×134 fuel), then corpus-v3.
|
||||
- 2026-06-30 (cont.): **Grinder per-binary fix (5-layer) — built + validated; reach≥2 fuel re-characterized.** The grinder/backlog were ov_SC01_077-hardcoded **5 layers deep** — fixed all: `gate_stage` records `binary`, `backlog.FIELDS` keeps it, `backlog.load_best`/`_open_stubs` fleet-aware (stuck-local fns surface via their overlay record), `p16_permute.setup` takes asm-subdir, `grinder` per-binary resolution + grouped gating + None-`nins` allow. Validated: the 3 fresh reach-134 close=1 ov_SC01_000 fns now surface + resolve + gate per-000. **FINDINGS (byte-evidenced):** (a) the reach≥2 close=1 fuel is **MODEL semantic-misses** (7B drafts empty `void f(void){}` for trivial `return 1`/setters), NOT permuter fuel — a corrected draft banks them (**+3 byte-identical** via the fixed gate, @commit:0326); (b) ×reach is **propagation-capped** (inline-matched in `ov_SC01_077_a.c` → dedup "nothing to propagate" → banked ×1). So the reach-134 ×134 payoff routes through **corpus-v3** (leaf variety) + the **dedup-collapse**, NOT the permuter. check-all 136/136 throughout. Details: `docs/gen2-mips-matching-model.md` (grinder fix). NEXT: corpus-v3 + dedup-collapse.
|
||||
- 2026-06-30 (**8-hour autonomous run, Drew away**): prompt-fix + local serving + corpus-v3 + v3 + big batch. **LM Studio ejected** → built **`tools/serve_local.py`** (Unsloth GPU serving as an OpenAI endpoint; the prebuilt llama-cpp-python CUDA wheel SIGILLs on this no-AVX-512 CPU, so the Unsloth/torch path is the reliable one). **PROMPT FIX** (`api_draft.LEAN_SYS` + `format_finetune.SYS`, synced): "translate EVERY instruction, never an empty body" — the v2 empty-leaf overfit, small-leaf band **0/3→2/3**, banked 3 on a fresh ov_SC01_001 batch. **CORPUS-V3**: `export_pairs` now mines the **1623 engine_core.h `DEFINE_func` macros** (the shared setters/return-const the model was blind to — 96.6% of v2 was overlay-unique) + `format_finetune` inlines `engine_types.h` structs → corpus **1312→2891**, trainable **2534+291** (2.5× v2). **v3 trained** (Qwen2.5-Coder-7B QLoRA, loss 1.275→0.085, ~2h), held-out gate-true eval **MATCH 23/40 (57.5%)** (generalizing; v2's mixed-set rate was lower). Grinder concurrent during training = 0 banks (permuter tail exhausted, Phase-22 reality). **Big batch** (v3, broad rotation, 25 binaries, propagate-every-3, **$0 LLM**): banked **~352 fns inline + 45 new shared groups** (1633→1678) → fleet **63.67% → 63.82%** (+502 byte-identical), **136/136 byte-clean**, 25 auto-commits. v3 repeatedly banked the **empty-leaf/setter class v2 couldn't** (func_8012E27C=return 1, 8012AD64/BF4C=setters). **Pipeline validated end-to-end:** a free local fine-tuned model harvests the small/setter bulk at $0, gated identically (G3/P9). Details: `docs/gen2-mips-matching-model.md` ("Corpus-v3 ... 8-hour autonomous run"). **NEXT (fresh session):** (1) **shared/reach≥2 targeting** (`lora_grind --min-reach 2` with v3 — so the setter banks propagate ×134 instead of re-banking inline per binary — the fleet-% lever); (2) **dedup-collapse** the per-binary inline setters; (3) **corpus-v4** = struct-giant types; raise `--max-nins` as the band lifts. Serve: `tools/serve_local.py --adapter models/bfm-match-7b-v3` (R21 / SETUP §Tooling inventory).
|
||||
|
||||
Reference in New Issue
Block a user