* device/lib/Makefile.in (Z80SOURCES): enabled float support
[fw/sdcc] / ChangeLog
index 0c5d8b598dd693d520bed2bd0f3c9d4dbeac8179..55798d6259146dbb1d6558fef1f7ad095a804d7d 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,562 @@
+2006-08-06 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * device/lib/Makefile.in (Z80SOURCES): enabled float support
+       * sim/ucsim/z80.src/inst.cc (inst_rst): generate breakpoint on RST8,ACC==0
+       * src/ds390/gen.c (shiftRLong),
+       * src/hc08/gen.c (shiftLLong, shiftRLong): fixed bug 1533966
+       * src/mcs51/gen.c (sameReg): changed to sameByte,
+         (xch_a_aopGet): new,
+         (shiftL2Left2Result, shiftR2Left2Result, shiftRLeftOrResult, shiftLLong,
+          shiftRLong): fixed bug 1533966
+       * src/z80/gen.c (shiftR2Left2Result, shiftL2Left2Result, genlshTwo,
+         genLeftShiftLiteral, genrshTwo, genRightShiftLiteral): fixed bug 1533966
+       * support/regression/Makefile.in: disabled z80, enabled ucz80
+       * support/regression/tests/float_trans.c: enabled test for z80 and host
+       * support/regression/tests/shifts2.c: new, for testing bug 1533966
+
+2006-08-01 Borut Razem <borut.razem AT siol.net>
+
+       * src/mcs51/gen.c, src/dc390/gen.c: fixed warning:
+         comparison is always false due to limited range of data type
+         on PPC64 machine (openpower-linux1) where "char = unsigned char"
+
+2006-08-01 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * sim/ucsim/hc08.src/hc08mac.h: removed faulty and unused add_u16_disp
+       * sim/ucsim/hc08.src/hc08.cc: removed faulty and unused int8
+       * sim/ucsim/z80.src/z80mac.h (add_u16_disp): use explicit signed char cast
+       * sim/ucsim/z80.src/z80.cc: removed faulty and unused int8
+
+2006-07-31 Borut Razem <borut.razem AT siol.net>
+
+       * sim/ucsim/configure, sim/ucsim/cmd.src/newcmdcl.h,
+         sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/cmdutil.cc,
+         sim/ucsim/z80.src/Makefile.in, sim/ucsim/configure.in,
+         sim/ucsim/hc08.src/Makefile.in, sim/ucsim/hc08.src/hc08.cc,
+         sim/ucsim/ddconfig_in.h, sim/ucsim/s51.src/Makefile.in,
+         sim/ucsim/s51.src/uc51cl.h, sim/ucsim/s51.src/serialcl.h,
+         sim/ucsim/s51.src/uc51.cc, sim/ucsim/s51.src/serial.cc,
+         sim/ucsim/app.cc, sim/ucsim/avr.src/Makefile.in:
+         enable ucsim mingw compilation. Serial port is disabled,
+         since it uses termios.h API, which is not available on native
+         WIN32
+
+2006-07-31 Borut Razem <borut.razem AT siol.net>
+
+       * Small Device C Compiler 2.6.0 released
+       * support/scripts/sdcc.nsi: added FULL_DOC option
+       * .version, doc/sdccman.lyx: changed sdcc version to 2.6.1
+
+2006-07-28 Borut Razem <borut.razem AT siol.net>
+
+       * support/scripts/sdcc.nsi: remove $INSTDIR/include/asm/pic16/*.h
+       * doc/INSTALL.txt: updated
+
+2006-07-27 Borut Razem <borut.razem AT siol.net>
+
+       * device/lib/pic/Makefile.in, device/lib/pic/Makefile.subdir,
+         device/lib/pic/libdev/Makefile.in: fixed bug
+         [ 1438354 ] pic libsdcc: distclean doesn't work
+       * device/lib/pic16/Makefile.in, device/lib/pic16/Makefile.subdir,
+         device/lib/pic16/libio/Makefile.in: fixed bug
+         [ 1438344 ] pic16 lib: clean doesn't work properly
+       * doc/knownbugs.html removed [ 1438354 ] and [ 1438344 ] from the list
+
+2006-07-26 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * device/lib/pic/libsdcc/fsdiv.c,
+       * device/lib/pic/libsdcc/fsmul.c,
+       * device/lib/pic16/libsdcc/float/fsdiv.c,
+       * device/lib/pic16/libsdcc/float/fsmul.c,
+       * device/lib/_fsdiv.c,
+       * device/lib/_fsmul.c: bugfix, handle too large and too small numbers
+       * support/regression/tests/bug1520966.c: added
+       * doc/knownbugs.html: removed [ 1520966 ] from the list
+
+2006-07-25 Borut Razem <borut.razem AT siol.net>
+
+       * configure.in, configure, sdccconf_in.h: fixed bug
+         [ 1519095 ] regression test onebyte.c fails on ppc64 host
+       * doc/knownbugs.html: removed [ 1519095 ] from the list
+
+2006-07-25 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * doc/knownbugs.html: added, contains list of known bugs at release
+       * device/include/mcs51/compiler.h: fixed SFR32 for SDCC
+
+2006-07-23 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * device/include/mcs51/compiler.h: added SFRX for xdata based special
+         function registers and corrected defaults with additional warning
+       * device/lib/malloc.c: cosmetic changes
+       * device/lib/realloc.c: bugfix for bug #1496907, Thanks Efim Monyak
+       * src/ds390/ralloc.c (getRegBitNoSpil): reenabled,
+         (fillGaps): and used it
+
+2006-07-20 Raphael Neider <rneider AT web.de>
+
+       * src/pic/device.c (addMemRange,assignRegister): suppress verbose
+         output unless SDCCPICDEBUG is set
+       * device/lib/pic16/Makefile.rules (%.lib target): suppress verbose
+         output if SILENT is set
+
+2006-07-11 Borut Razem <borut.razem AT siol.net>
+
+       * doc/README.txt: updated
+
+2006-07-10 Borut Razem <borut.razem AT siol.net>
+
+       * support/scripts/sdcc.nsi: added device/include/asm/pic/features.h and
+         device/lib/src/pic/libm/*.c and device/lib/src/pic16/libsdcc/stack/*.S
+         in WIN32 installation
+       * .version, sdcc.spec, doc/sdccman.lyx: changed sdcc version to 2.6.0 -
+         release candidate 1
+
+2006-07-08 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * device/include/mcs51/XC866.h: added sbit definitions for Px_x, P1_x, P2_x
+       * src/pic16/glue.c (initPointer): fixed bug 1496419 for pic16
+
+2006-07-06 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * src/hc08/gen.c (genAddrOf): fixed bug when offset on stack is >127
+
+2006-07-06 Borut Razem <borut.razem AT siol.net>
+
+       * support/regression/tests/bitfields.c:
+         fixed bug [ 1518322 ] regression test bitfields fails on ppc hosts
+       * support/regression/tests/constantRange.c:
+         fixed bug [ 1518317 ] regression test constantRange fails on alpha host
+
+2006-07-04 Borut Razem <borut.razem AT siol.net>
+
+       * src/configure.in, src/configure, src/Makefile.in, as/z80/Makefile.in,
+         src/port.mk,
+         src/avr/Makefile.in, src/ds390/Makefile.in, src/ds400/Makefile.in,
+         src/hc08/Makefile.in, src/mcs51/Makefile.in, src/pic16/Makefile.in,
+         src/pic/Makefile.in, src/xa51/Makefile.in, src/z80/Makefile.in:
+         reverted changes from 2006-07-03
+       * Makefile.common.in: added @CPPFLAGS@ to CPPFLAGS
+       * support/regression/Makefile.in, support/regression/ports/host/spec.mk:
+         added CPPFLAGS, used by the host port
+
+2006-07-03 Bernhard Held <bernhard AT bernhardheld.de>
+
+       * support/regression/valdiag/tests/switch.c,
+       * support/regression/valdiag/tests/constantRange.c: adapted to gcc 4
+       * support/regression/tests/libmullong.c: fixed for host
+       * support/regression/ports/host/spec.mk: disable all warnings for host,
+       SDCC runs with --less-pedantic too
+
+2006-07-03 Borut Razem <borut.razem AT siol.net>
+
+       * src/configure.in, src/configure, src/Makefile.in, as/z80/Makefile.in:
+         defined CPPFLAGS
+       * src/port.mk: defined CPPFLAGS, renamed to src/port.mk.in
+       * src/avr/Makefile.in, src/ds390/Makefile.in, src/ds400/Makefile.in,
+         src/hc08/Makefile.in, src/mcs51/Makefile.in, src/pic16/Makefile.in,
+         src/pic/Makefile.in, src/xa51/Makefile.in, src/z80/Makefile.in:
+         include ../port.mk
+       * sim/ucsim/main_in.mk, sim/ucsim/avr.src/Makefile.in,
+         sim/ucsim/gui.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
+         sim/ucsim/s52.src/Makefile.in, sim/ucsim/sim.src/Makefile.in,
+         sim/ucsim/xa.src/Makefile.in: ignore header files for dependencies
+
+2006-07-02 Raphael Neider <rneider AT web.de>
+
+       * src/pic16/devices.inc,
+       * device/include/pic16/pic18fregs.h,
+       * device/include/pic16/pic18f4550.h,
+       * device/lib/pic16/pics.all,
+       * device/lib/pic16/libdev/pic18f4550.c: added support for 18f4550
+
+2006-07-01 Bernhard Held <bernhard AT bernhardheld.de>
+
+       * as/hc08/lkaomf51.c (OutputName),
+       * as/mcs51/lkaomf51.c (OutputName),
+       * as/z80/asmain.c (asmbl),
+       * src/ds390/main.c (asmLineNodeFromLineNode),
+       * src/hc08/ralloc.c (hc08_assignRegisters),
+       * src/mcs51/main.c (asmLineNodeFromLineNode),
+       * src/xa51/ralloc.c (checkRegMask),
+       * src/xa51/gen.c (emitcode),
+       * src/z80/gen.c (_emit2),
+       * src/SDCCast.c (searchLitOp),
+       * src/SDCCglobl.h,
+       * support/packihx/packihx.c,
+       * support/Util/MySystem.c (split_command): fix gcc 4 warnings
+       * src/ds390/gen.c (aopPutUsesAcc),
+       * src/ds390/ralloc.c (getRegBitNoSpil): unused, therefore disabled
+       * support/regression/tests/libmullong.c (mullong_wrapper),
+       * src/SDCCsymt.c (powof2),
+       * src/SDCCast.c,
+       * src/SDCCicode.c: renamed TYPE_WORD by TYPE_TARGET_INT and so on
+       * src/SDCCsymt.h: added TYPE_TARGET_*
+       * src/SDCCutil.c (doubleFromFixed16x16, fixed16x16FromDouble),
+       * src/SDCCutil.h (doubleFromFixed16x16, fixed16x16FromDouble): moved to
+       SDCCast because 1) header problems 2) this is the right place
+       * src/SDCCast.c (doubleFromFixed16x16, fixed16x16FromDouble): added
+       * src/SDCCval.h (doubleFromFixed16x16, fixed16x16FromDouble): added
+       prototype
+
+2006-06-29 Bernhard Held <bernhard AT bernhardheld.de>
+
+       * src/SDCCicode.h: removed buggy semicolon in unused macro
+       * src/SDCClrange.c (findPrevUseSym, rlivePoint): fixed bug #1486853,
+       search for previous definiton of auto symbols too,
+       (findPrevUse): fixed logic of emitWarnings
+
+2006-06-26 Raphael Neider <rneider AT web.de>
+
+       * src/pic16/gen.c (genFunction, genEndFunction): also preserve
+         PCLATH and PCLATU on interrupts, potentially fixes #1505141
+
+2006-06-25 Raphael Neider <rneider AT web.de>
+
+       * device/lib/pic/libm: NEW, added math library functions
+       * device/lib/pic/libsdcc: NEW; added float support functions
+       * device/lib/pic/{Makefile.in,configure.in,configure}: added libm/
+       * device/include/pic/{limits.h,errno.h,sdcc-lib.h,float.h,math.h}:
+         NEW, added math related headers
+       * device/include/asm/pic/features.h: NEW
+       * src/pic/gen.c (emitpcode_real): emit warning on NULL pCodeOp,
+         (popGet): allow larger offsets for AOP_PCODE,
+         (genDataPointerSet): handle literals explicitly, more debug output,
+         (genAssign): fixed for float using aopLiteral ;-)
+       * src/pic/glue.c (pic14createInterruptVect): inserted pagesel before
+         GOTO initialisation routine
+       * src/pic/pcoderegs.c (pCodeRegMapLiveRangesInFlow): set wasUsed
+         flag on registers, fixes #1469043 (local variables do not work)
+       * src/pic/main.c (_pic14_do_link),
+       * src/pic16/main.c (_pic16_linkEdit): use fullDstFileName if
+         available
+
+2006-06-25 Borut Razem <borut.razem AT siol.net>
+
+       * device/lib/pic16/libc/stdio/sprintf.c: return the number of
+         characters printed (not including the trailing '\0' used to end
+         output to strings). Problem detected in regression test bug-927659.c.
+         NOTE: printf() family functions should return int instead
+         unsigned int!
+       * device/lib/pic16/libc/stdio/vfprintf.c: "%%" prints "%", unknown
+         specifier are printed as themselves
+       * sdcc/support/regression/tests/bug1057979.c: pic16 printf doesn't
+         support flags, width and precision specifiers
+
+2006-06-24 Borut Razem <borut.razem AT siol.net>
+
+       * sdcc/support/regression/tests/bitvars.c: added gbz80, pic16 and pic16
+         to the list of sdcc tagrets not supporting bit type
+       * sdcc/support/regression/tests/bug-905992.c.c: excluded regression
+         testfor pic16 due to bug:
+         [ 1511794 ] pic16: regression test bug-895992.c fails
+
+2006-06-24 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * src/mcs51/gen.c (genCmp): optimization for RFE 1162453
+       * src/SDCCglue.c (initPointer), fixed bug 1496419
+       * support/regression/tests/bug1496419.c: new, added
+
+2006-06-22 Borut Razem <borut.razem AT siol.net>
+
+       * support/regression/ports/pic16/support.c: use gpsim usart module from
+         libgpsim_modules library
+
+2006-06-21 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
+
+       * device/include/mcs51/at89c51ed2.h: Fixed bug 1510144 changed
+       IP0H to IPH0.
+
+2006-06-19 Raphael Neider <rneider AT web.de>
+
+       * src/pic/glue.h,src/pic16/glue.h: added prototypes
+       * src/pic/glue.c,src/pic16/glue.c (pic1x_stringInSet,
+         pic1x_emitSymbolIfNew): NEW, check for a string in a set,
+         (pic14printExterns,pic14printPublics,pic16printPublics,
+         pic16_printExterns): use new functions to emit symbols
+         (picglue,pic16glue): emit publics before emitting externs
+       * src/pic/gen.c,src/pic16/gen.c (genFunction): remember the names of
+         locally defined functions to avoid bug #1443651
+       * support/regression/tests/bug-716242.c: removed pic16 workaround
+       * support/regression/ports/pic16/spec.mk: ignore errors during build
+
+2006-06-19 Raphael Neider <rneider AT web.de>
+
+       * src/pic/glue.h: added pic14aopLiteral prototype
+       * src/pic/glue.c (pic14aopLiteral): return unsigned int
+       * src/pic/gen.c: removed stdint.h dependency
+         (aopGet): use Safe_strdup()
+         (bitpatternFromVal): removed, replaced use with pic14aopLiteral
+         (genDataPointerSet): use pic14aopLiteral()
+       * src/pic16/glue.h, src/pic16/glue.c, src/pic16/gen.c: similar changes
+         for pic16; thanks to Bernhard and Maarten
+
+2006-06-18 Borut Razem <borut.razem AT siol.net>
+
+       * support/regression/tests/structflexarray.c: flexible array members
+         not supported by gcc < 3
+       * sim/ucsim/configure, sim/ucsim/configure.in: do not compile serio
+         GUI tool by default
+       * src/pic/gen.c: don't include [p]strdin.h on solaris
+       * support/Util/pstdint.h: addad svn attributes
+       * support/regression/tests/constantRange.c,
+         support/regression/tests/rotate.c: include inttypes.h instead
+         stdint.h on solaris, addad svn attributes
+
+2006-06-18 Raphael Neider <rneider AT web.de>
+
+       * src/SDCCsymt.c (initCSupport): change return type of divschar to
+         int for PIC16
+       * src/pic16/genarith.c (genAddLit): sign-extend via standard routine
+         (pic16_genMinusBits): simplified sign-extension
+         (pic16_genUMult8XLit_8,pic16_genUMult8X8_8): renamed to
+           pic16_genMult8XLit_n resp. pic16_genMult8X8_n, fixed and
+           adjusted to correctly handle mixed-signed operands, disabled
+           now unused multiplciation routines
+       * src/pic16/gen.c (pic16_pushpCodeOp): fixed to handle literals
+         (assignResultValue): added argument denoting the size of the result
+           as returned by the function (fixes upcasts in assigning from
+           function calls: char foo(); int i = foo();)
+         (genCall,genPcall,genGenPointerGet,genReceive): pass size of
+           function result to assignResultValue
+         (genMult): disabled inlined multiplication code
+         (genDiv): augmented to also handle the modulus operator, fixed to
+           handle mixed-signed operands correctly
+         (genMod): simply call genDiv, disabled unused code
+         (genAssign): fixed missing (sign-)extension on result
+       * src/pic16/main.c (_hasNativeMulFor): accept literals [-128..256) as
+           valid char operands, allow signed operands for native code, added
+           division and modulo operator handling
+       * device/lib/pic16/libsdcc/char/divschar.c: divschar returns an int
+
+       As a consequence, onebyte.c (if split into two files) and muldiv.c
+       pass regression tests.
+
+2006-06-17 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
+
+       * doc/Makefile.in: two runs of makeindex seem needed to get
+       correct page references in the index of sdccman.pdf
+       * doc/sdccman.lyx: mentioned cmon51, added links, small changes
+
+2006-06-17 Borut Razem <borut.razem AT siol.net>
+
+       * sdcc/device/lib/Makefile.in: corrected PORTINCDIR path
+
+2006-06-17 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
+
+       * doc/sdccman.lyx: updated, added (porting source code, debugging),
+       mentioned ec2drv and paulmon
+
+2006-06-16 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
 2006-05-27 Borut Razem <borut.razem AT siol.net>
 
        * support/regression/fwk/lib/testfwk.c: define array in _printn() as
 
 2003-10-31  Borut Razem <borut.razem AT siol.net>
 
 
 2003-10-31  Borut Razem <borut.razem AT siol.net>
 
-       * support\cpp2\cpplex.c: fixed for SDCPP:
+       * 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
          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
 
        Fixed some warnings when building with MSVC:
 
 
        Fixed some warnings when building with MSVC:
 
-       * as\mcs51\asdata.c
-       * as\z80\asdata.c
-       * as\mcs51\asm.h
-       * as\z80\asm.h
-       * link\z80\aslink.h
-       * link\z80\lkdata.c
-       * link\z80\lkeval.c
-       * link\z80\lkgb.c
-       * link\z80\lkihx.c
-       * link\z80\lks19.c
-       * link\z80\lksym.c
-       * support\cpp2\cpplib.c
-       * src\ds390\gen.c
-       * src\mcs51\gen.c
+       * as/mcs51/asdata.c
+       * as/z80/asdata.c
+       * as/mcs51/asm.h
+       * as/z80/asm.h
+       * link/z80/aslink.h
+       * link/z80/lkdata.c
+       * link/z80/lkeval.c
+       * link/z80/lkgb.c
+       * link/z80/lkihx.c
+       * link/z80/lks19.c
+       * link/z80/lksym.c
+       * support/cpp2/cpplib.c
+       * src/ds390/gen.c
+       * src/mcs51/gen.c
 
 2003-08-03  Bernhard Held <bernhard AT bernhardheld.de>
 
 
 2003-08-03  Bernhard Held <bernhard AT bernhardheld.de>
 
 
 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
 
 
 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
 
-       * support\librarian\clean.mk: Do not remove Makefile.
-       * support\librarian\Makefile: added.
+       * support/librarian/clean.mk: Do not remove Makefile.
+       * support/librarian/Makefile: added.
 
 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
 
        Added librarian to MSVC build:
        * all.dsp
        * sdcc.dsw
 
 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
 
        Added librarian to MSVC build:
        * all.dsp
        * sdcc.dsw
-       * support\librarian\librarian.dsp
+       * support/librarian/librarian.dsp
 
        'configure' not needed for librarian, removed:
 
        'configure' not needed for librarian, removed:
-       * support\librarian\configure
-       * support\librarian\configure.in
-       * support\librarian\config_in.h
-       * support\librarian\Makefile.in
+       * support/librarian/configure
+       * support/librarian/configure.in
+       * support/librarian/config_in.h
+       * support/librarian/Makefile.in
 
        Hopefully these ones built the librarian and the rest of sdcc properly:
        * Makefile
 
        Hopefully these ones built the librarian and the rest of sdcc properly:
        * Makefile
        Adding sdcclib to the build.  MSVC project coming soon.
        Files added/changed:
 
        Adding sdcclib to the build.  MSVC project coming soon.
        Files added/changed:
 
-       * support\librarian\clean.mk
-       * support\librarian\configure
-       * support\librarian\configure.in
-       * support\librarian\config_in.h
-       * support\librarian\Makefile.bcc
-       * support\librarian\Makefile.in
-       * support\librarian\sdcclib.c
+       * support/librarian/clean.mk
+       * support/librarian/configure
+       * support/librarian/configure.in
+       * support/librarian/config_in.h
+       * support/librarian/Makefile.bcc
+       * support/librarian/Makefile.in
+       * support/librarian/sdcclib.c
        * Makefile.bcc
        * Makefile
        * Makefile.common.in
        * Makefile.bcc
        * Makefile
        * Makefile.common.in
        example, one compiled using --model-large and another one compiled with
        --model-small.  The following files were modified:
 
        example, one compiled using --model-large and another one compiled with
        --model-small.  The following files were modified:
 
-       * as\mcs51\asdata.c
-       * as\mcs51\aslink.h
-       * as\mcs51\asm.h
-       * as\mcs51\asmain.c
-       * as\mcs51\asout.c
-       * as\mcs51\i51pst.c
-       * as\mcs51\lkdata.c
-       * as\mcs51\lklibr.c
-       * as\mcs51\lkmain.c
-       * as\z80\asdata.c
-       * as\z80\asm.h
-       * as\z80\asmain.c
-       * as\z80\asout.c
-       * as\z80\z80pst.c
-       * link\z80\aslink.h
-       * link\z80\lkdata.c
-       * link\z80\lklibr.c
-       * link\z80\lkmain.c
-       * src\SDCCglue.c
+       * as/mcs51/asdata.c
+       * as/mcs51/aslink.h
+       * as/mcs51/asm.h
+       * as/mcs51/asmain.c
+       * as/mcs51/asout.c
+       * as/mcs51/i51pst.c
+       * as/mcs51/lkdata.c
+       * as/mcs51/lklibr.c
+       * as/mcs51/lkmain.c
+       * as/z80/asdata.c
+       * as/z80/asm.h
+       * as/z80/asmain.c
+       * as/z80/asout.c
+       * as/z80/z80pst.c
+       * link/z80/aslink.h
+       * link/z80/lkdata.c
+       * link/z80/lklibr.c
+       * link/z80/lkmain.c
+       * src/SDCCglue.c
 
 2003-07-28  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
 
 
 2003-07-28  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
 
        * src/SDCC.lex: Fix for bug #711240: dynamic buffer handling of C
           literal strings in stringLiteral()
        * support/Util/dbuf.c, support/Util/dbuf.h: added: dynamic buffer handling
        * src/SDCC.lex: Fix for bug #711240: dynamic buffer handling of C
           literal strings in stringLiteral()
        * support/Util/dbuf.c, support/Util/dbuf.h: added: dynamic buffer handling
-       * src/Makefile.bcc, src/Makefile.in, src\src.dsp: added support/Util/dbuf.c
+       * src/Makefile.bcc, src/Makefile.in, src/src.dsp: added support/Util/dbuf.c
           to the project
 
 2003-03-27  Paul Stoffregen <paul AT pjrc.com>
           to the project
 
 2003-03-27  Paul Stoffregen <paul AT pjrc.com>
 
 2002-12-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
 
 
 2002-12-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
 
-    * in \sdcc\as\mcs51\ changed these files in order to create an
+    * in /sdcc/as/mcs51/ changed these files in order to create an
     aomf51 file: aslink.h, lkdta.c, lklex.c, lklibr.c, lklist.c,
     lkmain.c.  Also added: lkmem.c and lkaomf51.c.  Changed the
     following files to include the previous two files: aslink.dsp,
     Makefile.aslink, Makefile.bcc, and Makefile.in.
 
     aomf51 file: aslink.h, lkdta.c, lklex.c, lklibr.c, lklist.c,
     lkmain.c.  Also added: lkmem.c and lkaomf51.c.  Changed the
     following files to include the previous two files: aslink.dsp,
     Makefile.aslink, Makefile.bcc, and Makefile.in.
 
-    * Changed \sdcc\src\SDCCmain.c so it creates files with extension
+    * Changed /sdcc/src/SDCCmain.c so it creates files with extension
     .adb instead of .cdb
 
 2002-11-09  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
 
     .adb instead of .cdb
 
 2002-11-09  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
 
-       * \sdcc\as\mcs51\lklist.c: Now reports memory usage using the
+       * /sdcc/as/mcs51/lklist.c: Now reports memory usage using the
        value from option --iram-size.
 
 2002-09-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
 
        value from option --iram-size.
 
 2002-09-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
 
-       * \sdcc\as\mcs51\lklist.c: added boundary check before using
+       * /sdcc/as/mcs51/lklist.c: added boundary check before using
        dram[] array.
 
 2002-09-18    <wiml AT hhhh.org>
        dram[] array.
 
 2002-09-18    <wiml AT hhhh.org>
          compact code for X = LITERAL - Y
 
 2002-09-00  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
          compact code for X = LITERAL - Y
 
 2002-09-00  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
-       * \sdcc\as\mcs51\lklist.c: Fixed incorrect number of parameters to
+       * /sdcc/as/mcs51/lklist.c: Fixed incorrect number of parameters to
        sprintf() in line 1267.
 
 2002-09-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
        sprintf() in line 1267.
 
 2002-09-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
-       * \sdcc\src\SDCCglue.c: Generate areas REG_BANK_[0-3] only for 8051
+       * /sdcc/src/SDCCglue.c: Generate areas REG_BANK_[0-3] only for 8051
        like ports.
 
 2002-09-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
        Changes to aslink (All the changes are marked with 'JCF'):
 
        like ports.
 
 2002-09-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
        Changes to aslink (All the changes are marked with 'JCF'):
 
-       * \sdcc\as\mcs51\aslink.h: External definition of sflag and
+       * /sdcc/as/mcs51/aslink.h: External definition of sflag and
        summary().
 
        summary().
 
-       * \sdcc\as\mcs51\lkarea.c: Computes the size of area BSEG_BYTES from
+       * /sdcc/as/mcs51/lkarea.c: Computes the size of area BSEG_BYTES from
        area BSEG.  Also moves, if possible, the DATA area down into the internal
        ram so more space is available.
 
        area BSEG.  Also moves, if possible, the DATA area down into the internal
        ram so more space is available.
 
-       * \sdcc\as\mcs51\lkdata.c: Definition of memory summary output flag
+       * /sdcc/as/mcs51/lkdata.c: Definition of memory summary output flag
        sflag.
 
        sflag.
 
-       * \sdcc\as\mcs51\lklist.c: For the BSEG area report the size in bits,
+       * /sdcc/as/mcs51/lklist.c: For the BSEG area report the size in bits,
        not bytes.  Function summary() which creates a memory usage summary
        file with extension .mem.  Reports of overlaping stack and small stack
        size.  If the space for the stack is less than 16 bytes aslink trows a
        warning.
 
        not bytes.  Function summary() which creates a memory usage summary
        file with extension .mem.  Reports of overlaping stack and small stack
        size.  If the space for the stack is less than 16 bytes aslink trows a
        warning.
 
-       * \sdcc\as\mcs51\lkmain.c: Creation of some of the default areas for
+       * /sdcc/as/mcs51/lkmain.c: Creation of some of the default areas for
        the 8051.  Option 'y' for memory summary output file.
 
        Changes to sdcc (All the changes are marked with 'JCF'):
 
        the 8051.  Option 'y' for memory summary output file.
 
        Changes to sdcc (All the changes are marked with 'JCF'):
 
-       * \sdcc\src\SDCCglobl.h: External definition of RegBankUsed[4].
+       * /sdcc/src/SDCCglobl.h: External definition of RegBankUsed[4].
 
 
-       * \sdcc\src\SDCCglue.c:  If a register bank is used, creates an
+       * /sdcc/src/SDCCglue.c:  If a register bank is used, creates an
        overlaying area for it (uses RegBankUsed[4]).
 
        overlaying area for it (uses RegBankUsed[4]).
 
-       * \sdcc\src\SDCCmain.c: Definition RegBankUsed[4]; marks register
+       * /sdcc/src/SDCCmain.c: Definition RegBankUsed[4]; marks register
        bank zero as used by default.  By default aslink locates the stack
        (equivalent to --stack-after-data).  Pass option 'y' to aslink for
        the creation of the .mem file.  Delegates the allocation of data area
        to aslink (it is not longer 0x30 by default).  If --stack-loc passes
        the begining of the stack area to aslink.
 
        bank zero as used by default.  By default aslink locates the stack
        (equivalent to --stack-after-data).  Pass option 'y' to aslink for
        the creation of the .mem file.  Delegates the allocation of data area
        to aslink (it is not longer 0x30 by default).  If --stack-loc passes
        the begining of the stack area to aslink.
 
-       * \sdcc\src\SDCCmem.c:  If a register bank is used, marks it so
+       * /sdcc/src/SDCCmem.c:  If a register bank is used, marks it so
        glue() in SDCCglue.c creates an area for it.
 
 2002-09-03  Borut Razem <borut.razem AT siol.net>
        glue() in SDCCglue.c creates an area for it.
 
 2002-09-03  Borut Razem <borut.razem AT siol.net>