9.28.2 Instruction expansion

When as encounters an instruction with an operand that is either not known or does not fit the operand size of the instruction, as (and ld ) will expand the instruction into a sequence of instructions semantically equivalent to the operand fitting the instruction. Expansion will take place for the following instructions:

GETA
Expands to a sequence of four instructions: SETL , INCML , INCMH and INCH . The operand must be a multiple of four.
Conditional branches
A branch instruction is turned into a branch with the complemented condition and prediction bit over five instructions; four instructions setting $255 to the operand value, which like with GETA must be a multiple of four, and a final GO $255,$255,0 .
PUSHJ
Similar to expansion for conditional branches; four instructions set $255 to the operand value, followed by a PUSHGO $255,$255,0 .
JMP
Similar to conditional branches and PUSHJ . The final instruction is GO $255,$255,0 .

The linker ld is expected to shrink these expansions for code assembled with ‘ --relax ’ (though not currently implemented).