* src/SDCCmain.c (linkEdit): fixed bug 1609279
[fw/sdcc] / ChangeLog
index 776b37285a471b6c0f2945dde7605523199a7af6..a43f5b3c987540c675ae80e1b2aa1fd5907389f6 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,420 @@
+2006-12-06 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * src/SDCCmain.c (linkEdit): fixed bug 1609279
+       * .version: bumped to 2.6.2 because a) it's been a while
+         b) the linker sources have moved c) the preprocessor is upgraded
+
+2006-12-04 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
+
+       * support/regression/tests/snprintf.c: some checks
+       * lib/src/printf_large.c: %bc: read char instead of int from stack
+
+2006-12-03 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * device/include/mcs51/cc2430.h: inserted _XPAGE
+
+2006-12-02 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
+
+       * device/include/mcs51/cc2430.h: added
+
+2006-12-02 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * device/include/asm/default/features.h,
+       * device/include/asm/ds390/features.h,
+       * device/include/mcs51/at89s53.h,
+       * device/include/ser.h,
+       * device/include/ser_ir.h,
+       * device/include/serial.h: changed keywords to double underscore variants,
+         fixes bug 1590261 some more, thanks Steven Borley
+
+2006-12-01 Raphael Neider <rneider AT web.de>
+
+       * src/pic/pcode.c (register_reassign): do not crash on recursive code
+         but emit warning (recursion is not supported for pic14)
+
+2006-11-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
+
+       * src/mcs51/peeph.def: added 101.a,b (moves to int/long xdata)
+       * doc/sdccman.lyx: various small changes, acknowledged Sourceforge
+
+2006-11-30 Raphael Neider <rneider AT web.de>
+
+       * src/pic/device.c (dump_sfr): always emit symbols
+       * src/pic/glue.c (pic14printPublics): fixed typo
+
+2006-11-30 Raphael Neider <rneider AT web.de>
+
+       * src/pic/device.c (create_pic,ram_map): add memRange entries to PIC
+         (pic14_getSharebankSize, pic14_getSharebankAddress): replaced with
+         (pic14_hasSharebank,pic14_isShared,pic14_allRAMShared,
+          pic14_getSharedStack): NEW, evaluate the memRange entries to locate
+          a sharebank, use a non-shared bank for the stack if none available
+       * src/pic/device.h (struct memRange): added linked list next field,
+         added prototypes for above functions
+       * src/pic/ralloc.c (initStack): handle shared and banked stacks,
+         (typeRegWithIdx): accept fixed and unfixed stack registers
+       * src/pic/pcode.c (pCodeInitRegisters): use new functions to create
+         the stack, handle shared and banked stack (except for WSAVE),
+         (insertBankSel): removed useless optimization (will never fire),
+         (FixRegisterBanking): added optimization for devices with only one
+         possibly aliased bank of memory, like 16f84
+       * src/pic/glue.c (pic14_constructAbsMap): back to udata_ovr, as some
+         devices have no SHAREBANK in the linker script
+       * device/include/pic/pic14devices.txt: documented memmap
+       * device/lib/pic/libdev/Makefile.in: removed --stack-loc again
+
+2006-11-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+       * src/hc08/gen.c (transferRegReg, loadRegFromAop, forceStackedAop,
+         storeRegToAop, freeAsmop, genPlusIncr, genPlus, genPointerGetSetOfs,
+         genAnd, genOr, genXor, genLeftShiftLiteral, genRightShiftLiteral,
+         genhc08Code): switched most of the D (debug) macros to DD (detailed
+         debug) macros to better control clutter in the generated .asm file.
+       * src/hc08/gen.c: (forceStackedAop, genUminus, genLeftShift,
+         genRightShift): fixed bug with non-constant bit shift stored to
+         a volatile result (SF Open Discussion forum thread #1616749).
+         Single byte case is not yet optimized.
+
+2006-11-28 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * device/include/asm/mcs51/features.h,
+       * device/include/malloc.h,
+       * device/include/stdio.h: changed keywords to double underscore variants,
+         fixes bug 1590261
+
+2006-11-27 Borut Razem <borut.razem AT siol.net>
+
+       * support\cpp2\cppexp.c, support\cpp2\hashtable.h,
+         support\cpp2\Makefile.in, support\cpp2\cppfiles.c,
+         support\cpp2\output.h, support\cpp2\cppinit.c,
+         support\cpp2\cpplib.c, support\cpp2\cpplib.h,
+         support\cpp2\Makefile.bcc, support\cpp2\cpphash.c,
+         support\cpp2\cppdefault.c, support\cpp2\system.h,
+         support\cpp2\cpphash.h, support\cpp2\cpplex.c,
+         support\cpp2\cppdefault.h, support\cpp2\mbchar.c,
+         support\cpp2\prefix.c, support\cpp2\except.h,
+         support\cpp2\hwint.h, support\cpp2\cppmacro.c,
+         support\cpp2\line-map.h, support\cpp2\sdcpp.dsp,
+         support\cpp2\sdcc.h, support\cpp2\mkdeps.c,
+         support\cpp2\version.c, support\cpp2\cppmain.c,
+         support\cpp2\version.h, support\cpp2\hashtable.c,
+         support\cpp2\cpperror.c:
+         synchronized with GCC CPP release version 3.3.6,
+         the latest where cppmain.c still exists.
+       * support\cpp2\cpptrad.c, support\cpp2\sdcppmain.c,
+         support\cpp2\sdcppinit.c: added
+
+2006-11-27 Borut Razem <borut.razem AT siol.net>
+
+       * support/cpp2/cpplex.c:
+         fixed _asm ... _endasm handling bug, introduce with GCC CPP
+         synchronization
+       * support/cpp2/cpplib.c: removed definitions of unused variables
+
+2006-11-26 Borut Razem <borut.razem AT siol.net>
+
+       * support/cpp2/libiberty.h: commented out x*alloc() declarations
+         since they are redefined by macros in support/cpp2/sdcc.h
+       * support/cpp2/sdcc.h: x*alloc macro redefinition
+
+2006-11-25 Borut Razem <borut.razem AT siol.net>
+
+       * support/cpp2/cppexp.c, support/cpp2/hashtable.h,
+         support/cpp2/configure, support/cpp2/Makefile.in,
+         support/cpp2/cppfiles.c, support/cpp2/output.h,
+         support/cpp2/cppinit.c, support/cpp2/cpplib.c,
+         support/cpp2/config.h, support/cpp2/cpplib.h,
+         support/cpp2/Makefile.bcc, support/cpp2/cpphash.c,
+         support/cpp2/cppdefault.c, support/cpp2/config.in,
+         support/cpp2/system.h, support/cpp2/cpplex.c,
+         support/cpp2/cpphash.h, support/cpp2/mbchar.c,
+         support/cpp2/cppdefault.h, support/cpp2/prefix.c
+         support/cpp2/hwint.h, support/cpp2/mbchar.h,
+         support/cpp2/prefix.h, support/cpp2/cppmacro.c,
+         support/cpp2/configure.in, support/cpp2/intl.h,
+         support/cpp2/sdcpp.dsp, support/cpp2/acconfig.h,
+         support/cpp2/sdcc.h, support/cpp2/mkdeps.c,
+         support/cpp2/version.c, support/cpp2/cppmain.c,
+         support/cpp2/ansidecl.h, support/cpp2/libiberty.h,
+         support/cpp2/hashtable.c, support/cpp2/aclocal.m4,
+         support/cpp2/cpperror.c,
+         support/cpp2/libiberty/safe-ctype.c,
+         support/cpp2/libiberty/safe-ctype.h,
+         support/cpp2/libiberty/splay-tree.c,
+         support/cpp2/libiberty/obstack.c,
+         support/cpp2/libiberty/lbasename.c,
+         support/cpp2/libiberty/splay-tree.h,
+         support/cpp2/libiberty/obstack.h:
+         synchronized with GCC CPP release version 3.2.3,
+         the latest before integration of cpp into gcc
+       * support/cpp2/except.h, support/cpp2/line-map.c,
+         support/cpp2/line-map.h,
+         support/cpp2/libiberty/hex.c,
+         support/cpp2/libiberty/concat.c,
+         support/cpp2/libiberty/filenames.h: added
+       * support/cpp2/intl.c: deleted
+
+2006-11-24 Borut Razem <borut.razem AT siol.net>
+
+       * src/SDCC.y: enabled compilation of empty source file
+       * support/Util/SDCCerr.[ch]: added sdcc warning 190 -
+         "ISO C forbids an empty source file"
+       * device/lib/_startup.c, device/lib/printf_tiny.c: disable warning 190
+         if all the code is ifdefed out.
+
+2006-11-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+       * src/hc08/gen.c (genPcall): fix for bug #1601032
+
+2006-11-23 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * device/include/mcs51/c8051f000.h, device/include/mcs51/C8051F000.h,
+       * device/include/mcs51/c8051f018.h, device/include/mcs51/C8051F018.h,
+       * device/include/mcs51/c8051f020.h, device/include/mcs51/C8051F020.h,
+       * device/include/mcs51/c8051f040.h, device/include/mcs51/C8051F040.h,
+       * device/include/mcs51/c8051f060.h, device/include/mcs51/C8051F060.h,
+       * device/include/mcs51/c8051f120.h, device/include/mcs51/C8051F120.h,
+       * device/include/mcs51/c8051f200.h, device/include/mcs51/C8051F200.h,
+       * device/include/mcs51/c8051f300.h, device/include/mcs51/C8051F300.h,
+       * device/include/mcs51/c8051f310.h, device/include/mcs51/C8051F310.h,
+       * device/include/mcs51/c8051f320.h, device/include/mcs51/C8051F320.h,
+       * device/include/mcs51/c8051f326.h, device/include/mcs51/C8051F326.h,
+       * device/include/mcs51/c8051f330.h, device/include/mcs51/C8051F330.h,
+       * device/include/mcs51/c8051f340.h, device/include/mcs51/C8051F340.h,
+       * device/include/mcs51/c8051f350.h, device/include/mcs51/C8051F350.h,
+       * device/include/mcs51/c8051f410.h, device/include/mcs51/C8051F410.h:
+         Renamed to all upper case as per the standard set by SiLabs
+
+2006-11-23 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * device/include/mcs51/C8051F520.h: new, added
+       * device/include/mcs51/compiler.h: added link about predefined macros
+
+2006-11-23 Raphael Neider <rneider AT web.de>
+
+       * src/regression/Makefile: add -L path to fresh library
+       * src/regression/simulate: emphasize FAILED output
+       * src/regression/create_stc: output _failures from gpsim
+       * src/regression/compare4.c,
+       * src/regression/rotate6.c: fixed char literals,
+         all compile, all run =8-D
+
+       * src/pic/pcode.h: added isPCASMDIR macro
+       * src/pic/gen.c (genAnd): fixed bit offset
+       * src/pic/ralloc.c (allocNewDirReg,allocDirReg,allocRegByName,
+         packBits): unified register numbering schemes,
+         (newReg): do not insert stack registers into hash table,
+         (initStack): unpinned pseudo stack, simplified,
+         (typeRegWithIdx): fixed retrieval of stack registers,
+       * src/pic/pcode.c (addpCodeComment,sameBank): added,
+         (pCodeReplace): removed invalid assertion,
+         (insertPCodeInstruction): fixed newly added labels,
+         (insertBankSwitch,BankSelect,IsBankChange,DoBankSelect,
+         FixRegisterBankingInFlow,compareBankFlow,FixBankFlow,
+         DumpFlow): removed unsed (broken?) code,
+         (insertBankSel): prevent STATUS from being BANKSELed,
+         (FixRegisterBanking): rewritten from scratch, implemented generic
+           optimizations (suppress BANKSELs to same register and to registers
+           present in all banks),
+         (AnalyzeBanking): update flow after BANKSELection
+
+       * src/pic/glue.c (pic14_constructAbsMap): emit pseudo stack in
+           sharebank, let linker place it, mark STKxx symbols as emitted
+
+2006-11-21 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
+
+       * src/regression/arrays.c,
+       * src/regression/bank1.c,
+       * src/regression/bool2.c,
+       * src/regression/compare7.c,
+       * src/regression/compare8.c,
+       * src/regression/compare9.c,
+       * src/regression/compare10.c,
+       * src/regression/configword.c,
+       * src/regression/for.c,
+       * src/regression/mult1.c,
+       * src/regression/pointer1.c,
+       * src/regression/rotate6.c,
+       * src/regression/string1.c,
+       * src/regression/struct1.c,
+       * src/regression/Makefile: make PIC14 regression tests run again
+         (3 fail, 6 won't compile)
+
+2006-11-21 Raphael Neider <rneider AT web.de>
+
+       * device/include/pic16/pic18f4550.h,
+       * device/include/pic16/pic18f4455.h,
+       * device/lib/pic16/libdev/pic18f4550.c,
+       * device/lib/pic16/libdev/pic18f4455.c: fixed #1578591 and #1595144
+       * configure.in: removed superfluous closing bracket
+
+2006-11-21 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
+
+       * device/lib/expf.c: Fixed bug 1599523: result of expf(x) is
+         always positive.
+
+2006-11-21 Raphael Neider <rneider AT web.de>
+
+       * src/pic/device.{c,h}: added pic14_getPIC()
+       * src/pic/gen.c (continueIfTrue,jumpIfTrue): added PIC code,
+         (genAnd): added PIC code for one case, fixes #1597044
+       * src/pic/pcode.c (BankSelect): Ohoh, added generic optimization for
+         SFRs that are present in all banks (e.g., STATUS)
+
+2006-11-20 Raphael Neider <rneider AT web.de>
+
+       * src/pic/pcode.c: changed inverted ops for DECFSZ/DECFSZW and
+         INCFSZ/INCFSZW and declared them as changing Z bit,
+         (insertPCodeInstruction): correctly invert the above instructions,
+         fixes #1599333,
+         (DoBankSelect): don't panic on po_immediates
+
+2006-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * as/link/aslink.h,
+       * as/link/mcs51/lkihx.c (newArea),
+       * as/link/mcs51/lkrloc.c: renamed newArea() to ihxNewArea()
+       * as/link/mcs51/lkihx.c (ihx): output reset vector as start address
+
+2006-11-11 Raphael Neider <rneider AT web.de>
+
+       * src/pic/pcode.c (newpCodeOpBit): search SymbolTab for referenced
+         bitfield symbols, fixes #1579535 (once more...).
+
+2006-11-09 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
+
+       * support/regression/generate-cases.py,
+       * support/regression/fwk/include/testfwk.h,
+       * support/regression/fwk/lib/testfwk.c: used code pointers,
+         (about 50kByte less code generated for mcs51)
+
+2006-11-06 Borut Razem <borut.razem AT siol.net>
+
+       * debugger/mcs51/acinclude.m4, debugger/mcs51/aclocal.m4,
+         debugger/mcs51/configure: fixed failed check because the function
+         rl_function_of_keyseq isn't in Readline 5.2. Thanks to Ilya Goldberg
+         who submitted the patch for gpsim.
+       * debugger/mcs51/configure.in: removed the result message
+       * debugger/mcs51/Makefile.in: fixed the config.status warning
+         "... seems to ignore the --datarootdir setting"
+
+2006-11-03 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * device/include/mcs51/c8051f020.h,
+       * device/include/mcs51/c8051f040.h,
+       * device/include/mcs51/c8051f060.h,
+       * device/include/mcs51/c8051f120.h: added PS0, fixed bug 1589279
+       * src/z80/gen.c (gencjneshort),
+       * src/z80/peeph.def: applied patch 1571373, thanks Philipp Krause
+
+2006-10-31 Borut Razem <borut.razem AT siol.net>
+
+       * debugger/mcs51/acinclude.m4, debugger/mcs51/aclocal.m4,
+         debugger/mcs51/configure: get readline version
+
+2006-10-30 Borut Razem <borut.razem AT siol.net>
+
+       * debugger/mcs51/sdcdb.c: replaced hardcoded "/" with DIR_SEPARATOR_STRING
+       * debugger/mcs51/acinclude.m4, debugger/mcs51/aclocal.m4,
+         debugger/mcs51/configure: locate readline even when cross compiling
+       * support/scripts/sdcc.nsi: include readline5.dll into the setup package
+
+2006-10-29 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
+
+       * device/include/mcs51/serial_IO.h: putchar() and getchar() using
+         serial port.
+
+2006-10-29 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * device/include/malloc.h,
+       * device/lib/calloc.c,
+       * device/lib/free.c,
+       * device/lib/malloc.c,
+       * device/lib/realloc.c: moved definition of struct into sources
+       * support/regression/tests/malloc.c: use void* for init_dynamic_memory()
+
+2006-10-29 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * as/asx8051.dsp: corrected output directories
+       * as/link/hc08: new directory for hc08 linker
+       * as/hc08/aslink.h,             as/link/aslink.h,
+       * as/hc08/aslink.mak,           as/link/hc08/aslink.mak,
+       * as/hc08/clean.mk,             as/link/hc08/clean.mk,
+       * as/hc08/link_hc08.dsp,        as/link/hc08/link_hc08.dsp,
+       * as/hc08/lkaomf51.c,           as/link/hc08/lkaomf51.c,
+       * as/hc08/lkarea.c,             as/link/hc08/lkarea.c,
+       * as/hc08/lkdata.c,             as/link/hc08/lkdata.c,
+       * as/hc08/lkelf.c,              as/link/hc08/lkelf.c,
+       * as/hc08/lkihx.c,              as/link/hc08/lkihx.c,
+       * as/hc08/lklibr.c,             as/link/hc08/lklibr.c,
+       * as/hc08/lkmain.c,             as/link/hc08/lkmain.c,
+       * as/hc08/lkmem.c,              as/link/hc08/lkmem.c,
+       * as/hc08/lkrloc.c,             as/link/hc08/lkrloc.c,
+       * as/hc08/lks19.c,              as/link/hc08/lks19.c,
+       * as/hc08/Makefile.aslink,      as/link/hc08/Makefile.aslink,
+       * as/hc08/Makefile.bcc,         as/link/hc08/Makefile.bcc,
+       * as/hc08/Makefile.in,          as/link/hc08/Makefile.in,
+       * as/link/hc08/conf.mk,
+       * configure,
+       * configure.in,
+       * Makefile.in,
+       * sdcc.dsw: moved hc08 linker to as/link/hc08
+       * as/hc08/lkeval.c,     as/link/mcs51/lkeval.c,     as/link/lkeval.c,
+       * as/hc08/lkhead.c,     as/link/mcs51/lkhead.c,     as/link/lkhead.c,
+       * as/hc08/lklex.c,      as/link/mcs51/lklex.c,      as/link/lklex.c,
+       * as/hc08/lklist.c,     as/link/mcs51/lklist.c,     as/link/lklist.c,
+       * as/hc08/lknoice.c,    as/link/mcs51/lknoice.c,    as/link/lknoice.c,
+       * as/hc08/lksym.c,      as/link/mcs51/lksym.c,      as/link/lksym.c,
+       * as/link/mcs51/aslink.dsp,
+       * as/link/mcs51/Makefile.in: factored out the common files
+       * as/hc08/lkstore.c: deleted, use the one already in as/link/
+       * as/clean.mk: extra cleaning common files
+       * as/link/mcs51/strcmpi.c,      as/strcmpi.c: moved
+       * as/link/mcs51/strcmpi.h: deleted, moved protoype to aslink.h
+       * as/mcs51/asm.h: include sdccconf.h or sdcc_vc.h
+
+2006-10-29 Raphael Neider <rneider AT web.de>
+
+       * src/pic/ralloc.c (newReg): create aliases for registers with
+         multiple names to fix #1579535 and #1584001,
+         (regWithIdx,dirregWithName): resolve aliases on lookup
+       * src/pic/pcode.c (DoBankSelect): die with error message on failing
+         bankselect
+       * device/lib/pic/libdev/Makefile.in: move pseudo stack down to 0x4f
+         to prevent build errors on small devices
+
+2006-10-28 Raphael Neider <rneider AT web.de>
+
+       * src/pic/gen.c (genFunction,genCall): drop "same code page"
+         assumption within interrupt handlers, fixes #1584940
+       * src/pic/glue.c (pic14_constructAbsMap): mark absolute symbols as
+         "emitted" to avoid emitting them again in udata
+
+2006-10-27 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
+
+       * device/lib/_putchar.c, device/lib/_getchar.c, device/lib/inituart.c:
+       Removed.
+
+2006-10-26 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
+
+       * device/lib/_putchar.c, device/lib/_getchar.c, device/lib/inituart.c:
+       Initialize uart only if SM0 and SM1 are zero.  Also, use flag to turn
+       on/off CR to CRLF conversion.
+
+2006-10-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
+
+       * doc/sdccman.lyx: updated IRQ section
+
+2006-10-24 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
+
+       * device/lib/serial_io.c: removed
+       * device/lib/_putchar.c, device/lib/_getchar.c, device/lib/inituart.c
+       replacements for serial_io.c
+
+2006-10-24 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * src/z80/main.c (_process_pragma, _parseOptions): fixed bug 1583318
+
 2006-10-24 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
 
        * device/lib/serial_io.c: Default putchar() and getchar() for
 
 2006-10-20 Borut Razem <borut.razem AT siol.net>
 
-       * sebugger/mcs51/sdcdb.c: replaced isblank() with isspace()
+       * debugger/mcs51/sdcdb.c: replaced isblank() with isspace()
 
 2006-10-19 Maarten Brock <sourceforge.brock AT dse.nl>