would seem to indicate there were major bugs associated with preserves_regs on the z80 but I haven't seen any of that up to 9958 (I haven't updated from there yet because some bugs have been introduced since that I haven't had the time to locate yet).
Was there a change after 9958 that required changing the register enumeration?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
In [r9977], I changed the register numbering to make it easier to improve handling of register A in register allocation and code generation. However, I forgot to make the corresponding update in the register preservation specification, resulting in a regression. [r9997] fixes this regression.
Philipp
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
The recent commit:
https://sourceforge.net/p/sdcc/code/9998/tree/trunk/sdcc/src/z80/main.c?diff=513f4d42271846342871488b:9997&diformat=sidebyside
would seem to indicate there were major bugs associated with preserves_regs on the z80 but I haven't seen any of that up to 9958 (I haven't updated from there yet because some bugs have been introduced since that I haven't had the time to locate yet).
Was there a change after 9958 that required changing the register enumeration?
In [r9977], I changed the register numbering to make it easier to improve handling of register A in register allocation and code generation. However, I forgot to make the corresponding update in the register preservation specification, resulting in a regression. [r9997] fixes this regression.
Philipp
Ok, maybe that was the root of the problems I've seen? The z88dk library uses preserves_regs extensively.