bincode_branch_fline.hss 1.3 KB

1234567891011121314151617181920212223
  1. [Main]
  2. Title=F-Line Branch Optimization
  3. [Top]
  4. The linker can convert absolute branches (which would normally need a
  5. relocation entry) into special relative F-Line sequences. These sequences are
  6. handled by an interrupt handler. The fact that an interrupt is needed makes
  7. these branches significantly slower, but using them can save quite a bit of
  8. space in the program.
  9. <BR><BR>
  10. There are two types of F-Line branches: The default version can be activated
  11. using the <A HREF="$$LINK(control_ld_use_fline_jumps)">__ld_use_fline_jumps</A>
  12. control symbol. Each branch has a size of six bytes. They are relative to
  13. their own address, which means that they can be supported by the AMS, and in
  14. fact, the AMS implements an interrupt handler for these branches starting
  15. from version 2.04. The other version can be activated using the
  16. <A HREF="$$LINK(control_ld_use_4byte_fline_jumps)">__ld_use_4byte_fline_jumps</A>
  17. control symbol. As the name says, each branch has a size of four bytes. They
  18. are relative to the program's entry point, so only an emulator that is
  19. installed from the program can handle them. Since they use codes that are
  20. otherwise used for ROM calls, this might break applications that are called
  21. from the program, if any. However, this is very unlikely, as the two ROM
  22. calls used are not defined yet.