tl;dr Clang 19 will remove the-mrelax-alldefault at-O0, significantly decreasing the text section size forx86.Span-dependent instructionsIn assembly languages, some instructions with an immediate operandcan be encoded in two (or more) forms with different sizes. On x86-64, aJMP/JCC (jumps) can be encoded either in 2 bytes with a 8-bit relativeoffset or 6 bytes with a 32-bit relative offset. The short form ispreferred because it takes less space. However, when the target of thejump is too far away, the long form must be used.1234ja foo # jump near if above, 77ja foo # jump short if above,
...
继续阅读
(130)