For eZ80, I'd like to introduce a __far that is a superset of the generic address space. This would be different from all other current ports that have __far.
Rationale: The eZ80 has two modes, "Z80 mode" and "ADL mode". In the former, we have a 16-bit address space, and doing 16-bit operations is quite efficient. In ADLmode, we have a 24-bit address space, and we get better support for 24-bit operations, but 16-bit operations are less efficient.
Currently, there are tow free compiler supporting the eZ80: SDCC, which uses Z80 mode, and LLVM, which uses ADL mode.
However, some users might want to combine these: Use a 16-bit address space for code and RAM, but have a few large, rarely accessed tables in Flash beyond the 16-bit space. They would be well-served by a __far that uses individual ADL mode instructions in a program that otherwise uses Z80 mode.
This way, the typical user of a small eZ80-based system (one that only uses the internal 8KB RAM and the internal Flash - often 128 KB these days would be well-served by SDCC, while the users of larger eZ80-based systems (i.e. those with additional external RAM and flash) are well-served by LLVM.
This is currently blocked on [bugs:#3826], [bugs:#3827].
Related
Bugs: #3826
Bugs: #3827