Fix bug #3253
isRegInUse renamed to isRegDead
Make z80/gen.c more readable
Remove some unnecessary macros
Fix possible errors caused by operands allocation
Fix genPlus when right is AOP_IY
Partially fix bug #3203
Yet another partial fix for bug #3203
Fix regressions
Partially fix bug #3203 for eZ80
strcmp optimization
Fix common Z80 peephole rules
Make some GBZ80 rules common
Fix bug #3194
Fix Z80 common peephole rule 41a
Added rules to move inc/dec hl possible upper
Add 2 new peepholes for Z80
Fix RFE #736
Add GETWORD optimization for Z80 ports
Add GetABit optimization for Z80 ports
Fix SWAP H/L simulation for GBZ80
Enable multibyte RRC/RLC for GBZ80
Fix typos
Add support for RLC/RRC optimizations for Z80
Add 32b swap for all Z80 ports
Fix regressions coused by previous change
Add basic support for SWAP iCode for all Z80 ports
Add basic support for GETBYTE iCode for all Z80 ports
Fix bug #3137
New peephole rules
Apply patch #357 from Tim Stahlhut
Add option rng seed to simulator
Optimized versions of abs() and strlen() for GBZ80
Optimize memset implementation
Apply patch #343 and patch #347
Temporary enable initializer list support for GBZ80
Fix regression introduced in previous change
Fix bug #3104
Enhanced regression testing for memmove()
Add Z80N barrel shifts and jp (c) instructions support
Delete file forget in previous commit
Prepare to implement RFE#670 and RFE#707
Fix possible bug in reorderIlist() when empty array is passed
New peephole rules, fixed and reenabled rule 44
Small stdlib optimizations for tlcs90
Optimize atomic_flag_test_and_set() for r2k and r3ka
Basic implementation of RFE #649 for tlcs90
Implement RFE #664 for tlcs90, r2k and r3ka
Optimize Z80 common peephole rules
Fix always false conditions
Make some of Z80 common peephole rules more generic
More accurate Z80 flags handling by notUsed
canAssign can handle indirect assignment to register pairs on eZ80_Z80 port
Enable sp and flags for notUsed for all Z80 ports
Enable regression test for bug-2363
Fix bug #2321: Z80 generates unsafe code for critcial function entry
Implement RFE #152 for Z180, eZ80_Z80 and Z80N
Implement RFE #678: new peephole constraint unusedRegs
Z80N: New peephole rules to replcase push nn by ld rr,nn / push rr
Fix bug #3032: Something wrong with z80n push nn
Apply patch #312: Initial GNU AS support
Implement RFE #669
Add new mapping !hashedbankimmeds
Fix incorrect syntax of ASXXXX assembler code generated for banked calls
Fix Bug #3089
Fix invalid relocation of Z80N PUSH immediate instruction.
Fix memory test compilation on small systems
Fix invalid memcpy return value for Z80
Fix possible read beyond a buffer in canJoinRegs
Fix Bug #3077 for eZ80, Z180 and Z80N
Fix eZ80 peephole rules 9hl and 9de
Fix compiler warning
New peephole rules for Z80-like ports
Implement RFE #664 for EZ80_Z80, Z180, GBZ80 and Z80N ports
Revert unnecessary change
Initial implementation of RFE #152 for Z80
Revert banked_call parameters order
Initial banked functions support for Z80
Small optimization of ___memcpy for Z80
Fix Bug #3077 for Z80 port
Split itoa/ltoa tests on 5 parts
Optimization of generic memmove()
Add tests for _itoa, _uitoa, _ltoa and _ultoa
Fix patch attribution
Add peephole rule which slitly inscreases execution speed
Implement RFE #683: Add support for canSplitReg peephole constraint
Implement RFE #661: add newLabel peephole constraint
RFE #683: Add unordered regs support
Fix patch attribution.
Implement RFE #684
Partially implement RFE #683
Implement RFE #632
Can you illustrate example in some code?
Because HL is often used in entry/exit code of functions and for indirect access. So passing return values in it results extra save/restore operations.
One extra byte does not make any sense to memory use, because most of parameters will be passed in registers. Functions with many parameters (more than 3) is always not good. Byte arguments are not used very often too. So I expect raise of used stack memory not above 2-5%.
Fix library functions for new calling convention
Fix library functions for new calling convention
After some time with porting to new calling convention. I think, it is better to use unified calling convention for all ports with IX register. Imho, current rules are very very difficult.
Fix library functions for new calling convention
This is how call prepared: ld b, 4 (ix) lea hl, ix, #-34 ld c, l ld a, h push hl push bc inc sp ld b, a push bc ex de, hl call ___itoa