* as/mcs51/lkarea.c (lnkarea2): clear new xdatamap, bugfix for two
[fw/sdcc] / ChangeLog
index 3063744f983dd31b371dc48456699c5b991e903c..7b736d0c1c064b31f83fa91304936db56f0f8066 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,208 @@
+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