* src/SDCCpeeph.def: new keyword "labelRefCountChange" which allows peepholes to...
[fw/sdcc] / ChangeLog
index 72426368c4a4be9c04ff339bd0f4d6f57ae1129a..33584dd681641d5a395df50e54718610a9eb94ee 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,232 @@
+2004-02-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
+
+       * src/SDCCpeeph.def: new keyword "labelRefCountChange" which allows peepholes
+       to keep the correct label reference count when adding/removing references
+       to labels. A peephole file using this is appended to patch #1144962.
+
+2005-02-14 Raphael Neider <rneider AT web.de>
+
+       * device/lib/pic16/libc/string/memccpy.c: changed 3rd argument to char
+       * src/SDCC.lex (process_pragma): fixed to make disable_warning work for PIC16
+       * src/pic16/gen.c (aopForSym, calls to pic16_aopOp): prevent unneccessary
+         retrievals of result operand's value on assignment
+
+2005-02-13 Vangelis Rokas <vrokas AT otenet.gr>
+
+       * device/include/pic16/string.h: modified prototype for memccpy()
+       to memccpy(void *, void *, char, size_t)
+       * src/pic16/gen.c (genFunction, genEndFunction): reenable if-case to
+       check whether to omit frame pointer or not,
+       * (genInline): convert all occurences of "\n" to LF in inline
+       assembler blocks, this helps formatting the inline text,
+       * (pic16_loadFSR0): modified prototype,
+       * (genNearPointerGet, genNearPointerSet): reorganization of code,
+       removed some 8051 legacy code,
+       * (genPackBits): enabled handling bitfields exceeding one byte in size,
+       * src/pic16/ralloc.c (pic16_assignRegisters): clear dynrIdx variable
+       before allocating temporary registers in functions,
+
+2005-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * support/regression/tests/bitvars.c: corrected the "fix"
+
+2005-02-10 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * support/regression/tests/bitvars.c,
+       * support/regression/tests/bitwise.c,
+       * support/regression/tests/rotate.c: "fixed" problems on Alpha
+
+2005-02-10 Raphael Neider <rneider AT web.de>
+
+       * src/pic16/pcode.c (assignToSameBank) : fixed cast to pointer of
+         different size for Alpha
+       * src/pic16/gen.c (genCmpEq) : improved compare with 0
+
+2005-02-09 Raphael Neider <rneider AT web.de>
+
+       * src/SDCC.lex(doPragma) : save and restore warning options as well
+         (also added new stack plus clone- and copyAndFreeSDCCERRG())
+       * have #pragma less_pedantic set the errorlevel to WARNING
+         (fixes #1117001)
+       * (cloneOptimize) : fixed wrong malloc's size
+       * support/Util/SDCCerr.[ch] : made SDCCERRG globally accessible to
+         facilitate correct handling of #pragma (save|restore)
+
+2005-02-09 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * src/mcs51/gen.c: removed non-standard C nameless struct/union
+
+2005-02-04 Slade Rich <slade_rich AT users.sourceforge.net>
+
+       * src/pic/gen.c : Fix for bugs #1080519 & #1115662.
+
+2004-02-03 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * device/include/mcs51/c8051f120.h: added declarations for sbit port 2,3&4
+
+2005-02-02 Raphael Neider <rneider AT web.de>
+
+       * src/SDCCast.c (processParms): disabled W_NONRENT_ARGS for pic16 port
+       * src/pic16/gen.c (aopForSym): reenabled special case for function pointers
+       * (pic16_storeForReturn): fixed to allow returning function pointers
+       * (genPackBits): improved accessing full bytes, implemented for GPOINTERs
+       * device/include/pic16/{stddef.h,stdbool.h}: added
+
+2004-02-02 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * device/include/mcs51/c8051f040.h: added define CPT2_PAGE
+
+2005-02-01 Slade Rich <slade_rich AT users.sourceforge.net>
+
+       * src/pic16/pic16.dsp : Added file graph.c to make it compile under windows
+       * src/pic16/Makefile.bcc : Do not use this file but added file graph.c as it
+        appeared to be required
+
+2004-01-31 Borut Razem <borut.razem AT siol.net>
+
+       * support/scripts/sdcc.nsi: added include/asm/ds390, include/asm/mcs51,
+         include/mcs51 and include/z80 directories to the package
+
+2004-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+       * src/hc08/gen.c (genFunction): fixed bug #1112752
+
+2004-01-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
+
+       * src/mcs51/peeph.def: adapted peephole 258.x to changed gen.c (genAnd)
+
+2004-01-29 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
+
+       * src/mcs51/gen.c (genAnd): accessing LSB/MSB by rotating acc
+
+2004-01-29 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * device/include/Makefile.in: create/copy mcs51 and z80 include subdirs
+
+2004-01-27 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * device/include/c8051fxxx.h: removed these 6 files
+       * device/include/mcs51/c8051fxxx.h: added these 11 new files
+
+2005-01-26 Raphael Neider <rneider AT web.de>
+
+       * src/pic16/gen.c (genAssign): fixed assignment from longs
+         in codespace (were cut to three bytes)
+       * (genDummyRead): implemented (except for CODESPACE...),
+         fixed bug #1108575
+       * src/pic16/glue.c (emitStatistics): beautified
+       * device/lib/pic16/libm/Makefile: added include path
+
+2004-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+       * src/z80/gen.c (aopPut): fixed bug #1103902
+
+2004-01-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+       * device/lib/expf.c: fixed bug #1095792
+
+2005-01-24 Vangelis Rokas <vrokas AT otenet.gr>
+
+       * device/lib/pic16/libm: added Math library sources
+
+2005-01-24 Raphael Neider <rneider AT web.de>
+
+       * src/pic16/pcode.h: added second memory operand to pCodeOpReg
+         to enable upcast to pCodeOpReg2 (there is no type tag to
+         differenciate the two and pic16_popGet2p cast into PCOR2)
+       * src/pic16/main.c (_process_pragma): fixed another malloc bug
+         (sizeof(sectNames) changed to sizeof(sectName))
+         Both patches fix segfaults under MinGW.
+
+2005-01-23 Raphael Neider <rneider AT web.de>
+
+       * src/pic16/{device.c,pcode.c}: s/free/Safe_free/g for
+         Safe_[mc]?alloc()'ed variables
+       * src/pic16/gen.c (pic16_aopOp,pic16_popGet): added handling
+         of (byte sized) temporaries (assign them to WREG for now)
+       * src/pic16/main.c (_process_pragma): fixed nasty malloc bug
+         (used sizeof(set *sectSyms) instead of sizeof(struct sectSym)),
+         this might fix SIGSEGVs on MinGW...
+       * src/SDCCopt.c (killDeadCode): restored original behaviour
+         (volatile operands might get thrown away though)
+
+2005-01-23 Vangelis Rokas <vrokas AT otenet.gr>
+
+       * src/pic16/gen.c: fixed bug #1106975,
+       * src/pic16/gen.c: fixed possible bug #1102572, now during TOS
+       pointer update, INTCON is saved, global interrupts are disabled and
+       restored after updateing TOS.
+       * src/SDCC.y, src/SDCC.lex, src/SDCCsymt.c, src/SDCCsymt.h:
+       * added function attribute 'shadowregs' to take advantage of shadow
+       registers,
+       * added function attribute 'wparam' as an alternative to the wparam
+       pragma,
+       * support/Utils/SDCCerr.[ch]: added error E_SHADOWREGS_NO_ISR when
+       user declares a non-ISR function as 'shadowregs',
+       * doc/sdccman.lyx: updated to reflect recent changes of pic16 port
+
+2005-01-22 Vangelis Rokas <vrokas AT otenet.gr>
+
+       * .version: bumped version number to 2.4.8
+       * device/lib/pic16/pics.all: list of PIC18F devices supported by
+       pic16 port,
+       * device/lib/pic16/libio/i2c/: I2C module support library,
+       * device/include/pic16/i2c.h: I2C support library header,
+       * device/lib/pic16/libc/stdio/: standard IO support sources,
+       * (printf_small.c): printf_small() source, supports float print,
+       * (printf_tiny.c): printf_tiny() source, does not support floats,
+       * device/lib/pic16/Makefile.common.in: added OPT_FLAGS macro to
+       enable global optimizations for entire library source, other
+       Makefiles in the source tree are also modified to reflect this,
+       * device/lib/pic16/libc/stdlib/putchar.c (putchar): dummy putchar()
+       function,
+       * doc/sdccman.lyx: updated to reflect new changes,
+       * src/pic16/gen.c (aopForSym): don't handle sym->iaccess in
+       sym->onStack if-case,
+       * src/pic16/main.c (_pic16_keywords): commented out keywords bit,
+       sbit, idata, _idata, xdata, _xdata,
+       * added pragma library, to link an external library, (see doc),
+       * removed command line options, --pomit-config-words, --pomit-ivt,
+       --pleave-reset-vector,
+       * (pic16_finaliseOptions): when define macro SDCC_MODEL_{SMALL/LARGE}
+       when calling assembler to reflect memory model used, also define
+       macro STACK_MODEL_{SMALL/LARGE} when compiling and assembling to
+       reflect stack model used,
+       * src/pic16/ralloc.c (pic16_allocDirReg): when operand is allocated
+       on stack return NULL,
+
+2005-01-22 Daniel Winkler <post AT danielwinkler.de>
+
+       * src/SDCCopt.c (killDeadCode): do not throw iCodes away if one
+         of the operands is volatile. Fixes #1020220
+
+2005-01-22 Daniel Winkler <post AT danielwinkler.de>
+
+       * src/pic16/pcoderegs.c (pCodeOptime2pCodes): reenabled optimization
+       * (OptimizeRegUsage): make sure that there is really no other flow where
+         the first pCode is used
+
+2005-01-22 Raphael Neider <rneider AT web.de>
+
+       * src/pic16/pcoderegs.c (pCodeOptime2pCodes): disabled optimization
+         to fix #1106967 (pCode->seq are not set up correctly)
+
+2004-01-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+       * src/SDCCglue.c (glue): make sure code area is declared before the
+       static initialization area.
+
+2005-01-21 Raphael Neider <rneider AT web.de>
+
+       * device/lib/Makefile.in: fixed test for pic16 install dir
+       * device/lib/pic16/*/Makefile*: modified compile flags to enable
+         optimizations
+       * doc/sdccman.lyx: updated banksel optimization, removed --flr-support and
+         added --optimize-goto compiler switch and pragma wparam documentation
+       * src/pic16/pcode.c (pic16_OptimizeBanksel): removed statistics dump
+       * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed copying of WREG, PRODL
+         and PRODH closing bug #1071770 (peephole optimizer)
+
 2005-01-19 Raphael Neider <rneider AT web.de>
 
        * src/SDCCglobl.h: ensure that PATH_MAX >= 2048 to guarantee