Per-function status for the “monster” ports and any port that needs a
narrative beyond the one-line entry in check_asm.sh. Short ports
that are source-complete, byte-matching, and need no commentary live
only in ~/projects/AMPere/benchmark/ and the make audit output.
Last updated: 2026-04-21 (extended session).
splicer_skip.txt entry (154_FUN_de40 — see below)| Port | Status | Size | Notes |
|---|---|---|---|
fn_fcc4 (115_FUN_fcc4) | Source-complete full port | 1684 B | Natural skip-larger. Documented source. Training-result reporter — 1656 B vendor with 5 state-mutating stores that SAILR output was too contaminated to hand-rescue, rebuilt from func.s. |
fn_1c14 (101_FUN_1c14) | Full port — replaces broken stub | 656 B ≤ 740 B vendor | Prior port was read-and-discard ((void)*(u32v *)(rank + base + i * 4u);). Vendor's body is a DDRPHY training-register save/restore/zero routine that copies configuration banks between source and destination offsets. Rebuilt from ddr_annotated.c:1555. |
fn_3268 (83_FUN_3268) | Bug fix | same budget | Early-return restructured to fall through to the 0x208 RMW tail — matches vendor's b INTO_TAIL shape on both control-flow paths. See extended session bug-class 2. |
fn_de40 (154_FUN_de40) | Source-scaffold, installs under budget | 4888 B ≤ 4912 B vendor | Faithful ~700-line port from ddr_annotated.c:9695–10640 (LPDDR5 frequency-band timing programmer). 27 callees resolved via fun_table (0xd468 via vendor bytes). 24 new DAT_00011ff0..DAT_000127c0 defsyms added. Diverges 1 bit at tp[0x4f] on the first install trial — currently parked in splicer_skip.txt pending internal task #198. Vendor bytes hold mmio_diff 3173/3173. |
Installs cleanly under budget and builds, but enabling install causes
mmio_diff write #197 to diverge: vendor writes 0x300000 to
ch0 + 0x504, rebuilt writes 0x310000. One bit — bit-0 of
tp[0x4f] is 0x30 in the rebuild vs 0x31 expected by the
downstream write composer.
Caller fn_5540 computes tp[0x55] | (tp[0x4f] « 16), so the
bit-0 difference in tp[0x4f] ends up as bit-16 of the 0x504 write.
Task #198 tracks the narrow-window Unicorn trace needed to localize which control-flow path in the rebuild is wrong. mmio_diff stays 3173/3173 with vendor bytes in place. Details and reproduction steps live in the internal task board.
Earlier port milestones:
clang -O2 -ffreestanding -mgeneral-regs-only -fno-pic -fno-stack-protector -fno-jump-tables –target=aarch64-none-elf settled-fno-jump-tables mitigates) + void-signature x0 mutation (audit against vendor's last pre-RET insns)