1
0
mirror of https://github.com/KarolS/millfork.git synced 2026-04-23 21:17:27 +00:00

6809: tons of improvements:

* stack variables
* large comparisons
* pointer optimizations
* fixed constant evaluation
This commit is contained in:
Karol Stasiak
2020-07-09 01:50:18 +02:00
parent b9bf433308
commit a22571f60b
14 changed files with 324 additions and 46 deletions
+8
View File
@@ -187,6 +187,14 @@ Allow using the IY register for other purposes.
Compiling to 8086 is based on translating from a mix of 8085 and Z80 instructions to 8086.
See [the 8086 support disclaimer](./../lang/x86disclaimer.md).
#### 6809-related
* `-fuse-u-for-stack`, `-fuse-y-for-stack`
Which of Z80 index registers should be used as the base pointer for accessing stack variables, if any.
`.ini` equivalent: `u_stack` and `y_stack`. Default: none.
**Warning: Currently, picking one of those two options is required!**
The compiler doesn't support accessing the stack variables via the S stack pointer register yet.
## Optimization options
* `-O0` Disable all optimizations except unused global symbol removal.
+7
View File
@@ -114,6 +114,13 @@ This list cannot contain module template instantiations.
* `iy_scratch` allow using the IY register for other purposes, default is `false`
* `u_stack` use the U register to access stack variables, default is `false`. Applicable only to 6809-based targets.
* `y_stack` use the Y register to access stack variables, default is `false`. Applicable only to 6809-based targets.
**Warning: Currently, picking either `u_stack` or `y_stack` is required,
unless you want to always specify this option in the compiler's command line!**
The compiler doesn't support accessing the stack variables via the S stack pointer register yet.
* `software_stack` use software stack for stack variables, default is `false`. Applicable only to 6502-based targets.
* `output_intel_syntax` use Intel syntax instead of Zilog syntax, default is `true` for Intel 8080/8085 and `false` otherwise