* as/mcs51/lkarea.c (lnkarea2): clear new xdatamap, bugfix for two
[fw/sdcc] / ChangeLog
index 6608f8000663c7501e7d402e1eddb91277e8f0a8..7b736d0c1c064b31f83fa91304936db56f0f8066 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,348 @@
+2006-06-13 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * as/mcs51/lkarea.c (lnkarea2): clear new xdatamap, bugfix for two
+         consecutive abs areas
+         (find_empty_space, allocate_space): added map to handle codemap or
+          xdatamap,
+         (lnksect2): renamed rloc to locIndex, fixed bug 960060 by handling
+          absolute idata and xdata
+       * as/mcs51/lkmem.c (summary2): updated legend
+
+2006-06-16 Raphael Neider <rneider AT web.de>
+
+       * src/pic16/gen.c (shiftR2Left2Result): fixed bug #1507127
+
+2006-06-13 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * debugger/mcs51/cmd.c (cmdListFunctions): fixed bugs 1181163 and
+         1208515
+       * src/SDCClrange.c (findPrevUse): fixed bug 1294475
+
+2006-06-13 Vangelis Rokas <vrokas AT users.sourceforge.net>
+
+       * src/port.h (struct PORT): added field gp_tags, to hold the tag
+       value of generic pointers,
+       * src/avr/main.c,
+         src/ds390/main.c,
+         src/hc08/main.c,
+         src/izt/i186.c,
+         src/izt/tlcs900h.c,
+         src/mcs51/main.c,
+         src/pic/main.c,
+         src/pic16/main.c,
+         src/xa51/main.c,
+         src/z80/main.c: PORT structure, added elements for gp_tags field,
+       * src/SDCCsymt.h: replaced hardwired values of GPTYPE_* macros with
+       fields in the PORT structure of each port,
+       * src/SDCCast.c (decorateType): allow processing of generic pointers
+       for PIC16 port (FPTRSIZE equals GPTRSIZE), also set GPTYPE_NEAR for
+       S_FIXED symbols
+
+2006-06-12 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * link/z80/lkgb.c,
+       * link/z80/lkgg.c,
+       * src/pic16/gen.c,
+       * src/pic16/main.c,
+       * src/pic16/pcode.c,
+       * src/pic/main.c,
+       * src/pic/pcoderegs.c,
+       * src/SDCCicode.c,
+       * src/SDCCmain.c,
+       * src/SDCCsymt.c: replaced all exit(-1) by exit(EXIT_FAILURE) to fix
+         bug 1504689 on minGW
+
+2006-06-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
+
+       * device/lib/printf_tiny.c: fixed bug #1465675 (%x format specifier)
+
+2006-06-12 Bernhard Held <bernhard AT bernhardheld.de>
+
+       * src/SDCCast.c (backPatchLabels): fixed bug #1504636
+
+2006-06-11 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * device/lib/printf_large.c (OUTPUT_CHAR, _output_char): added and used
+         for optimization
+
+2006-06-11 Vangelis Rokas <vrokas AT users.sourceforge.net>
+
+       * src/pic16/gen.c (genCast): fixed bug with assignment of a pointer
+       to a char variable. Fixed bug #1504211
+       * device/include/pic16/adc.h,
+       device/include/lib/pic16/libio/adc/adcopen.c: applied patch #1364387
+       and fixed bug #1364390
+
+2006-06-10 Borut Razem <borut.razem AT siol.net>
+
+       * CVSROOT: removed the CVS left-over
+
+2006-06-10 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * as/hc08/asmain.c (asexit),
+       * as/hc08/lkmain.c (lkexit),
+       * as/mcs51/asmain.c (asexit),
+       * as/mcs51/lkmain.c (lkexit),
+       * src/SDCCglue.c (DEFSETFUNC),
+       * src/SDCCmain.c (linkEdit, assemble),
+       * support/librarian/sdcclib.c (AddRel),
+         replaced unlink() by standard C remove()
+       * src/SDCC.y: replaced removePostIncDecOps() by createRMW()
+       * src/SDCCast.c (replaceAstWithTemporary, createRMW,
+         gatherImplicitVariables): new, added to fix bug 608752,
+         (createFunction): added gatherImplicitVariables()
+       * src/SDCCast.h: added createRMW prototype
+       * src/SDCCsymt.h (struct symbol): added infertype
+       * support/regression/tests/bug608752.c: new, added
+
+2006-06-10 Raphael Neider <rneider AT web.de>
+
+       * src/pic16/gen.c (pic16_aopOp): use WREG as destination even for
+         multibyte dummy reads (fixes #1503234)
+
+2006-06-10 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * device/include/mcs51/compiler.h: new, added header file to enable
+         creating common sfr definition header files for different compilers
+
+2006-06-05 Raphael Neider <rneider AT web.de>
+
+       * src/pic16/{pcode.h,genarith.c}:
+         introduced pCodeOp combining any two pCodeOps (previously only
+         two register operands could be combined), removed pcop2 from
+         pCodepReg, replaced pCodeOpReg2 with pCodeOp2, fixes #1492366
+       * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): added case for PO_TWO_OPS
+       * src/pic16/gen.c (pic16_popGet2,pic16_popGet2p,pic16_popCombine2):
+         rewritten to use new PO_TWO_OPS
+       * src/pic16/main.c (_hasNativeMulFor): cover more cases natively,
+       * src/pic16/pcode.c (pic16_newpCodeOpImmd): initialize rIdx field,
+         (pic16_newpCodeOp): catch invalid attempts on PO_TWO_OPS,
+         (pic16_newpCodeOp2): NEW, create combined pCodeOp,
+         (pic16_get_op): embraced return arg to allow #define return(x),
+           added new case for combined opcodes
+         (pic16_get_op2): reduced to use pic16_get_op() on second pCodeOp,
+         (pic16_pCode2str,pic16_getRegFrompCodeOp,
+          pic16_getRegFromInstruction2): fixed/added handling of new pCodeOp
+
+2006-06-04 Bernhard Held <bernhard AT bernhardheld.de>
+
+       * src/SDCCval.c (checkConstantRange): added
+       * src/SDCCval.h: added checkConstantRange
+       * support/Util/SDCCerr.c,
+       * support/Util/SDCCerr.h: replaced unused W_IF_NEVER_TRUE and
+       W_IF_ALWAYS_TRUE by W_COMP_RANGE and W_LIT_OVERFLOW
+       * src/SDCC.y: moved early 'condition transformations' to SDCCast.c
+       * src/SDCCast.c (decorateType): added checkConstantRange,
+       added 'condition transformations' from SDCC.y so that now W_COMP_RANGE
+       can be emitted with the correct always true/false warning,
+       added optimization for double '!';
+       result of decorateType() must be assigned back to the tree, because
+       decorateType() can change the tree
+       * src/SDCCicode.c (geniCodeLogic),
+       (geniCodeAssign): replaced new checkConstantRange, added warnings,
+       (checkConstantRange): removed, it was only a fragment which never
+       emitted a warning
+       * src/SDCCsymt.c (computeType): fixed promotion for
+       "-1 < (unsigned bit) b"
+       * src/pic/ralloc.c (packRegsForAssign),
+       * src/pic16/ralloc.c (packRegsForAssign),
+       * src/hc08/ralloc.c (packRegsForAssign),
+       * src/z80/ralloc.c (packRegsForAssign): ported fix for bug #930931
+       from mcs51
+       * src/mcs51/ralloc.c (packRegsForAssign): removed outcommented source
+       * support/regression/tests/constantRange.c: added
+       * support/valdiag/tests/constantRange.c: added
+       * support/valdiag/valdiag.py: added -DPORT_HOST=1
+
+2006-06-02 Borut Razem <borut.razem AT siol.net>
+
+       * support/regression/ports/pic16/support.c: increase stack size
+         to 255 bytes
+       * support/regression/Makefile.in: sort tests by name so that the
+         resutlts can be compared on different machines / platforms
+
+2006-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * device/lib/printf_large.c (output_digit): optimized further, Tnx Frieder
+       * src/ds390/gen.c (emitLabel): new, added,
+         (genDjnz): fixed stack overflow bug,
+         (throughout): cosmetic changes to sync with mcs51/gen.c,
+         replaced emitcode("", "%05d$:", lbl->key + 100) with emitLabel(lbl)
+       * src/mcs51/gen.c (genEndFunction): small optimization,
+         (throughout): cosmetic changes to sync with ds390/gen.c
+
+2006-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * device/lib/printf_large.c (output_digit, calculate_digit): optimized,
+         (_print_format): fixed printing pointers
+       * src/mcs51/gen.c (emitLabel, movb): new, added,
+         (genAssign): small optimization,
+         (genDjnz): fixed stack overflow bug,
+         (throughout): replaced sprintf with SNPRINTF,
+         replaced mcs51_regWithIdx with REG_WITH_INDEX,
+         replaced emitcode("mov", "b,...") with MOVB(...),
+         replaced emitcode("", "%05d$:", lbl->key + 100) with emitLabel(lbl),
+         replaced D(emitcode("; genXXX", "")) with D(emitcode(";", "genXXX"))
+       * src/mcs51/peeph.def: added rules 140 and 264
+       * src/SDCCmem.c (allocLocal): store register declared locals in DSEG/OSEG
+         so they may get optimized into registers
+
+2006-05-30 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * src/SDCCmain.c (optionsTable, parseCmdLine): handle --use-stdout
+         immediately when encountered,
+         (printUsage): always use stderr even on windows
+
+2006-05-30 Bernhard Held <bernhard AT bernhardheld.de>
+
+       * src/SDCCast.c (isLoopCountable): fixed bug #1478316
+       (processParms): fixed bug #1247551
+       * src/SDCCmain.c (printVersionInfo, printOptions, printUsage,
+       parseCmdLine, main): print '--version' to stdout,
+       print 'help' to stdout if --help is given,
+       print 'help' to stderr and exit with EXIT_FAILURE if no or bad
+       arguments are given; fixed --help
+
+2006-05-27 Bernhard Held <bernhard AT bernhardheld.de>
+
+       * src/SDCCcse.c (findPointerSet): fixed bug #1493710
+       * support/regression/tests/bug-1493710.c: added
+
+2006-05-27 Borut Razem <borut.razem AT siol.net>
+
+       * support/regression/fwk/lib/testfwk.c: define array in _printn() as
+         static instead auto
+       * support/regression/ports/pic16/support.c: increase stack size
+         from default 64 bytes to 128 bytes
+       * support/regression/tests/staticinit.c,
+         support/regression/tests/float.c: regression tests fully enabled
+         for pic16 port by putting the initialized data arrays into the code
+         section
+       * support/regression/ports/pic16/spec.mk: don't link default libraries.
+         This was changed by mistake in the previous version.
+
+2006-05-28 Vangelis Rokas <vrokas AT users.sourceforge.net>
+
+       * src/pic16/gen.c (genFunction, genEndFunction): some
+       beautifications, fixed bug with falsely restoring FSR2 in large
+       stack model, thanks to Beau E. Cox for reporting the bug
+
+2006-05-26 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * debugger/mcs51/break.c,
+       * debugger/mcs51/cmd.c (throughout): removed unused variables and labels,
+         use %p to print pointers, made address variables unsigned
+       * debugger/mcs51/cmd.c (infoSymbols): added missing parameter to printf
+       * debugger/mcs51/symtab.c (parseSymbol): must return something
+       * src/mcs51/gen.c (aopForSym): small optimization,
+          moved declarations mcs51_ptrRegReq and mcs51_nRegs to ralloc.h,
+         (freeAsmop): added missing break,
+         (aopPut): removed parameter bvolatile, determine it inside the function,
+         (saveRegisters, unsaveRegisters): small optimization,
+         (genIpush): removed pointless check,
+         (throughout): replaced Safe_calloc, strcpy with Safe_strdup,
+         replaced sprintf with SNPRINTF,
+         replaced strcpy with strncpyz,
+         updated aopPut calls,
+         replaced D(emitcode("; genXXX", "")) with D(emitcode(";", "genXXX"))
+       * src/mcs51/ralloc.h:  added declarations mcs51_ptrRegReq and mcs51_nRegs
+
+2006-05-24 Borut Razem <borut.razem AT siol.net>
+
+       * support/regression/tests/bug-221100.c: fixed xdata problem caused by
+         modification of test for the pic16 port, put the array to the code
+         memory for pic16port; thanks to Maarten Brock and Frieder Ferlemann
+
+2006-05-23 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
+
+       * src/pic/gen.c: MSC 6 does not have <stdint.h>.  Use pstdint.h instead.
+       * support/Util/pstdint.h: added
+
+2006-05-22 Borut Razem <borut.razem AT siol.net>
+
+       * src/regression/Makefile: removed bool2.c test, added -q linker option
+       * src/regression/add2.c, src/regression/add3.c, src/regression/bool1.c,
+         src/regression/bool3.c, src/regression/nestfor.c, src/regression/ptrfunc.c,
+         src/regression/compare.c, src/regression/or1.c, src/regression/compare2.c,
+         src/regression/while.c, src/regression/compare3.c, src/regression/compare4.c,
+         src/regression/compare5.c, src/regression/sub2.c, src/regression/rotate1.c,
+         src/regression/rotate2.c, src/regression/rotate3.c, src/regression/rotate4.c,
+         src/regression/switch1.c, src/regression/rotate5.c, src/regression/for.c,
+         src/regression/add.c, src/regression/sub.c, src/regression/call1.c:
+         define SUPPORT_BIT_TYPES 0, removed unused bit variables
+
+2006-05-22 Raphael Neider <rneider AT web.de>
+
+       * src/pic16/gen.c (pic16_storeForReturn): fragile fix for
+         bug #1492360 (problematic due to generic pointers, see code)
+
+2006-05-22 Borut Razem <borut.razem AT siol.net>
+
+       * support/regression/ports/pic16/specs.mk: removed stack size linker
+         directive
+       * support/regression/tests/array.c,
+         support/regression/tests/bitopcse.c,
+         support/regression/tests/bug-908454.c,
+         support/regression/tests/malloc.c: modified for pic16 regression test
+       * support/regression/tests/bitfields.c:
+         pic16 - excluded bitfileds of size > 8
+       * support/regression/tests/bp.c: pic16 - reduced data size
+       * support/regression/tests/bug-221100.c: pic16 - reduced data size
+       * support/regression/tests/bug-460010.c:
+         pic16 - used the absolute address the fits in memory
+       * support/regression/tests/bug-716242.c:
+         bug [ 1443651 ] pic 16: redefining symbol that cannot be redefined.
+       * support/regression/tests/float.c:
+         pic16 - excluded - data size too big
+       * support/regression/tests/onebyte.c:
+         pic16 - bug [ 1444425 ] onebyte.c regression tes fails on pic16
+       * support/regression/tests/shifts.c:
+         pic16 - function names probably have to differ in first X characters
+         (gpasm limitation?)
+       * support/regression/tests/staticinit.c:
+         pic16 - excluded some tests due error: no target memory available for
+         section ".idata"
+
+2006-05-22 Borut Razem <borut.razem AT siol.net>
+
+       * support/Util/dbuf.c: fixed bug #1489008 fix dbuf_c_str(),
+         second try. Thanks Stas Sergeev once more.
+
+2006-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * src/hc08/gen.c (transferAopAop): aop forced to stack was not restored,
+         (genLeftShift, genRightShift): fixed bug 1491627
+       * src/hc08/peeph.def (rules 7, 8.x): added
+       * support/regression/tests/shifts.c (ShiftLeftByParam,
+         ShiftRightByParam, testShiftByParam): added to test variable shifting
+
+2006-05-20 Raphael Neider <rneider AT web.de>
+
+       * src/pic/gen.c (bitpatternFromVal): fixed for 64-bit machines
+       * src/pic16/ralloc.c (newReg): use correct name in hashtable,
+         (allocReg): add only new registers to dynAllocRegs,
+         (pic16_assignRegisters): do not reset dynrIdx, fixes bugs
+           #1489055, #1445850, and probably #1483693
+
+2006-05-19 Vangelis Rokas <vrokas AT users.sourceforge.net>
+
+       * src/pic16/glue.c (pic16_emitConfigRegs, pic16_emitIDRegs): fixed
+       bug in for-loop that didn't emit the last of CONFIG and ID registers
+
+2006-05-18 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * src/mcs51/gen.c (genCodePointerGet): inc dptr instead of loading acc
+         with offset
+       * src/mcs51/peeph.def (186.x): updated and reenabled to fix bugs
+         1489016, 1434401 and 1490124
+       * src/ds390/peeph.def (186.x, 227.x): updated and reenabled to fix bugs
+         1489016, 1434401 and 1490124
+
+2006-05-17 Borut Razem <borut.razem AT siol.net>
+
+       * support/Util/dbuf.c: fixed bug #1489008 fix dbuf_c_str(),
+         thanks Stas Sergeev
+
 2006-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
 
        * device/include/mcs51/P89c51RD2.h,
        * src/z80/gen.c (aopop): fix for bug #1479882; use new, exclusive asmop
        if size of operand is smaller than spill location
 
+2006-05-12 Borut Razem <borut.razem AT siol.net>
+
+       * *.dsw, *.dsp: changed property svn:eol-style to CRLF since they
+         have to have CR/LF line endings even if they are checked out on *nix
+         or on WIN32 in cygwin binmode
+
 2006-05-12 Maarten Brock <sourceforge.brock AT dse.nl>
 
        * doc/sdccman.lyx: documented numeric ranges, WEBDOC #1442369