2026-09-08 Gabriele Gorla * support/regression/Makefile.in, support/regression/ports/mos6502: Removed unmantained support for sim65. * support/regression/ports/uc65c02/uCsim.cmd, support/regression/ports/uc65c02/spec.mk, support/regression/ports/uc6502/spec.mk, support/regression/ports/uc6502-stack-auto/spec.mk, support/regression/ports/uc6280/spec.mk: Spec files cleanup. * src/mos6502/gen.c, src/mos6502/m6502.h, src/mos6502/main.c, src/mos6502/port_huc6280.c, src/mos6502/port_mos6502.c, src/mos6502/port_mos65c02.c, src/mos6502/stackops.c, src/mos6502/tempops.c: Improve handling of enhanced instructions. 2026-09-08 Maarten Brock * src/SDCCmem.c (printAllocInfo): print bit and pdata info * src/SDCCpeeph.c (operandBaseName): not everything starting with 'a' is acc (notUsed): mark regs from ic SEND and RET as used * src/mcs51/gen.c (cheapMove): optimize indirect copies to self (mcs51IsReturned, mcs51IsRegArg): bugfix also check dname * src/mcs51/main.c (updateOpRW): track bits * src/mcs51/peep.c (scan4op): check bits (mcs51notUsed): check all 8 regs and also the bits 2026-09-06 Gabriele Gorla * sdas/linksrc/lklist.c: Remove double printing of header. 2026-09-05 Maarten Brock * device/lib/_divslonglong.c: optimized * device/lib/mcs51/crtxpopr0.asm, * device/lib/mcs51/crtxpop.asm: made register bank independent * src/mcs51/gen.c (genUminusFloat): optimized in-place uminus, (genAnd, genOr, genXor): optimized IMMEDIATE * src/mcs51/main.c (mcs51opcodeDataTable): fixed jc/jnc reads psw * src/mcs51/peeph.def: swapped rules 302 & 303, fixed volatile, more general dead mov removal * support/regression/collate-results.py: print in fixed columns for easier comparison by a human 2026-09-02 Gabriele Gorla * sdas/asxxsrc/aslist.c: Apply patch from bug #4049, Thanks Jan Andersen. * support/regression/bug-2326.c: Add regression for bug #2326. 2026-09-01 Maarten Brock * sdas/asxxsrc/asexpr.c (term), * sdas/as8051/i51adr.c (addr): moved handling of bit-addressable [n] from term() to addr() * sdas/linksrc/lklist.c: fixed warning * sdas/linksrc/lkmem.c: fixed warning * src/SDCCglue.c (glue): removed equates for b0-b7 * src/mcs51/ralloc.c, * src/ds390/ralloc.c: renamed b0 - b7 to bits[0] - bits[7] * src/mcs51/gen.c (genMinusBits): replaced conditional jump with addition same #bytes, allows optimization if some Rn==0 (genLeftShift, genSignedRightShift, genRightShift): removed redundant code * src/mcs51/main.c: made mcs51opcodeDataTable const * support/util/NewAlloc.c (Safe_strndup): fixed warning 2026-08-31 Maarten Brock * src/SDCCsymt.c (checkSClass): Put the volatile from __at on the function pointer itself, not on the function return type. Fixed bugs #4013 & #4041 by applying patch #515, Thanks Li-Hsin Chien * support/regression/tests/bug-4013.c: New regression test. 2026-08-31 Maarten Brock * sdas/as6500/r65mch.c: fixed unused variable warning * sdas/linksrc/lkarea.c: fixed uninitialized variable warning * src/mos6502/gen.c: fixed untested case warning * src/mos6502/ralloc.c: fixed unused function warning * support/regression/gte/pr17133.c, * support/regression/gte/pr21173.c, * support/regression/tests/bug-2710.c: suppress warning 178, W_SIZEOF_VOID 2026-08-30 Maarten Brock * src/SDCCmain.c: cosmetics * src/SDCCpeeph.c: renamed labelIsUncondJump to label5IsUncondJumpTo6, added mcs51 ajmp instruction * src/f8/peeph.def, * src/mcs51/peeph.def, * src/mos6502/peeph.def, * src/stm8/peeph.def, * src/z80/peeph.def: renamed labelIsUncondJump to label5IsUncondJumpTo6 * src/mcs51/peeph.def: applied patch #514, Thanks Li-Hsin Chien, inserted new 257.b moving previous 257.b-i up to 257.c-j