Files
BFM-decomp/docs
Drew T 0caf4e5c20 docs(cookbook): §468 — the %lo-fold extends to stores; masking hid a wrong operand order
From the S76 func_80181E04 agent (269 ins -> MATCH):

  1. §18's %lo-fold applies to STORES only when the symbol is declared
     extern Struct SYM[] (stride 0x50, field at +0). On a plain s32[] it
     folds for read-only symbols only — worth 13 ins here, and a real
     extension of the Phase-20 entry, which only exercised the read side.
  2. Relocation masking can HIDE a wrong operand order: the reversed
     comparison scores identically under match_one because §1c masks
     HI16/LO16 and both symbol refs mask to the same bytes. When a compare's
     operands are two different symbols the byte oracle cannot tell them
     apart — read the relocations.
  3. No biased q pointer (write off p so combine_givs picks p+0x12, else it
     mints a second anchor, +2), and keep the counted i<0x100 loop (spelling
     the bound via D_801F2A44 costs 12 ins for the same resolved address).
2026-09-03 16:06:03 -06:00
..
2026-09-02 16:45:33 -06:00