* support/regression/fwk/lib/testfwk.c: printn is recursive and thus needs
[fw/sdcc] / ChangeLog
index 95d26821e55ff4d13dcc435b513cf7ca635e61d1..1601103611e1fa2484255105b3a92ca9b67c3108 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,505 @@
+2003-11-08 Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+       * support/regression/fwk/lib/testfwk.c: printn is recursive and thus needs
+       the reentrant attribute.
+       * src/hc08/gen.c (genPackBits): added missing stack readjustment
+       * sim/ucsim/hc08.src/inst.cc (inst_mov): fixed bugs with mov instruction
+       simulation
+       * src/SDCCast.c (decorateType): fixed bug with storage class not being
+       updated during pointer dereference; f.e. ~(((char *)1)*) was being
+       erroneously reduced to a literal.
+       * src/hc08/ralloc.c (packRegisters, rematStr),
+       * src/hc08/gen.c (aopForRemat): allow literals to be rematerialized in
+       some cases
+
+2003-11-08 Frieder Ferlemann <Frieder.Ferlemann@web.de>
+
+       * src/mcs51/main.c: fixed bug #838385. Thanks to Josef Pavlik for finding and fixing
+       * doc/sdccman.lyx: changed from 'article' to 'book'
+       * doc/Makefile: readded test_suite_spec and cdbfileformat
+
+2003-11-08 Bernhard Held <bernhard@bernhardheld.de>
+
+       * device/include/stdlib.h: include malloc.h to comply with ANSI
+       * support/regression/tests/malloc.c: include stdlib.h instead of malloc.h
+
+2003-11-07 Frieder Ferlemann <Frieder.Ferlemann@web.de>
+
+       * doc/Makefile: sdccman.pdf should build with correct references (more info in commit msg)
+       * doc/clean.mk: also remove *.out files
+       * doc/sdccman.lyx: some additions, larger top/bottom margins
+
+2003-11-07 Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+       * src/SDCC.y: fixed bug #837365
+       * support/regression/tests/bitopcse.c
+       * src/hc08/gen.c (genPointerGet): Don't assume pointer operand is
+       a symbol (might be valop instead)
+       * device/lib/Makefile.in: added errno.c to HC08SOURCES
+       * device/lib/clean.mk: added hc08 to the cleaning list
+
+2003-11-04  Borut Razem <borut.razem@siol.net>
+
+       * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h: reverted changes,
+         made 2003-11-04
+       * support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
+         as/z80/aslist.c, as/z80/assym.c: removed inclusion of nonstandard malloc.h;
+         malloc is declared in standard stdlib.h
+
+2003-11-06 Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+       * device/lib/hc08/Makefile: need to clean .rel not .o files
+       * src/hc08/gen.c (genDjnz): can't use djnz with extended addressing mode
+
+2003-11-06 Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+       * src/port.h,
+       * src/hc08/main.c,
+       * src/mcs51/main.c,
+       * src/ds390/main.c,
+       * src/z80/main.c,
+       * src/avr/main.c,
+       * src/pic/main.c,
+       * src/pic16/main.c,
+       * src/xa51/main.c: added hasExtBitOp & oclsExpense functions to ports
+       * src/SDCCicode.c: changed several IS_FARSPACE tests to isOclsExpensive
+       tests (which uses the port's oclsExpense function)
+       * src/SDCC.y,
+       * src/SDCCast.c,
+       * src/SDCCicode.c,
+       * src/hc08/gen.c,
+       * src/ds390/gen.c,
+       * src/mcs51/gen.c: added support for the SWAP iCode (RFE #834167)
+
+2003-11-04 Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+       * src/SDCCcse.c (ifxOptimize),
+       * src/SDCClabel.c (labelIfx, deleteIfx): When the condition to
+       an IFX iCode is volatile, convert to DUMMY_READ_VOLATILE instead
+       deleting the IFX iCode.
+       * src/hc08/ralloc.c: reduced unneeded slocs
+       * src/hc08/gen.c: fixed bug in asmopToBoolean
+
+2003-11-04  Borut Razem <borut.razem@siol.net>
+
+       * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h,
+         support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
+         as/z80/aslist.c, as/z80/assym.c: decision to include malloc.h
+         transferred to configure
+
+2003-11-03 Bernhard Held <bernhard@bernhardheld.de>
+
+       Use headers defined in the C[++] standards:
+       * sim/ucsim/gui.src/serio.src/fileio.cc
+       * sim/ucsim/gui.src/serio.src/frontend.cc
+       * sim/ucsim/gui.src/serio.src/main.cc
+       * sim/ucsim/gui.src/serio.src/posix_signal.cc
+       * support/Util/NewAlloc.c
+       * as/hc08/lklibr.c
+       * as/mcs51/lklibr.c
+       * as/z80/aslist.c
+       * as/z80/assym.c
+
+2003-11-03  Jesus Calvino-Fraga <jesusc@ece.ubc.ca>
+
+       * Added MSVC projects for hc08 assembler and linker:
+       all.dsp, config.dsp, sdcc.dsw, /as/hc08/as_hc08.dsp,
+       /as/hc08/link_hc08.dsp
+
+2003-11-03 Martin Helmling <Martin.Helmling@octo-soft.de>
+
+        * debugger/mcs51/cmd.c: allows filename starting with digit(+ some debug)
+
+2003-11-02 Bernhard Held <bernhard@bernhardheld.de>
+
+        * src/SDCCmain.c (linkEdit): "fixed" again bug #833605
+
+2003-11-01 Frieder Ferlemann <Frieder.Ferlemann@web.de>
+
+       * src/mcs51/main.c: xdata initialization is 13 bytes shorter now
+
+2003-10-31  Borut Razem <borut.razem@siol.net>
+
+       * support/cpp2/cpplib.h,
+         support/cpp2/cpplib.c,
+         support/cpp2/cpplex.c,
+         support/cpp2/cppinit.c: introduced #pragma preproc_asm [ + | - ]
+         to switch _asm block preprocessing on / off. Default is
+         #pragma preproc_asm +
+
+2003-10-31  Borut Razem <borut.razem@siol.net>
+
+       * support/cpp2/cpplex.c: Fixed _WIN32 problem with CR-CR-LF sequences
+         when outputting comment blocks (when executed with -C option) and
+         _asm (SDCPP specific) blocks
+
+2003-10-31 Erik Petrich <epetrich@ivorytower.norman.ok.us>
+       
+       * as/hc08/lkrloc.c (relr): Fixed ihx output, fixed lastAreaIndex warning
+
+2003-10-31 Klaus Flittner <klaus_flittner@gmx.de>
+
+       * src/SDCCcse.c (updateSpillLocation): fixed bug #808027
+
+2003-10-31 Bernhard Held <bernhard@bernhardheld.de>
+
+       * src/SDCCmain.c (linkEdit): "fixed" bug #833605
+       * src/SDCCast.c (decorateType): fixed bug #832664
+
+2003-10-31  Borut Razem <borut.razem@siol.net>
+
+       * support\cpp2\cpplex.c: fixed for SDCPP:
+         comments(when executed with -C option) and _asm blocks
+         were included even if they where in skipped #if block.
+         Applied solution from GCC cpp 3.3.2
+
+2003-10-31  Borut Razem <borut.razem@siol.net>
+
+       * src/SDCC.lex: sdcc now understands both formats:
+         '# <line_number> <file_name>' and
+         '#line <line_number> <file_name>'
+       * support/cpp2/cppmain.c: sdcpp now generates the standard
+         '# <line_number> <file_name>' instead of former
+         '#line <line_number> <file_name>'
+
+2003-10-30  Borut Razem <borut.razem@siol.net>
+
+       * support/cpp2/cpphash.h,
+       * support/cpp2/cpplib.h
+       * support/cpp2/cpplex.c,
+       * support/cpp2/cppmain.c,
+       * support/cpp2/cppinit.c: fixed bug #828015 - Syntax variation for _asm character constants
+
+2003-10-30 Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+       Fixed a number of problems revealed by bug #827883.
+       * src/SDCCloop.c (loopInvariants): Spill location of the
+       result operand should be recomputed if extracted from
+       a loop. Also, don't extract assignments of an iTemp
+       from a literal.
+       * src/SDCCast.c (isConformingBody): loop reversal should
+       not occur if the control variable is involved with a
+       relational operator.
+
+2003-10-28 Bernhard Held <bernhard@bernhardheld.de>
+
+       * .version: bumped to 2.3.6 to reflect the big improvements
+       made by Erik and Klaus. Thanks!
+
+2003-10-28 Klaus Flittner <klaus_flittner@gmx.de>
+
+       Replaced the livrange code.
+       * src/SDCClrange.c: added new LR code
+       * src/SDCCloop.c,
+       * src/SDCCBBlock.h: removed remainig parts from old LR code
+       * src/ds390/ralloc.c,
+       * src/ds390/gen.c: minor fixes to make it work with new code
+
+2003-10-28 Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+       * as/hc08/asm.h,
+       * as/hc08/lkrloc.c,
+       * src/hc08/gen.c,
+       * src/hc08/ralloc.c: Fix various warnings related to the hc08
+       * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): Fixed bug #829717
+       (tweaked fix for bug #818696)
+
+2003-10-23 Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+       * src/z80/ralloc.c (joinPushes): Fixed bug #828742
+
+2003-10-23 Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+       * src/SDCCmain.c,
+       * sdccconf_in.h: Fixed bug #828387 (--disable-hc08-port didn't work)
+       * src/mcs51/gen.c (gencjneshort),
+       * src/ds390/gen.c (gencjneshort): Made comparison with AOP_IMMD operand
+       more efficient (per Scott Bronson's suggestion)
+
+2003-10-22 Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+       Extended the semantics of the critical keyword to include
+       individual statements. See RFE #827755 and #799831
+       * src/SDCC.y
+       * src/SDCCicode.c
+       * src/SDCCopt.c
+       * src/SDCCast.c
+       * support/Util/SDCCerr.c
+       * support/Util/SDCCerr.h
+       * src/mcs51/gen.c
+       * src/ds390/gen.c
+       * src/hc08/gen.c
+
+2003-10-19  Borut Razem <borut.razem@siol.net>
+
+       * src/SDCC.lex: fixed bug #825944 - defined yytext_ptr to make it compile with flex 2.5.31
+
+2003-10-19 Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+       * src/SDCCicode.c (geniCodePreInc, geniCodePreDec, ast2iCode):
+       Fixed bug #818696
+       * src/SDCCast.c (ast_print): Fixed --dumptree so that preincrement
+       and predecrement operand is displayed
+
+2003-10-13 Bernhard Held <bernhard@bernhardheld.de>
+
+       * src/SDCCval.c (valMinus): fixed bug #826041
+
+2003-10-15 Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+       Some hc08 related updates that I missed earlier
+       * sim/ucsim/stypes.h
+        * support/regression/ports/hc08/spec.mk
+
+2003-10-15 Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+       New target "hc08" for the Motorola 68hc08 family of micros
+
+       * configure
+       * configure.in
+       * Makefile
+       * src/hc08/*
+       * src/SDCCmain.c
+       * src/port.h
+       * sim/ucsim/hc08.src/*
+       * sim/ucsim/configure.in
+       * src/ucsim/configure
+       * sim/ucsim/packages_in.mk
+       * as/hc08/*
+       * as/Makefile
+       * device/include/mc68hc908qy.h
+       * device/lib/hc08/*
+       * device/lib/Makefile.in
+       * support/regression/ports/hc08/*
+       * support/regression/Makefile
+
+2003-10-14 Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+       * src/z80/gen.c: fixed bug revealed by ast_constant_folding.c
+       regression test
+       * src/ds390/gen.c (genCast): fixed bug #821957
+
+2003-10-13 Bernhard Held <bernhard@bernhardheld.de>
+
+       * device/lib/logf.c: "fixed" overlay bug
+       * support/regression/ports/host/spec.mk: added m library
+       * support/regression/ports/mcs51-stack-auto/spec.mk: added float funcs
+       * support/regression/tests/float_trans: added (for Eric)
+
+2003-10-12 Bernhard Held <bernhard@bernhardheld.de>
+
+       * src/mcs51/gen.c (genCpl): fixed bug
+       http://sf.net/mailarchive/message.php?msg_id=6263915
+
+2003-10-10 Bernhard Held <bernhard@bernhardheld.de>
+
+       * src/SDCCast.c (decorateType): added extended constant folding
+       * src/SDCCsymt.c (computeType): cleanup
+       * src/SDCCval.c (valShift): minor optimization
+       * support/regression/tests/ast_constant_folding.c: added
+
+2003-10-09  Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+       * src/SDCCmain.c: removed some unintended changes
+
+2003-10-09  Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+       * src/SDCCmain.c (setParseWithComma): fixed bug #816685
+       * src/z80/gen.c: fixed part of bug #817589
+       * src/SDCCsymt.c (checkFunction): fixed bug #817895
+
+2003-10-08 Bernhard Held <bernhard@bernhardheld.de>
+
+       Replaced cast (void **) with (void *) to avoid gcc 3 warning:
+       * src/SDCCcflow.c
+       * src/SDCCcse.c
+       * src/SDCCdflow.c
+       * src/SDCClabel.c
+       * src/SDCClrange.c
+       * src/SDCCmem.c
+       * src/SDCCopt.c
+       * src/SDCCpeeph.c
+       * src/SDCCset.c
+       * src/avr/ralloc.c
+       * src/ds390/ralloc.c
+       * src/izt/ralloc.c
+       * src/mcs51/ralloc.c
+       * src/pic/ralloc.c
+       * src/pic16/ralloc.c
+       * src/xa51/ralloc.c
+       * src/z80/ralloc.c
+       * src/z80/gen.c: removed unused label "release:"
+
+2003-10-06  Borut Razem <borut.razem@siol.net>
+
+       * src/SDCC.lex: removed definition of unused variables
+         save_optimize and save_options
+
+2003-10-06 Bernhard Held <bernhard@bernhardheld.de>
+
+       * clean.mk: removed '=' in "-maxdepth=1"
+       * src/SDCCloop.c: replace LRKLAUS with SDCC_LRKLAUS
+       * src/SDCClrange.c: replace LRKLAUS with SDCC_LRKLAUS
+
+2003-10-06  Borut Razem <borut.razem@siol.net>
+
+       * src/SDCC.lex, src/SDCC.lex: use dbuf for "_asm" definitions;
+         my_unput() replaced by unput()
+
+2003-10-05 Bernhard Held <bernhard@bernhardheld.de>
+
+       * src/SDCCloop.c (assignmentsToSym, loopInduction): cast argument of
+       setToNull() to (void *) to avoid gcc3.x's warning: "dereferencing
+       type-punned pointer will break strict-aliasing rules"
+       Old LR behaviour is again default; Klaus' LR can be choosen by
+       defining the environment variable LRKLAUS
+       * src/SDCCBBlock.h
+       * src/SDCCloop.c
+       * src/SDCClrange.c
+       * src/ds390/ralloc.c (spillThis): applied Klaus' patch
+       * clean.mk: fixed removal of files in bin/CVS/
+       * device/lib/clean.mk: fixed removal of directories small and large
+       * support/Util/SDCCerr.c: changed W_INT_OVL to ERROR_LEVEL_PEDANTIC
+       * src/SDCCicode.c,
+       * src/SDCCval.c: removed superflous test for pedantic
+
+2003-10-05  Borut Razem <borut.razem@siol.net>
+
+       * src/SDCC.lex, support/Util/SDCCerr.c, sdcc/support/Util/SDCCerr.h:
+         Fixed bug #816692: introduced new ERROR_LEVEL_PEDANTIC warning
+         message "unmatched #pragma SAVE and #pragma RESTORE"
+
+2003-10-04  Frieder Ferlemann <Frieder.Ferlemann@web.de>
+
+       * doc/sdccman.lyx: various additions and updates (interrupts, inline
+         assembly, critical functions, atomic, nojtbound)
+
+2003-10-04 Bernhard Held <bernhard@bernhardheld.de>
+
+       Applied liferange patch from Klaus Flittner <klaus_flittner@gmx.de>
+       * src/SDCCBBlock.h
+       * src/SDCCloop.c
+       * src/SDCCloop.h
+       * src/SDCClrange.c
+
+2003-10-03  Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+       * src/z80/gen.h,
+       * src/z80/gen.c (aopOp, aopGet, aopPut, genDummyRead),
+       * src/mcs51/gen.h
+       * src/mcs51/gen.c (aopOp, aopGet, aopPut, genDummyRead),
+       * src/ds390/gen.h
+       * src/ds390/gen.c (aopOp, aopGet, aopPut, genDummyRead),
+       * src/SDCCicode.c (ast2iCode, geniCodeDummyRead): Fixed bug #663539
+       * src/SDCCopt.c (killDeadCode): Fixed bugs #663539 & #816705
+
+2003-10-02  Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+       * src/z80/gen.c (genRet): fixed bug #524753
+       * src/z80/gen.c (genCast): fixed internal error on cast from
+       pointer to long
+       * src/z80/gen.c (_saveRegsForCall, emitCall): adapted Johan's
+       fix for bug #477835 to the z80
+       * src/z80/gen.c (genZ80code, _vemit2, _emit2): added support
+       for tracking iCodes in the peephole optimizer for z80
+
+2003-10-01  Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+       * src/SDCCicode.c (geniCodeJumpTable, geniCodeSwitch): fixed
+       the other part of bug #814548
+       * src/SDCCpeeph.c (labelInRange): fixed bug #814558
+
+2003-09-30  Bernhard Held <bernhard@bernhardheld.de>
+
+       * src/SDCCcse.c: fixed part of bug #814548
+
+2003-09-28  Borut Razem <borut.razem@siol.net>
+
+       * src/asm.c: rewrite of printILine() to use temporary file instead
+         a pipe
+       * src/xa51/main.c: commented out declaration of int rewinds
+
+2003-09-27  Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+       * src/SDCCicode.c (geniCodeJumpTable): Fixed bug #813206
+
+2003-09-26  Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+       * src/SDCCdflow.c (computeDataFlow): Fixed bug #810746
+       * src/asm.c (printILine): Fixed bug #811015
+
+2003-09-22  Jesus Calvino-Fraga <jesusc@ece.ubc.ca>
+
+       *link/z80/lklibr.c, as/mcs51/lklibr.c: Improved memory allocation and
+       freeing.
+
+2003-09-21  Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+       * src/z80/gen.c (setupToPreserveCarry): Fixed bug #796955
+       * src/z80/gen.c (setupPair, genMovePairPair): Fixed setupPair
+       to correctly handle general case of AOP_PAIRPTR
+       * src/z80/gen.c (aopGet, aopPut): Generalized AOP_PAIRPTR handling
+
+2003-09-21  Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+       * src/mcs51/ralloc.c (fillGaps),
+       * src/ds390/ralloc.c (fillGaps): fixed bug #810093 (yet another
+       register positioning bug)
+
+2003-09-21  Bernhard Held <bernhard@bernhardheld.de>
+
+       * device/lib/_fsdiv.c: replaced (1<<31) by (1ul<<31)
+
+2003-09-19  Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+       * src/mcs51/gen.c (loadDptrFromOperand, genFarPointerGet,
+       genCodePointerGet, genGenPointerGet, genFarPointerSet,
+       genGenPointerSet): handle AOP_DPTR correctly when loading dptr
+       (ralloc doesn't intentionally do this now, but perhaps later)
+       * src/mcs51/ralloc.c (serialRegAssign, fillGaps),
+       * src/ds390/ralloc.c (serialRegAssign, fillGaps): fixed some
+       register positioning bugs (Fixed bug #762602 and #795325)
+       * src/SDCCicode.c (geniCodeDerefPtr): Track output class correctly
+       (Fixed bug #808779)
+       * src/z80/gen.c: increased _vemit2's buffer[] to handle long
+       lines that --i-code-in-asm generates
+
+2003-09-18  Jesus Calvino-Fraga <jesusc@ece.ubc.ca>
+
+       *link/z80/lklibr.c, as/mcs51/lklibr.c: Fixed Linux segfaults when
+       trying to fclose a FILE* that was already closed.
+
+2003-09-18  Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+       * src/SDCCsymt.c (structElemType): fixed bug #808291 (members
+       of const struct should be treated as if const themselves)
+
+2003-09-18  Bernhard Held <bernhard@bernhardheld.de>
+
+       * src/SDCCval.c (valPlus, valMinus): fixed bug #808337
+
+2003-07-06  Jesus Calvino-Fraga <jesusc@ece.ubc.ca>
+
+       * support/librarian/sdcclib.c: Generate correct offsets for libraries with
+       Unix (/n) and DOS (/r/n) line terminations.
+
+2003-09-17  Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+       * src/SDCCopt.c (cnvFromFloatCast, cnvToFloatCast): fixed
+       bug #613775
+
+2003-09-16  Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+       * src/mcs51/gen.c (genFunction, genEndFunction),
+       * src/ds390/gen.c (genFunction, genEndFunction): Moved save
+       and restore of EA so that stack offsets to parameters are
+       correct when using both critical and reentrant/stack-auto.
+       * src/z80/gen.c (aopOp): removed erroneous assertion about sloc
+       size (can be triggered in error if sloc is shared between
+       different sized objects)
+       * device/include/float.h: fixed macros to explicitly use
+       unsigned long where needed
+
 2003-09-15  Bernhard Held <bernhard@bernhardheld.de>
 
        Feature req. 799831: added code to allow nesting of critical functions