ld: M68HC11/68HC12

1 
1 4.3 'ld' and the Motorola 68HC11 and 68HC12 families
1 ====================================================
1 
1 4.3.1 Linker Relaxation
1 -----------------------
1 
1 For the Motorola 68HC11, 'ld' can perform these global optimizations
1 when you specify the '--relax' command-line option.
1 
1 _relaxing address modes_
1      'ld' finds all 'jsr' and 'jmp' instructions whose targets are
1      within eight bits, and turns them into eight-bit program-counter
1      relative 'bsr' and 'bra' instructions, respectively.
1 
1      'ld' also looks at all 16-bit extended addressing modes and
1      transforms them in a direct addressing mode when the address is in
1      page 0 (between 0 and 0x0ff).
1 
1 _relaxing gcc instruction group_
1      When 'gcc' is called with '-mrelax', it can emit group of
1      instructions that the linker can optimize to use a 68HC11 direct
1      addressing mode.  These instructions consists of 'bclr' or 'bset'
1      instructions.
1 
1 4.3.2 Trampoline Generation
1 ---------------------------
1 
1 For 68HC11 and 68HC12, 'ld' can generate trampoline code to call a far
1 function using a normal 'jsr' instruction.  The linker will also change
1 the relocation to some far function to use the trampoline address
1 instead of the function address.  This is typically the case when a
1 pointer to a function is taken.  The pointer will in fact point to the
1 function trampoline.
1