1
0
mirror of https://github.com/KarolS/millfork.git synced 2026-04-20 18:16:35 +00:00

Z80: Interrupt handlers. Allow using IY as base pointer.

This commit is contained in:
Karol Stasiak
2018-08-01 12:50:05 +02:00
parent 99df25bde2
commit 69f233e378
15 changed files with 444 additions and 88 deletions
+17 -1
View File
@@ -92,7 +92,23 @@ This may cause problems if the parameter table is stored next to a hardware regi
* `-flenient-encoding`, `-fno-lenient-encoding`
Whether the compiler should allow for invalid characters in string/character literals that use the default encodings and replace them with alternatives.
.ini` equivalent: `lenient_encoding`. Default: no.
`.ini` equivalent: `lenient_encoding`. Default: no.
* `-fshadow-irq`, `-fno-shadow-irq`
Whether the interrupt routines should make use of Z80 shadow registers.
`.ini` equivalent: `use_shadow_registers_for_irq`. Default: yes on Z80, no otherwise.
* `-fuse-ix-for-stack`, `-fuse-iy-for-stack`, `-fno-use-index-for-stack`
Which of Z80 index registers should be used for accessing stack variables, if any.
`.ini` equivalent: `ix_stack` and `iy_stack`. Default: IX on Z80, no otherwise.
* `-fuse-ix-for-scratch`, `-fno-use-ix-for-scratch`
Allow using the IX register for other purposes.
`.ini` equivalent: `ix_scratch`. Default: no.
* `-fuse-iy-for-scratch`, `-fno-use-iy-for-scratch`
Allow using the IY register for other purposes.
`.ini` equivalent: `iy_scratch`. Default: no.
## Optimization options
+11
View File
@@ -67,6 +67,17 @@ Default: the same as `encoding`.
* `ipo` - enable interprocedural optimization, default is `false`.
* `lenient_encoding` - allow for automatic substitution of invalid characters in string literals using the default encodings, default is `false`.
* `use_shadow_registers_for_irq` use Z80 shadow registers in interrupt routines, default is `true` for Z80 and `false` otherwise
* `ix_stack` use the IX register to access stack variables, default is `true` for Z80 and `false` otherwise
* `iy_stack` use the IY register to access stack variables, default is `false`
* `ix_scratch` allow using the IY register for other purposes, default is `false`
* `iy_scratch` allow using the IY register for other purposes, default is `false`
#### `[define]` section