|
From: Philipp K. K. <pk...@sp...> - 2025-10-12 14:30:31
|
Dear SDCC developers, I'd like to merge the rabbit branch to trunk soon. Most of the work done in that branch is still incomplete, so this wouldn't be the last such merge. However, despite the incompleteness of most the work done in that brnach there are some reasons why I think such a merge would make sense now: * There are a few improvements in the generated code affecting all z80-related ports. * The tlcs90 port interrupt handlers now need to save register BY. * For the rabbit ports, the internal interrupt handler table is now generated by sdcc, instead of being part of the crt0. * The ez80_z80 port has been renamed to ez80 port, since it no longer uses exclusively Z80 mode instructions. This also means that user-supplied crt0 need to setup the spl stack pointer in addition to the sps one, and interrup thandlers written in asm need to save some register pairs as 24-bit registers instead of 16-bit. * Support for the Dynamic C calling convention in the z80-related ports (for those who want to combine SDCC_generated code with code from Dynamic C or asm code written for Dynamic C). * The tlcs90 cost function now considers TLCs-90 code size correctly (instead of just approcimating it by the code size of correspondign Z80 instructions), resulting in smaller code. While these are not huge changes, IMO it makes more sense to get them into trunk soon, instead of closer to a realease, so users are more likely to test them, and resolve any issues. Philipp P.S.: The merge will also bring the experimental r4k, r5k, r6k ports into trunk. Currently r4k essentially generates the same code as r3ka, r6k generates essentially the same code as r5k. The difference between r4k and r5k is essentially just in instruction timing, so it won't affect the generated code much unless --opt-code-speed is used. So for now, those additional ports mostly just provide additional testing of the r3ka port. |