Advantages of z88dk compilers?
Posted: Sun Dec 27, 2020 8:55 pm
Hello,
I program in C and inline assembler for MSX computers using SDCC.
I don't use any standard C libraries; I have my own crt0s and features to handle I/O.
SDCC is a great tool, but I'm really not satisfied with the assembler code generated in a lot of situations:
- The lack of flexibility in passing function parameters via registers (the limit of a single parameter and the fix set of registers),
- The intesive use of IX/IY,
- The inconsistent code here and there (e.g., access a global variable is sometimes unnecessarily slow).
I've been looking for information about z88dk, but it's still not clear what are the differences between the provided 2 compilers (SCCZ80 and ZSDCC) and the SDCC one's. I saw the Benchmarks page, but the differences seem to come more from the libraries than from the compilers.
Do you have any information about those compilers and their features?
Do any of them offer more flexibility on the passing of function parameters via registers?
It has a very huge impact on performance (and on the ability to interface assembler libraries or access Bios routines).
I will look at the source of the compilers, but I am not used to this kind of program and I am afraid to get lost in it. ^^
I program in C and inline assembler for MSX computers using SDCC.
I don't use any standard C libraries; I have my own crt0s and features to handle I/O.
SDCC is a great tool, but I'm really not satisfied with the assembler code generated in a lot of situations:
- The lack of flexibility in passing function parameters via registers (the limit of a single parameter and the fix set of registers),
- The intesive use of IX/IY,
- The inconsistent code here and there (e.g., access a global variable is sometimes unnecessarily slow).
I've been looking for information about z88dk, but it's still not clear what are the differences between the provided 2 compilers (SCCZ80 and ZSDCC) and the SDCC one's. I saw the Benchmarks page, but the differences seem to come more from the libraries than from the compilers.
Do you have any information about those compilers and their features?
Do any of them offer more flexibility on the passing of function parameters via registers?
It has a very huge impact on performance (and on the ability to interface assembler libraries or access Bios routines).
I will look at the source of the compilers, but I am not used to this kind of program and I am afraid to get lost in it. ^^