mirror of
https://github.com/Druthulu/BFM-decomp
synced 2026-10-04 08:21:50 -04:00
846 B
846 B
§394 ★★ — TWO ALIGN-1 ACCESSES IN ONE FUNCTION RESERVE A PHANTOM STACK SLOT (P31 S69; ov_SC02_005/func_80180610)
Using two align-1-typed accesses (the §160a Blk8 byte-aligned struct-assign family) in one
function, with a real store between them, makes gcc-2.7.2 reserve a DUPLICATE, never-referenced
temp slot: vars=8 in the frame with no instruction touching it. Declaring the second access as a
plain scalar with a u8 * offset cast — instead of routing it through the same align-1 record type —
removes the second align-1 access and the 8-byte bloat with it.
Diff tell: a frame 8 bytes larger than the target with no spill or save to account for it, in a function that copies a byte-aligned aggregate more than once. Related: §391 (a byte-aligned struct copies in four instructions, a word-aligned one in two).