* sim/ucsim/app.cc, sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc:
[fw/sdcc] / ChangeLog
index ac46903f8289d4fe6b0472fac40a4365a41b01b9..86aa98d3c95db087f84e322295eba79f01b8d60f 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
+2005-11-01 Borut Razem <borut.razem AT siol.net>
+
+       * sim/ucsim/app.cc, sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc:
+         enabled sockets on WIN32
+
+2005-10-31 Borut Razem <borut.razem AT siol.net>
+
+       * support/regression/generate-cases.py: escape backslashes in {testcase}:
+         WIN32 backslash path delimiters should be escaped when used in C strings
+       * support/regression/tests/bitfields.c: exclude failing assertions for
+         __CYGWIN32__ and __MINGW32__ hosts
+
+2005-10-30 Borut Razem <borut.razem AT siol.net>
+
+       * src/SDCCutil.c: corrected double comparison typo
+
+2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * device/lib/medium/Makefile: added for new memory model medium
+       * device/include/asm/mcs51/features.h: updated for medium/pdata
+       * device/include/mcs51/c8051f120.h: added sfr16/sfr32 definitions,
+         added Multiply & Accumulate sbit's and MAC0_PAGE define
+       * device/include/mcs51/c8051f300.h: added sfr16 definitions
+       * device/include/mcs51/c8051f310.h: added sfr16 definitions
+       * device/lib/_mullong.c: update for medium model
+       * device/lib/incl.mk: added medium model
+       * doc/sdccman.lyx: documented medium model
+       * src/SDCCast.c (isBitAndPow2): simplified using updated powof2
+       * src/SDCCicode.c (geniCodeMultiply, geniCodeDivision): use updated powof2
+       * src/SDCCmain.c (optionsTable, linkEdit): enabled medium model
+       * src/SDCCmem.c (allocIntoSeg): set iaccess for pdata symbols,
+         (allocParms): set SCLS and OCLS to pdata for medium model
+       * src/SDCCsymt.c (processFuncArgs): use default_local_map and set iaccess
+         for pdata,
+         (powof2): return <0 if not power of 2
+       * src/avr/gen.c (genBitWise): use updated powof2
+       * src/mcs51/gen.c (genMinusDec): use acc if necessary,
+         (shiftR2Left2Result): small optimization in setup, save acc when storing,
+         (shiftLLeftOrResult): use B if necessary
+       * src/mcs51/main.c (_mcs51_finaliseOptions, mcs51_port): added medium model
+       * src/mcs51/peeph.def: renamed 226 to 226.b, added 226.a
+       * src/pic/main.c (_pic14_do_link): made void parameter list explicit
+       * support/regression/Makefile.in: added test-mcs51-medium
+       * support/regression/ports/mcs51-medium/spec.mk: added to test medium model
+
+2005-10-28 Bernhard Held <bernhard AT bernhardheld.de>
+
+       * src/SDCCsymt.c (compStructSize): make bitfields without (un)signed
+       specifier unsigned
+       * device/lib/time.c (mktime): fixed bug 1334315
+
+2005-10-28 Raphael Neider <rneider AT web.de>
+
+       * device/include/pic/p16f_common.inc: added common declarations
+       * src/pic/ralloc.c (initStack): moved regs *r to block start for Alpha
+
+2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * src/mcs51/gen.c (getTempRegs): return 0 if not enough registers found,
+         (aopPutUsesAcc): added to predict accumulator use,
+         (assignResultValue): save acc if necessary,
+         (genMinusDec): store result if indirectly addressed,
+         (genDivOneByte):  save acc if necessary,
+         (movLeft2Result): bugfix if left already in acc,
+         (genAnd, genOr, genXor, shiftL2Left2Result, shiftR2Left2Result): pay more
+           attention to accumulator use (esp. pdata),
+         (genReceive): receive pdata correctly
+       * src/SDCCicode.c (isOperandInPagedSpace): added to detect pdata operands
+       * src/SDCCicode.h: added isOperandInPagedSpace prototype
+
+2005-10-27 Raphael Neider <rneider AT web.de>
+
+       * doc/sdccman.lyx: corrected version (should be 2.5.4 not 2.5.5)
+
+2005-10-27 Raphael Neider <rneider AT web.de>
+
+       * .version: changed version to 2.5.4
+       * doc/sdccman.lyx: changed version to 2.5.4, added some remarks to PIC14
+       * device/lib/pic/libsdcc/{_mulint.c,_mullong.c}: use unsigned literals,
+         (_divschar.c,divuchar.c,_mulchar.c,_modschar.c,_moduchar): NEW,
+           arithmetics support routines
+       * device/lib/pic/Makefile.rules: have assembler sources preprocessed
+       * device/lib/Makefile.in: also create installdir for pic
+
+       * src/SDCCopt.c (cnvToFcall): mark support routines `extern' for
+         pic14 port as well
+       * src/pic/device.c (dump_sfr): rewritten to delegate register
+         placement to the linker (use `extern sym' rather than sym EQU addr),
+         (validAddress): fixed to check last specified address
+       * src/pic/gen.c (aopForSym): added code to deal with array (useless?),
+         (popGetLit): truncate literal value to 8 bit,
+         (popGet): moved assert to more appropriate place
+         (popGetExternal): create pCode operand from and mark the according
+           symbol as being `extern'
+         (popGetAddr): added sanity check on immediate's offset, provide
+           GPOINTER tag on demand
+         (aopPut): fixed for immediates,
+         (mov2w_op): move operand's address or contents to WREG (depending on
+           operand type), safer variant of mov2w,
+         (movwf,call_libraryfunc): NEW, handy abbreviations,
+         (get_argument_pcop,get_return_val_pcop,pass_argument,
+         get_returnvalue): interface for accessing function parameters and
+           return values,
+         (assignResultValuei,genRet): use new parameter/return value interface
+         (pic14_getDataSize): back to old version handling generic pointers,
+         (pic14_toBoolean,genNot,genCpl,genCmpEq,genOrOp): heavily rewritten,
+           provided implementation and/or fixed old one,
+         (genMultOneByte,genDivOneByte,genModOneByte): implemented as library
+           calls, removed legacy 8051 reference code
+         (AccLsh,AccRsh): rewritten and fixed to deal with signed operands
+         (loadSignToC): NEW, move the operands sign bit to CARRY,
+         (genGenericShift): NEW, replaces genLeftShift, genRightShift and
+           genRightShiftSigned, accepts negative shift counts,
+         (setup_fsr): load FSR and adjust IRP (indirect memory access),
+         (emitPtrByteGet,emitPtrByteSet): rewritten, now works with
+           generic pointers, __data pointers and __code pointers,
+         (genUnpackBits,genPackBits): rewritten to work with generic pointers
+           and signed bitfields, limit bitfields to 8 bit,
+         (genDataPointerGet): fixed number of bytes read,
+         (genGenPointerGet,genConstPointerGet): fixed bitfield access,
+         (genPointerGet,genPointerSet): fixed handling of __code pointers,
+           pointers to constant data are no longer assumed to point to __code
+           space, removed invalid pointer types,
+         (bitpatternFromVal): retrieve the PICs representation of an integer
+           or float literal,
+         (genDataPointerSet): fixed assigning to po_immediate operands,
+         (genGenPointerSet): implemented as library call,
+         (genIfx): fixed incorrect condition,
+         (genAddrOf): limit generic pointers' addresses to 2 bytes,
+           provide GPOINTER tag according to destination's storage class,
+         (genCast): added code to handle casting to generic pointers, added
+           sign-/zero extension of the result
+         (aop_isLitLike,op_isLitLike): fixed handling of immediates
+       * src/pic/gen.h: added macros to access IRP bit in STATUS register
+       * src/pic/genarith.c (genAddLit): use min(result's,left's) size, sign
+         extend the result
+       * src/pic/glue.c (is_shared_address,is_shared): check whether a given
+         address/register resides in the shared banks
+         (emitSymbolToFile): improved to handle global and `pinned' symbols,
+           put all variables into separate sections (have the linker arrange
+           them)
+         (picglue): put init code and interrupt handlers in separate sections
+       * src/pic/main.c: added port specific options table, modified to PORT
+         structure to make GPOINTERs 3 byte, added pic14_options
+         (_pic14_do_link): private linking routine (update paths to libraries,
+           add libsdcc.lib by default)
+       * src/pic/main.h: declare pic14_options
+       * src/pic/pcode.c: fixed instructions i/o relations,
+         (RegCond): reverted to correct version,
+         (newpCodeOpLit): truncate literals to 8 bit,
+         (genericPrint): added debug output,
+         (getRegFromInstruction): fixed for various operand types, simplified
+         (BuildFlow): fixed broken handling of isntructions with labels
+         (LinkFlow): start at last instruction in flow (skip trailing comments),
+           pass the flow on to the next instruction after CALL
+         (pCodeReplace): NEW, replace a pCode and move meta data to the new one
+         (insertPCodeInstruction): fixed inserting after a skip instruction,
+         (DoBankSelect): fixed for labeled instructions
+         (OptimizepBlock): honor --nopeep switch
+         (AnalyzeFlow,ReuseReg): prevent crash on source files with no function
+       * src/pic/pcodepeep.c (pCodePeepMatchRule): prevent NULL pointer accesses
+       * src/pic/pcoderegs.c (regIsLocal): NEW, check visibility of a register
+         (pCodeOptime2pCodes): allow disabling this optimization via
+           --no-pcode-opt due seldomly occuring bugs, fixed some conditions
+           but is still buggy), started implementation of a dataflow based
+           pCode optimization (CSE + dead code elimination)
+         (pCodeRegMapLiveRangesInFlow): removed bogus inCond
+       * src/pic/ralloc.c (initStack): renamed stack registers to STK%d, the new
+         names are independant of the stack location and therefore portable across
+         devices
+
+2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * src/mcs51/ralloc.c (bitType): added to detect bit variables,
+         (selectSpil): fixed bug 1337835 by not spilling bit variables
+       * support/regression/tests/bug1337835.c: added test for this bug
+       * src/mcs51/peeph.def: restart after rule 3.c,
+         addded rules 263.x to optimize loading constants
+
+2005-10-26 Raphael Neider <rneider AT web.de>
+
+       * src/SDCCsymt.c (compStructSize): allow signed bitfields for PIC ports
+       * src/pic16/gen.c (genUnpackBits): support signed bitfields,
+         (genAssign): emit warning when casting literals to generic pointer
+           type, also applies when taking the address of a fixed variable,
+         (genCast): improved casting to generic pointers
+       * src/pic16/glue.c (pic16emitStaticSeg): fixed(?) handling of fixed
+         extern variables, added verbose error message
+       * device/include/pic16/{string.h,errno.h}: added #pragma library c
+
+2005-10-26 Bernhard Held <bernhard AT bernhardheld.de>
+
+       * src/mcs51/gen.c (genMinus): fixed bug 1270906: reverse subtraction,
+       carry must be complemented too
+       * src/mcs51/peeph.def: addded rule 262 to remove double cpl c, which
+       could be emitted by genMinus
+       * src/SDCCval.c (constVal): fixed bug 1305065
+
+2005-10-25 Bernhard Held <bernhard AT bernhardheld.de>
+
+       * src/SDCCast.c (addCast): added promotion for bit variables
+       (decorateType): emit W_COMPLEMENT before the problem vanishes behind
+       promotion casts + optimisation
+       (optimizeGetWord): fix warning 'i' might be used uninitialized
+       * src/mcs51/gen.c (genCpl): removed W_COMPLEMENT
+       * src/ds390/gen.c (genCpl): removed W_COMPLEMENT
+
+2005-10-24 Bernhard Held <bernhard AT bernhardheld.de>
+
+       * src/SDCCicode.c (ast2iCode): reverted to 1.224 because of regression:
+       all chars are promoted to int; promotion should be handled in SDCCast.c
+
+2005-10-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
+
+       * device/lib/_strcmp.c: Fixed bug 1326457
+
+2005-10-11 Raphael Neider <rneider AT web.de>
+
+       * device/lib/pic16/libio/i2c.ignore: added 1320, fixes broken builds
+       * device/lib/pic16/libdev/pic18f1320.c: added 1320's device library
+
+2005-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * src/SDCC.y (AT): fixed bug with sfr32 addresses when built with GCC
+       * support/regression/tests/sfr16.c: added test for the sfr32 bug
+
+2005-10-04 Raphael Neider <rneider AT web.de>
+
+       * device/include/pic16/pic18fregs.h, src/pic16/devices.inc,
+         device/lib/pic16/pics.all: added pic18f1320
+       * src/pic16/pcode.c (mnem2key): fixed prototype's argument mismatch
+
+2005-09-30 Raphael Neider <rneider AT web.de>
+
+       * src/pic16/device.c (Pics16[]): moved device descriptions to devices.inc
+       * src/pic16/devices.inc: NEW, provides device descriptions
+       * src/pic16/gen.c (genInline): fixed handling of ';'-comments
+
+2005-09-26 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * src/SDCCicode.c (operandOperation): added GETABIT, GETBYTE, GETWORD and
+         GETHBIT
+
+2005-09-25 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * doc/sdccman.lyx: updated Highest Order Bit documentation,
+         documented Any Order Bit, Higher Order Byte and Higher Order Word
+       * src/SDCC.y: added tokens GETABIT, GETBYTE, GETWORD
+       * src/SDCCast.c (optimizeGetHbit): updated to also accept bool=expr&(1<<n),
+         (optimizeGetAbit): new, to get any bit, not only the high bit,
+         (optimizeGetByte): new, to get a byte from a (long) int: expr>>(8*n),
+         (optimizeGetWord): new, to get a word from a long int: expr>>(8*n),
+         (isConformingBody): also check GETABIT, GETBYTE, GETWORD,
+         (decorateType): '&': also try GETABIT, GETBYTE, GETWORD optimization,
+           RIGHT_OP: also try GETBYTE, GETWORD optimization,
+           GETABIT, GETBYTE, GETWORD: decorate them,
+         (isShiftRightLitVal, isBitAndPowOf2): new helper functions,
+         (ast_print): added GETABIT, GETBYTE, GETWORD
+       * src/SDCCcse.c (isSignedOp): added GETABIT, GETBYTE, GETWORD
+       * src/SDCCicode.c (codeTable): added GETABIT, GETBYTE, GETWORD,
+         (geniCodeBinary): new generic binary icode,
+         (ast2iCode): added GETABIT, GETBYTE, GETWORD
+       * src/port.h: updated comment for PORT.hasExtBitOp
+       * src/mcs51/gen.c (genGetAbit): new, to get any single bit,
+         (genGetByte): new, to get a single byte,
+         (genGetWord): new, to get a word from a long,
+         (gen51Code): added GETABIT, GETBYTE, GETWORD
+       * src/mcs51/main.c (hasExtBitOp): added GETABIT, GETBYTE, GETWORD
+
+2005-09-23 Raphael Neider <rneider AT web.de>
+
+       * configure.in, configure: have device/lib/pic configured
+       * device/lib/Makefile.in: added model-pic14
+       * device/lib/clean.mk: added pic/ to clean rule
+       * device/lib/pic: added rudimentary pic14 library providing support
+         functions for multiplication/division/generic pointer access
+       * src/SDCCopt.c (convilong): mark support functions as extern
+         for pic14 port as well
+       * src/pic/gen.c (genMult): added assertions,
+         (genpic14Code): emit warning on unhandled iCodes
+       * src/pic/main.c (_hasNativeMulFor): return true only for 8x8 bit
+       * src/pic/pcode.c (pCodeOpCopy),
+       * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed handling of various
+         pCodeOpReg-subtypes (PO_{STATUS,INTCON,PCL,PCLATH,PCLATU,BSR,
+         SFR_REGISTER}), made safe for future extensions
+       * src/pic16/pcode.c (pic16_safepCodeUnlink): allow for removal of
+         instructions even if preceeded by SKIP instructions (also remove
+         them); removed unused code
+       * src/pic16/pcode.h: added arg2 to pCodeOpLit to match pCodeOpLit2,
+         prevents leaving parts of the structure uninitialized after copying
+
+2005-09-22 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * src/mcs51/gen.c (genMinus): fix for undetected bug introduced 3 months
+         ago by me
+       * support/regression/tests/addsub.c: added test for the bug
+
+2005-09-21 Raphael Neider <rneider AT web.de>
+
+       * device/include/pic16/pic18f1220.h,
+         device/lib/pic16/libdev/pic18f1220.c: added ECCPAS sfr and bitfield
+       * device/lib/pic16/Makefile.rules: added missing opening paren
+       * src/pic16/gen.c (pic16_genNot,pic16_genCpl): removed as these
+         are provided in genutils.c,
+         (genUminusFloat,genUminus,genCmpEq): added asserts on different
+         operand/result sizes,
+         (genCmp): assert on NULL pointers first, then check deref'ed values
+       * src/pic16/genutils.c (pic16_genCpl): fixed for different operand/
+         result size
+
+2005-09-18 Raphael Neider <rneider AT web.de>
+
+       * src/pic16/gen.c (genFarPointerGet,genFarPointerSet): removed
+         as these are now unused,
+         (genPointerGet,genPointerSet): handle FPOINTERs like POINTERs
+       * src/pic16/pcode.c (pic16_symIsSpecial): assume REG_TMPs to be
+         local, avoids uninitialized pointer dereference on r->name
+       * src/pic16/ralloc.c (newReg): fixed indentation
+
+2005-09-13 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * src/SDCCval.c (constVal): fixed bug 730366
+       * support/Util/SDCCerr.c,
+       * support/Util/SDCCerr.h: added warning W_INVALID_INT_CONST
+
+2005-09-10 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * as/mcs51/lkmem.c (summary2): fixed report for absolute areas (bug 1210220)
+
+2005-09-09 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * src/mcs51/peeph.def (241.x): fixed bug when comparing generic pointers
+
+2005-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * as/hc08/lkaomf51.c (OutputName): made name unsigned char,
+         (hex2dec): made hex_digit unsigned char, removed ascii dependance
+       * as/mcs51/lkaomf51.c (OutputName): made name unsigned char,
+         (hex2dec): made hex_digit unsigned char, removed ascii dependance
+       * as/mcs51/lkarea.c (lnkarea2): sort absolute areas to the front
+       * packihx/packihx.c (hexDigit): made c unsigned char
+       * as/mcs51/lklibr.c (fndsym),
+       * link/z80/lkgb.c (gb),
+       * link/z80/lklibr.c (fndsym),
+       * link/z80/lkrloc.c (relr),
+       * sim/ucsim/libltdl/ltdl.c (load_deplibs, try_dlopen),
+       * src/SDCC.lex (checkCurrFile, process_pragma),
+       * src/SDCCglue.c (spacesToUnderscores),
+       * src/SDCCmain.c (setParseWithComma, processFile),
+       * src/asm.c (tvsprintf, printCLine),
+       * src/avr/gen.c (emitcode, aopPut),
+       * src/ds390/gen.c (emitcode),
+       * src/hc08/gen.c (emitcode, emitinline),
+       * src/mcs51/gen.c (emitcode, genInline),
+       * src/pic/pcodepeep.c (cvt_extract_destination, cvt_extract_status,
+         tokenizeLineNode),
+       * src/pic/ralloc.c (debugLog),
+       * src/pic16/pcodepeep.c (cvt_extract_destination, cvt_extract_status,
+         tokenizeLineNode),
+       * src/pic16/ralloc.c (debugLog),
+       * src/z80/main.c (_process_pragma):
+          made all ctype.h function calls safe
+       * src/SDCCopt.c: include math.h for fabs
+       * src/SDCCpeeph.c: added macros ISCHARDIGIT, ISCHARSPACE and ISCHARALNUM
+         and used them throughout the code to make ctype.h function calls safe
+       * src/ds390/main.c (asmLineNodeFromLineNode),
+       * src/mcs51/main.c (asmLineNodeFromLineNode): made p unsigned char*
+       * src/pic/gen.c (DEBUGpic14_emitcode, pic14_emitcode): made lbp
+          unsigned char*
+       * src/pic/pcode.c (mnem2key): made mnem unsigned char*,
+         (newpCodeAsmDir): made ctype.h function calls safe
+       * src/pic16/gen.c (pic16_emitpcomment, DEBUGpic16_emitcode,
+         pic16_emitcode):  made lbp unsigned char*
+       * src/pic16/pcode.c (mnem2key): made mnem unsigned char*,
+         (pic16_newpCodeAsmDir): made ctype.h function calls safe
+       * src/xa51/gen.c (emitcode),
+       * src/z80/gen.c (_emit2): made lbp unsigned char*
+       * support/Util/MySystem.c (split_command): made cmd_line and p unsigned
+          char*
+
+2005-09-05 Raphael Neider <rneider AT web.de>
+
+       * src/pic16/ralloc.c (pic16_allocDirReg): use device specific
+         access bank splitpoint
+
+2005-09-05 Raphael Neider <rneider AT web.de>
+
+       * device/lib/pic16/libc/Makefile: added (missing) string to SUBDIRS
+
+2005-09-03 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * .version: changed to version 2.5.3
+       * doc/sdccman.lyx: changed version to 2.5.3,
+         documented --codeseg and --constseg and pragma codeseg and constseg,
+         documented bit parameters (reentrant) and bit returning
+       * src/SDCCicode.c (geniCodeReceive): fixed (possible) bug generating
+          currFunc->recvSize, but is this ok for all ports?
+         (ast2iCode): result of ~ on unsigned char must be cast to int for
+          bool to work
+       * src/SDCCmem.c (allocGlobal, allocLocal): don't put bit returning
+         function pointers in bit space
+       * src/SDCCsymt.c (checkSClass): allow bit returning function pointers,
+         (processFuncArgs): call port.reg_parm() with reentrancy info
+       * src/port.h,
+       * src/avr/main.c,
+       * src/ds390/main.c,
+       * src/hc08/main.c,
+       * src/pic/main.c,
+       * src/pic16/main.c,
+       * src/xa51/main.c,
+       * src/z80/main.c: port.reg_parm prototype extended with
+         "bool reentrant" parameter
+       * src/mcs51/main.c (_mcs51_regparm): use parameter reentrant instead of
+         options.stackAuto for allocating bit register parameters
+       * src/mcs51/gen.c (genNot): optimized complementing direct bit,
+         (genSend): set BitBankUsed if it is,
+         (selectRegBank): factored out of genCall for use in genPcall,
+         (genCall): removed redundant dtype assignmen, use selectRegBank,
+         (genPcall): handle returning in Carry properly, save in F0 if needed,
+         (genReceive): handle bit register parameters
+       * src/mcs51/ralloc.c (updateRegUsage): update BitBankUsed along the way,
+         (mcs51_assignRegisters): enable bit registers for all reentrant
+          functions and don't set BitBankUsed unconditionally
+       * src/mcs51/peeph.def (177.d): fixed bug if %2==%3
+       * support/regression/tests/bitvars.c: enable tests for SDCC_STACK_AUTO
+       * support/regression/tests/funptrs.c: added tests for BOOL and for return
+
+2005-08-27 Borut Razem <borut.razem AT siol.net>
+
+       * device/lib/Makefile.in: cp on sparc-solaris (SunOS) and on
+       ppc-osx (Darwin) does not support -u option. It seems that it is
+       supported only on Linux - GNU cp
+
+2005-08-25 Borut Razem <borut.razem AT siol.net>
+
+       * sim/ucsim/gui.src/serio.src/Makefile.in,
+         sim/ucsim/s51.src/Makefile.in, sim/ucsim/avr.src/Makefile.in,
+         sim/ucsim/z80.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
+         sim/ucsim/xa.src/Makefile.in: install -s changed to 2 steps:
+         install and strip, since the strip at /usr/ccs/bin should be used
+         on solaris
+
+2005-08-24 Borut Razem <borut.razem AT siol.net>
+
+       * clean.mk, device/lib/clean.mk: find on sparc-solaris does not support -maxdepth option
+
+2005-08-23 Bernhard Held <bernhard AT bernhardheld.de>
+
+       * src/SDCCopt.c (convertToFcall): fixed modulus with divisors 1 and
+       ffffffffu
+
+2005-08-23 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * as/mcs51/aslink.h: completed lkrloc.c prototypes
+       * as/mcs51/lkmain.c (link_main): fixed warning
+       * device/include/stdbool.h: ds390 has no advanced bit support yet
+       * src/SDCC.y: use SPEC_SHORT and renamed _signed to b_signed
+       * src/SDCCsymt.c: use SPEC_SHORT and renamed _signed to b_signed
+       * src/SDCCsymt.h (struct specifier): renamed _xxx bitfields to b_xxx
+         and updated their macros
+       * src/SDCCval.c (constVal): updated comment for renamed b_long
+
+2005-08-22 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * as/mcs51/asdata.c: changed ctype['['] to BINOP
+       * as/mcs51/asexpr.c (expr): added case '[' for bit access in bdata,
+         (term): abused bit 15 of s_addr to indicate bit-addressable bytes,
+         (oprio): set priority for '['
+       * as/mcs51/aslink.h: added define R_BIT, and prototypes for adb_bit
+          and adb_24_bit
+       * as/mcs51/asm.h: added defines R_BIT and S_BIT
+       * as/mcs51/lkarea.c (lnksect2): use T for seg BIT_BANK and overlay it
+       * as/mcs51/lkdata.c: changed ctype['['] to BINOP
+       * as/mcs51/lkmain.c (Areas51): rel2 contains 12 (=C) areas now,
+         added overlayable BIT_BANK area
+       * as/mcs51/lkmem.c (summary): add BIT_BANK to BSEG_BYTES in the report,
+         (summary2): explain 'T' in legenda
+       * as/mcs51/lkrloc.c: replaced old K&R style,
+         (relr): added R_BIT processing,
+         (errmsg): added "Bit-addressable relocation error",
+         (adb_bit): added for converting from byte- to bit-addressable space,
+         (adb_24_bit): added for converting from byte- to bit-addressable space
+       * device/include/stdbool.h: changed BOOL to __bit for mcs51 as it can be
+          used in reentrant functions now even as return value
+       * device/lib/_gptrput.c (_gptrput): removed obsolete code
+       * src/SDCCast.c (resultTypePropagate): also propagate AND_OP and OR_OP,
+         (decorateType): case '!', GETHBIT, AND_OP, OR_OP: result in bool or char
+       * src/SDCCglobl.h: added indicator BitBankUsed
+       * src/SDCCglue.c (glue): emit area BIT_BANK with byte 'bits' and equ's for
+          the bit registers b0-b7
+       * src/SDCCicode.c (operandFromSymbol): removed IS_BITVAR check,
+         (geniCodeCast): fixed bug 1263853,
+         (geniCodeLogicAndOr): put result in bool or char,
+         (geniCodeReceive): added parameter func for accessing the return type,
+         (geniCodeFunctionBody): pass func to geniCodeReceive
+       * src/SDCCmain.c: added indicator BitBankUsed
+       * src/SDCCmem.c (allocLocal): explicitly set sclass for V_BIT
+       * src/SDCCsymt.c (newBoolLink): added for creating a bool/bit,
+         (checkSClass): don't put automatic bool/bit on stack,
+         (checkFunction): removed check on function cannot return bit
+       * src/SDCCsymt.h: added newBoolLink prototype
+       * src/mcs51/gen.c (rb1regs): added bit registers,
+         (movc): created for assigning to carry,
+         (pushReg, popReg): created for pushing registers,
+         (sameRegs): check both AOP_REG and AOP_CRY types,
+         (aopOp): handle bit registers,
+         (aopPut): optimization no self-assign,
+         (saveRegisters): push reg->base (bits) only once for bit registers,
+          and use pushReg,
+         (unsaveRegisters): pop reg->base only once and use popReg,
+         (assignResultValue): added parameter func and return in carry for bits,
+         (genIpush): optimization no reload in A if not changed,
+         (genSend): bit parameters in reentrant functions are passed in bit
+          registers by first assigning to bits in B, then save registers and
+          copy B to bits,
+         (genCall): handle returning in Carry properly, save it in F0 if needed,
+         (genPcall): updated assignResultValue call, this is not safe yet for bit
+          returning function !!!
+         (genFunction): don't generate equ's for bit registers and use pushReg,
+         (genEndFunction): take care of bit returning functions and use popReg,
+         (genRet): return bit in Carry,
+         (genIfx): optimize bit registers and other directly addressable bits,
+         (genReceive): updated assignResultValue call
+       * src/mcs51/main.c (_mcs51_reset_regparm): added regBitParmFlg,
+         (_mcs51_regparm): allow passing of upto 8 bit parameters in bit
+          registers when using stack-auto
+       * src/mcs51/ralloc.c (_G): added allBitregs,
+         (regs8051): added the bit registers,
+         (createStackSpil): use macro IS_BIT,
+         (getRegBit): added to allocate a bit register, else spill,
+         (getRegBitNoSpil): added to allocate a bit register, else a gpr,
+         (updateRegUsage): factored out to ease stepping while debugging,
+         (serialRegAssign): use updateRegUsage, only spill bits if necessary,
+          also allocate bit registers,
+         (fillGaps): handle bit registers,
+         (findAllBitregs): added to create bit vector with all bit registers,
+         (mcs51_allBitregs): returns this bit vector,
+         (mcs51_assignRegisters): when using stack-auto use bit registers for
+          passing parameters and creating local variables
+       * src/mcs51/ralloc.h: added B0_IDX..B7_IDX and prototype mcs51_allBitregs
+
+2005-08-22 Borut Razem <borut.razem AT siol.net>
+
+       * device/lib/Makefile.in: replaced find option -or with -o
+         to make it run on solaris
+
+2005-08-22 Raphael Neider <rneider AT web.de>
+
+       * src/pic16/gen.c (pic16_loadFromReturn): added check for AOP_PCODE,
+         fixes #1265442 (crash on Solaris)
+
+2005-08-20 Borut Razem <borut.razem AT siol.net>
+
+       * configure, configure.in: added tests for libsocket and libnsl libraries,
+         requred by sdcdb on sparc-solaris; generate support/regression/Makefile
+         from support/regression/Makefile.in
+       * support/regression/Makefile.in: added
+       * device/lib/pic16/Makefile.common.in: force make to use bash shell
+       * sim/ucsim/libtool: regenerated on sparc-solaris
+       * sim/ucsim/avr.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
+         sim/ucsim/s51.src/Makefile.in, sim/ucsim/xa.src/Makefile.in,
+         sim/ucsim/z80.src/Makefile.in: removed GNU ld specific linker options
+         -Wl,--start-group and -Wl,--end-group to enable ucsim compilation on
+         sparc-solaris, which doesn't use GNU ld linker
+       * device/lib/Makefile.in: cp on sparc-solaris (SunOS) does not support -u option
+       * as/Makefile: find on sparc-solaris does not support -maxdepth option
+
+2005-08-19 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * src/mcs51/peeph.def: updated comments
+
+2005-08-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
+
+       * device/lib/_gptrget.c,
+       * device/lib/_gptrput.c: slightly shorter
+       * doc/sdccman.lyx: incremented version
+       * src/mcs51/peeph.def: moved peephole comments to the line of first
+         change to better keep line correlation, reanimated 186.e
+       * src/mcs51/peeph.def: renamed similar peepholes by using suffixes
+
+2005-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
+
+       * src/pic/pcode.c : Pasted ".line" assembly directives patch from
+         David Saxton with quotes around file name.
+
+2005-08-15 Borut Razem <borut.razem AT siol.net>
+
+       * support/regression/tests/bitfields.c, support/regression/tests/bitvars.c,
+         support/regression/tests/bitwise.c, support/regression/tests/literalop.c,
+         support/regression/tests/rotate.c, support/regression/tests/zeropad.c:
+         make tests run on x86_64 platform
+
+2005-08-13 Raphael Neider <rneider AT web.de>
+
+       * device/lib/pic16/Makefile.subdir: weakened clean-intermediate rule
+         as it might be executed DURING a build (parallel make is wonderful)
+
+2005-08-13 Raphael Neider <rneider AT web.de>
+
+       * device/lib/Makefile.in (port-specific-objects-pic16):
+         revert to cp $(PORT)/bin/*.* $(PORTDIR)
+       * device/lib/pic16/Makefile: added .PHONY targets, removed builddir
+         dependency
+       * device/lib/pic16/Makefile.rules: build subdirs before creating
+         the library, removed builddir rule, create $(builddir) early in
+         recurse rule, use empty recurse rule for leaf directories
+       * device/lib/pic16/Makefile.subdir: added phony targets, ignore
+         mkdir errors (race condition), removed duplicate suffix "hex"
+         from clean rules
+       * device/lib/pic16/libdev/Makefile: recursive make via + and $(MAKE)
+       * device/lib/pic16/libio/Makefile: create sub-make's builddir early,
+         prevents mkdir -p from aborting on Alpha
+
+2005-08-12 Raphael Neider <rneider AT web.de>
+
+       * src/pic16/glue.c (pic16_print(G)PointerType): do not flush
+         db-statements in order to allow for arrays of pointers in code
+         sections to be placed without interspersed 0-padding, fixes
+         bug #1256215
+       * (emitStatistics): fixed division by zero for pic18f1220
+       * src/pic16/pcode.c: buffer (up to) 12 DB directives to allow for
+         unpadded writing of 8-bit, 16-bit, 24-bit and 32-bit values
+       * (pic16_emitDS): respect DB_ITEMS_PER_LINE
+       * (pic16_pCodeConstString): keep track of already emitted string
+         literals to prevent "duplicate definitions of symbol _str_NR"
+       * src/pic16/ralloc.c (pic16_allocRegByName): removed not so helpful
+         debug message
+       * device/lib/Makefile.in: ignore failing PIC16 library builds
+       * device/lib/pic16/Makefile: do not build if gputils are missing
+       * device/lib/pic16/Makefile.common.in: do not enforce MAKEFLAGS=-s
+
+2005-08-10 Raphael Neider <rneider AT web.de>
+
+       * device/lib/Makefile.in: fixed copying pic16 libraries (broken by
+         my last commit)
+
+2005-08-10 Raphael Neider <rneider AT web.de>
+
+       * src/*.c, src/pic16/{gen.c,glue.c,main.c}: applied Vangelis
+         Rokas' patch to add the new fixed point type "__fixed16x16"
+       * device/lib/pic16/libsdcc/fixed16x16: added Vangelis' support
+         functions for __fixed16x16 arithmetics
+       * device/lib/pic16: reimplemented the build system to support
+         a separate build directory, better handling of libio (create
+         the library in a separate subdir for each architecture) and
+         easier configuration (centralized in Makefile.common)
+
+2005-08-07 Raphael Neider <rneider AT web.de>
+
+       * src/pic16/gen.c (genrshTwo): fixed sign extension
+       * src/pic16/device.c: added pic18f2320, 4220 and 4320
+       * device/include/pic16/pic18f2220.h: changed some bit definitions,
+         added T0CONbits
+       * device/include/pic16/pic18f4220.h: NEW, header for
+         pic18f4220 and pic18f4320
+       * device/include/pic16/pic18fregs.h: added new devices,
+         embraced Nop(), ClrWdt(), Sleep() and Reset() with do {} while(0)
+       * device/include/pic16/signal.h: resolved name clashes
+         on bit definitions, added DEF_HANDLER2(sig1,sig2,handler)
+         to also allow testing for interrupt enable bits, added
+         comments on how to use the macros
+       * device/lib/pic16/libdev/pic18f2220.c: added T0CONbits
+       * device/lib/pic16/libdev/pic18f{2320,4220,4320}.c: NEW,
+         register definitions for the devices
+       * device/lib/pic16/pics.all: added new devices
+       * device/lib/pic16/libc/stdlib/calloc.c: fixed zeroing
+         allocated memory
+       * device/lib/pic16/libc/stdlib/memfree: do not count
+         the block header as free memory
+       * device/lib/pic16/libc/stdlib/memmisc.c (_initHeap):
+         simplified and added missing end-of-blocklist-marker
+         (reported by Peter Onion, fixes #1252814)
+       * (_mergeHeapBlock): fixed loop condition
+       * device/lib/pic16/libc/stdlib/realloc.c: return NULL for
+         len==0, restructured code
+       * device/lib/pic16/libc/stdlib/{malloc,memfreemax}.c: cleaned
+         up a bit, reduced bitfield accesses, prevent endless loops
+         in case of heap corruption
+       * device/lib/pic16/libc/stdlib/x_ftoa.c: disabled
+         "unreferenced arguments/must return a value" warnings
+       * device/lib/pic16/libio/usart/ubaud.c (usart_baud):
+         replaced BAUDREG with SPBRG
+       * device/lib/pic16/libsdcc/lregs/{lrrest.c,lrst.c},
+         device/lib/pic16/debug/gstack/gstack.c: replaced
+         _naked, _asm, _endasm with __naked, __asm, __endasm
+
+2005-08-05 Raphael Neider <rneider AT web.de>
+
+       * src/pic16/gen.c (pic16_aopGet): fixed handling of offsets in
+         AOP_PCODE operands, fixes multibyte union-bitfield-accesses
+
+2005-08-05 Borut Razem <borut.razem AT siol.net>
+
+       * device/lib/Makefile.in: added missing ';'
+       * configure: removed ^M characters
+
+2005-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
+
+       * device/include/mcs51/at89c51ed2.h, device/include/mcs51/p89v51rd2.h,
+         device/include/mcs51/at89s53.h: changed to GNU Lesser General Public
+         License
+
+2005-08-04 Borut Razem <borut.razem AT siol.net>
+
+       * configure.in: pic16 libraries build 2nd try - enable running
+         configure in device/lib/pic16
+       * configure: regenerated from configure.in
+       * device/lib/Makefile.in: create $(PORT)/bin directory
+
+2005-08-03 Raphael Neider <rneider AT web.de>
+
+       * src/pic16/gen.c (pic16_derefPtr): NEW, single place
+         to get/set values via pointers
+       * (genUnpackBits,genPackBits): changed detection of
+         ptr->bitfield vs. sym.bitfield, fixed access via generic
+         pointers, removed dead (wrong) code for multibyte bitfields
+       * (genNearPointerGet, genGenPointerGet): removed useless code,
+         fixed bitfield detection, fixes #1250594
+       * (genNearPointerSet): removed useless code
+       * src/pic16/gen.h: renamed pic16_emitpcode to pic16_emitpcode_real
+         and introduced macro pic16_emitpcode that conditionally emits
+         the origin of the following pCode (useful for debugging SDCC)
+       * src/pic16/pcode.c: changed (and disabled) some debug outputs
+       * (createDefmap): fixed handling of LFSR for --optimize-df
+
+2005-08-02 Borut Razem <borut.razem AT siol.net>
+
+       * device/lib/Makefile.in: pic16 libraries build enabled since
+         gputils-0.13.2 are now localy installed at sourceforge's compile farm
+
+2005-08-02 Raphael Neider <rneider AT web.de>
+
+       * src/pic16/gen.c (genPackBits): removed deprecated warning
+       * (genGenPointerSet): fixed bitfield detection
+
+2005-08-02 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
+
+       * device/include/mcs51/msm8xc154s.h: Removed PT2 definition, now in 8052.h.
+
+2005-07-31 Raphael Neider <rneider AT web.de>
+
+       * device/lib/pic16/libdev/pic18f458.c,
+         device/include/pic16/pic18f458.h: added missing T0CONbits
+
+2005-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * device/include/mcs51/msm8xc154s.h: added, thanks to Matthias Arndt
+
+2005-07-28 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * src/mcs51/gen.c (operandsEqu): fixed bug 1246687
+
+2005-07-23 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
+
+       * device/include/mcs51/at89c51ed2.h: added.
+
+2005-07-23 Raphael Neider <rneider AT web.de>
+
+       * src/pic/gen.h: added emitpcode macro for debugging
+       * src/pic/gen.c (emitpcode): renamed to emitpcode_real
+         and replace by macro adding debug information on demand
+       * (genNot): fixed to C semantics (!0 = 1; !x = 0 iff x != 0)
+       * (gencjne): tried to fix; replaced with correct (slower) code
+       * (gen{Unp,P}ackBits): fixed single bit access
+       * src/pic/pcode.c (AnalyzepCode): fixed DFPRINTF argument
+       * src/pic/pcodepeep.c (pCodeSearchCondition): fixed finding
+         previous instruction
+       * src/pic/pcoderegs.c (regIsSpecial): NEW, check whether a
+         register has to be handled with care (forbidding movement
+         of assignments/uses, removing assignments completely, ...)
+       * (pCodeOptime2pCodes): make use of regIsSpecial
+       * added lots of debugging output (commented out)
+       * src/pic/rallloc.c (deassignLRs): prevent operand registers
+         from being reused as result UNLESS it is known to work
+
+2005-07-23 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * support/Util/dbuf.h: include <stddef.h> for size_t
+       * .version: changed to version 2.5.2
+
+2005-07-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+       * src/SDCCloop.c (loopInvariants): fixed bug #1234048
+
+2005-07-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+       * src/hc08/gen.c (genMinus): fixed bug #1241835,
+         (genModOneByte): removed needless psha/pula
+
+2005-07-22 Raphael Neider <rneider AT web.de>
+
+       * src/SDCCmain.c (linkEdit): initialized linkerScriptFileName,
+         have PIC14 handled like PIC16, fixes broken pic14 linker calls
+       * src/pic/gen.c (resolveIfx): do not "invent" labels
+       * (genSkipc): changed to positive logic
+       * (genSkipCond): removed as no longer needed
+       * (pic14_mov2w_regOrLit,genCmp): NEW, replacement for buggy version,
+         backport from PIC16
+       * (genLeftShift): check operands are in different registers
+       * src/pic/genarith.c (genPlus): replaced INCF with ADDLW as
+         INCF does not update CARRY...
+       * src/pic/main.c: fixed _linkCmd
+       * src/pic/pcode.c (unlinkpCode): added inactive code
+       * src/pic/ralloc.c (deassignLRs): keep arguments to shift operations
+         alive (do not assign result and operand overlapping registers)
+
+2005-07-22 Raphael Neider <rneider AT web.de>
+
+       * src/pic/device.c (dump_sfr): replaced register declaration with
+         call to emitSymbolToFile() to avoid duplicate symbols
+       * (assignRelocatableRegisters): do not declare external symbols
+       * src/pic/ralloc.c (allocNewDirReg): fixed to get size of arrays
+         right (take size of type, not etype)
+       * (allocDirReg): fixed call to allocNewDirReg() to pass OP_SYM_TYPE
+       * (writeUsedRegs): also dump dynDirectRegs (e.g. local variables)
+       * (packRegsForAccUse): disabled assignment of WREG as
+         the result reg to prevent occurence of just fixed #1235003,
+         fixes #1242954
+       * src/pic/glue.c (emitSymbolToFile): NEW, central place to declare
+         symbols (avoids duplicate symbols in .asm file)
+       * (pic14emitRegularMap): use emitSymbolToFile()
+       * src/pic/gen.c (aopOp): fixed spillLocation handling
+       * (gen{Unp,P}ackBits): fixed acquiring bit-operands
+       * (genDataPointerSet): removed unneccessary variables/output
+
+2005-07-22 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * as/mcs51/lkarea.c: enlarged codemap for banked memory
+       * device/lib/mcs51/crtbank.asm: added # to 0x0F
+
+2005-07-21 Raphael Neider <rneider AT web.de>
+
+       * src/pic/gen.c (aopOp): do not generate AOP_ACC operands as pic14
+         architecture cannot handle them efficiently, fixes bug #1235003
+       * src/pic16/device.c (pic16_dump_{u,i}section,pic16_dump_int_registers):
+         check for empty sets before using them (fixes bug #1232190)
+
+2005-07-19 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * as/mcs51/lkarea.c (lnkarea, lnkarea2): improved BSEG size calculation,
+         (lnksect2): generate warnings for memory overlap
+       * src/SDCC.lex (doPragma, process_pragma): added pragma's codeseg and
+         constseg to set the name of these segments so you can instruct the linker
+         to place them in banks
+       * src/SDCCast.c (decorateType): use new macro IS_FUNCPTR()
+       * src/SDCCglobl.h: added MODEL_HUGE to enum,
+         added code_seg and const_seg to options
+       * src/SDCCglue.c (emitMaps): use options.const_seg,
+         (createInterruptVect): put interrupt vectors in segment HOME,
+         (glue): put HOME before static segment and put the main glue in HOME,
+         (glue): use options.code_seg
+       * src/SDCCicode.c (geniCodeCall): use new macro IS_FUNCPTR()
+       * src/SDCCmain.c: added option --codeseg and --constseg to set the name of
+         these segments so you can instruct the linker to place them in banks
+         (linkEdit): use code_loc for HOME segment which should be the first
+         segment in code memory now
+       * src/SDCCmem.c: fixed more stuff like bug 1238386
+       * src/SDCCsymt.c (getSize): use generic pointer size for banked functions,
+         (changePointer): don't change function pointers to code pointers for
+         banked functions,
+         (compareType): added exceptional check for banked function pointers
+       * src/SDCCsymt.h: changed IFFUNC_ISBANKEDCALL, added IS_FUNCPTR
+       * src/hc08/main.c (_hc08_genAssemblerPreamble): put HOME first, put CSEG
+         after static in code memory
+       * src/mcs51/gen.c: added aopLiteralLong prototype,
+         (aopForSym): use getSize for functions,
+         (genCall): generate banked calls over one trampoline __sdcc_banked_call
+         in HOME with lsb of address in r0, msb in r1 and bank in r2, use
+         -Wl-bBANKSEG=0xbbaaaa option to set the address (aaaa) and bank (bb) of
+         the segment,
+         (genPcall): use call for literal function pointers and generate banked
+         calls over the one trampoline so there's only one place for the user to
+         modify according to his/hers hardware,
+         (genEndFunction): jump to __sdcc_banked_ret in HOME for banked functions,
+         (genPlusIncr): moved check icount>4 beyond inc dptr optimization
+       * src/mcs51/main.c: added keyword banked,
+         (_mcs51_genExtraAreas): put HOME first followed by GSINIT, STATIC and CSEG
+       * support/Util/SDCCerr.c,
+       * support/Util/SDCCerr.h: added E_BANKED_WITH_CALLEESAVES, registers are
+         needed for passing the bank and address to the trampoline
+       * device/lib/mcs51/crtbank.asm: added for bankswitching
+       * device/lib/mcs51/Makefile: added crtbank
+
+2005-07-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+       * src/SDCCcse.c (algebraicOpts): fixed loss of volatility
+         for fields at offset 0 of a struct or union as reported
+         on 2005-07-07 in the developer mailing list.
+
+2005-07-15 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * src/SDCCmem.c: fixed bug 1238386
+
+2005-07-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
+
+       * src/mcs51/peeph.def: added labelrefcounting for peepholes
+         (patch #1144962), added peephole 300, enabled 259.x
+       * doc/sdccman.lyx: removed screenshot and provided link instead
+
+2005-07-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
+
+       * doc/sdccman.lyx: added section about debugging with ddd
+       * doc/figures/ddd_example.eps: screenshot of debugging session
+
+2005-07-04 Raphael Neider <rneider AT web.de>
+
+       * src/pic/gen.c (genPointerGet): handle pointers to CONST values
+         like CODE pointers, fixes #1115683
+       * src/pic/pcode.c (DoBankSelect): forget LastRegIdx during function
+         call, fixes bugs #1232211, #1228110,
+         fixed wrong casts to pCodeFlow from pCodeInstructions
+
+2005-07-04 Raphael Neider <rneider AT web.de>
+
+       * src/pic/gen.c (popGet): changed assert to allow for
+         bit operands
+       * (popGetAddr): changed signature to provide
+         an additional index, patched all call sites
+       * (genCmpEq): handle literal-like operands correctly
+       * (genAddrOf): added sanity checks on __code/__data pointers
+       * (genAssign): added handling of symbols from __code section
+       * (gencjne): do not generate code for comparisons whose result
+         is neither stored nor used, fixes bug #1171114
+       * (AccLsh, AccRsh): operate on operand instead of WREG
+       * (shift{Left,Right}_Left2ResultLit): NEW, size independant
+         replacement for Shift{LR}{12}Left2Result; shift (byte/int/long)
+         by known count
+       * rewrote complete shift-by-literal logic, commented unused
+         functions out
+       * (genConstPointerGet): get multiple bytes (if result size > 1),
+         fixed handling of non-immediate addresses
+       * (genPointerGet): handle CODE pointers like CONST pointers
+       * (genpic14Code): insert C-SRC lines as Cource-pCodes
+       * ({aop,op}_isLitLike): NEW, single place to decide whether an
+         operand is to be treated as a literal or not
+       * (mov2w,genPcall,genCmpEq),
+         src/pic/genarith.c: use aop_isLitLike() to decide between
+         literal/register contents
+       * (addSign): added missing offset
+       * src/pic/gen.h: remove newline after FENTRY/FEXIT comments,
+         only emit comment in debug-mode,
+         use {aop,op}_isLitLike throughout the file
+       * src/pic/glue.c: fix initializers for pointers (work in progress)
+       * src/pic/pcode.c (get_op): honor index on _const symbols
+       * ({reset,dump}pCodeStatistics): NEW, estimate code size
+       * (dumppBlock): added pCode size estimation
+       * src/pic/ralloc.c (deassignLRs,serialRegAssign,packRegisters):
+         check for IS_SYMOP before OP_SYMBOL'ing
+       * fixed indentation, compacted switch-statements
+       * (allocReg): find free register and allocate it instead of
+         allocating new registers all the time
+       * (deassignLRs): prevent POINTER_GET's from being assigned the same
+         registers as its operands (necessary only for multibyte GETs)
+
+2005-07-01 Raphael Neider <rneider AT web.de>
+
+       * src/pic/gen.h: added prototypes emitpComment, popGetAddr and
+         debugging .asm-output macros FENTRY + FEXIT
+       * src/pic/gen.c (Safe_vsnprintf): NEW, is there a more generic
+         way... I wonder...
+       * (emitpComment): NEW, printf to pCode
+       * (popGet): added assert on too large offsets, fixed PO_IMMEDIATE's
+         offset handling
+       * (popGetAddr): NEW, variant of popGet to access an immediates
+         high(er) bytes instead of the n'th byte of memory they reference,
+         replaced popGet with popGetAddr where neccessary
+       * (genDataPointerGet): reactivated and fixed implementation
+       * (genNearPointerGet): enabled call to genDataPointerGet, fixes array-
+         accesses
+       * (genDataPointerSet): fixed multibyte assignments
+       * (genpic14Code): fixed --i-code-in-asm handling
+       * src/pic/genarith.c: fixed PO_IMMEDIATE issue using popGetAddr,
+       * (genPlus): fixed index-out-of-bounds error
+       * src/pic/pcode.c (get_op): fixed PO_IMMEDIATE's index/offset handling
+       * src/pic/ralloc.c: added debugging output macro FENTRY2
+       * (spillThis): fixed indentation, enbraced for-body for clarity
+       * (rematStr): commented out as now unused
+       * (regTypeNum): commented out special spill case (overwrites
+         arbitrary values)
+       * fixes bugs #1229346, #1216476 (both arrays) and #1115667 (SIGSEGV)
+
+2005-06-30 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * doc/sdccman.lyx: documented sfr16/sfr32,
+         added example for using storage class with function pointers
+       * src/mcs51/gen.c (genPlusIncr): optimized small offsets from dptr
+
+2005-06-28 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * device/lib/_gptrget.c: also push/pop _PSBANK, added # to 0x03
+       * device/lib/_itoa.c,
+       * device/lib/_ltoa.c: optimized codesize
+       * src/SDCCsymt.c (checkSClass): added sanity check for sfr at addresses,
+         but don't know how to suppress the double warning.
+       * src/mcs51/gen.c (genPlusIncr): fixed bug when incrementing volatile int's
+       * support/Util/SDCCerr.c,
+       * support/Util/SDCCerr.h: added warning W_SFR_ABSRANGE for sanity check
+
+2005-06-27 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * as/mcs51/asexpr.c (expr): disabled warning "not in .flat24 mode",
+         fixed old K&R prototypes
+       * as/mcs51/asout.c (outrb): always output as if generating 24bit addresses
+       * device/lib/_gptrget.c,
+       * device/lib/_gptrgetc.c,
+       * device/lib/_gptrput.c: changed versions for new memory indicator values,
+         also new versions for small generic pointers and banked generic pointers
+       * src/port.h: added const_name
+       * src/SDCC.lex: added keywords sfr16, __sfr16, sfr32, __sfr32
+       * src/SDCC.y: added tokens SFR16, SFR32 and their sfr_attributes
+       * src/SDCCcse.c (findPrevIc): check all associative operators
+       * src/SDCCglue.c (emitMaps): use CONST_NAME if defined
+       * src/SDCCicode.h: added macro IS_ASSOCIATIVE
+       * src/SDCCmem.c: updated comments,
+         set far-space to 0 for pdata, results in optimized code
+       * src/SDCCmem.h: added macro CONST_NAME
+       * src/SDCCsymt.h: renumerated generic pointer types GPTYPE_... thereby
+         moving the info into the highest bits, see also gptrget/gptrput
+       * src/src.dsp: added sdcc.ico to project files
+       * src/avr/gen.c (genCast): fixed bug 0x%d
+       * src/avr/main.c (avr_port): added "CONST (CODE)" for const_name
+       * src/ds390/gen.c (aopForRemat, adjustArithmeticResult): disconnected direct
+         relation between ptr_type and DCL_TYPE,
+         (genCast): fixed bug 0x%d
+       * src/ds390/main.c (ds390_port, tininative_port, ds400_port): added "CONST
+         (CODE)" for const_name
+       * src/hc08/gen.c (genCast): fixed bug 0x%d
+       * src/hc08/main.c (_hc08_genAssemblerPreamble): added .area ...const_name,
+         (hc08_port): added "CONST (CODE)" for const_name
+       * src/mcs51/gen.c (aopForSym): optimized pushing ACC,
+         (aopForRemat, adjustArithmeticResult): disconnected direct relation
+         between ptr_type and DCL_TYPE,
+         (aopGetUsesAcc, aopGet, aopPut): changed first parameter from asmop* to
+         operand* and took AOP() inside function so sfr-ness can be checked,
+         (all over): repaired calls to aopGetUsesAcc, aopGet, aopPut to comply with
+         new prototype,
+         (genFunction, genEndFunction): optimized stack setup,
+         (genMinus): optimized for literals with ending zeroes (in bytes),
+         (genCast): fixed bug 0x%d
+       * src/mcs51/main.c (_mcs51_keywords): added sfr16 and sfr32,
+         (mcs51_port): added "CONST (CODE)" for const_name
+       * src/mcs51/peeph.def: made rule 226 more generic
+       * src/pic/main.c (pic_port): added "CONST (CODE)" for const_name
+       * src/pic16/main.c (pic16_port): added "CONST (CODE)" for const_name
+       * src/xa51/main.c (xa51_port): added "CONST (CODE)" for const_name
+       * src/z80/main.c (z80_port): added NULL for const_name,
+         (gbz80_port): added NULL for const_name
+       * support/regression/tests/bug663539.c,
+       * support/regression/tests/sfr16.c: new tests
+
+2005-06-25 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
+
+       * device/include/mcs51/p89v51rd2.h, device/include/mcs51/at89s53.h: added.
+
+2005-06-24 Raphael Neider <rneider AT web.de>
+
+       * device/lib/pic16/libdev/pic18f[68][567]20.c:
+         corrected typos...
+       * device/include/pic16/signal.h: added USBIF
+         and SIG_USB
+
+2005-06-24 Raphael Neider <rneider AT web.de>
+
+       * device/lib/pic16/libdev/pic18f2455.c,
+         device/include/pic16/pic18f2455.h: NEW
+       * device/include/pic16/pic18fregs.h,
+         device/lib/pic16/pics.all,
+         src/pic16/device.c: added 18f2455
+       * device/lib/pic16/libdev/pic18f[68][567]20.c,
+         device/include/pic16/{pic18f[68][567].h,usart.h}:
+         replaced MULTIPLE_USARTS define with more relaible
+         compatibility sfrs (for USART access)
+
+2005-06-20 Slade Rich <slade_rich AT users.sourceforge.net>
+
+       * src/pic/pcode.c : Fixed problem when a string constant contains a "\r\n"
+         and the output asm file line is printed on two lines.
+
+2005-06-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+       * sim/ucsim/hc08.src/inst.cc (inst_condbranch): fixed simulation of
+         BGT, BLE, BHI, and BLS instructions
+       * src/hc08/gen.c (outAcc, outBitC, outBitNV, genCmpLt, genCmpGt,
+         genCmpEq): removed
+       * src/hc08/gen.c (genCmpEQorNE, genCmp, branchopCmp, nameCmp,
+         negatedCmp, exchangedCmp, genhc08Code): rewrite of comparison handling,
+         fixes bug #1216342
+       * src/hc08/peeph.def: added rules 2g - 2l for new conditional branches
+
+2005-06-15 Raphael Neider <rneider AT web.de>
+
+       * src/pic16/NOTES: moved Vangelis from active developers to people to contact
+       * device/include/pic16/{6520.h,8520.h}: fixed configuration bits
+       * src/pic16/gen.c (): prevent iTemps from being considered to be in CODESPACE,
+         fixes bug #1221120; for symbols in CODESPACE get number of bytes to read from
+         OP_SYM_TYPE() instead of OP_SYM_ETYPE()
+
+2005-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
+
+       * device/include/mcs51/reg764.h: Changed PB0 to PBO as requested by
+         Marcel Telka in bug #1215704
+
+2005-06-02 Slade Rich <slade_rich AT users.sourceforge.net>
+
+       * src/pic/pcode.c : Changed pseudo stack size to 15 to allow WSAVE to be
+         located in shared memory bank.
+
+2005-05-31 Raphael Neider <rneider AT web.de>
+
+       * src/pic16/{gen.c,genarith.c}: replaced sign-extension
+         "CLRF, BTFSC <signbit>, DECF/COMF" with side-effect-free
+         "CLRF, BTFSC <signbit>, SETF"; fixes "long>>9"
+
+2005-05-27 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * device/lib/_strncpy.c: fixed the fix
+
+2005-05-26 Raphael Neider <rneider AT web.de>
+
+       * src/pic16/glue.c (pic16_printIvalChar): fixed _constant_ string
+         initializers with \0, bug #1208187
+       * src/pic/glue.c (printIvalChar): fixed (non- and constant) string
+         intializers with \0, bug #1208187
+
+2005-05-26 Raphael Neider <rneider AT web.de>
+
+       * src/pic16/glue.c (pic16_printIvalChar): fixed string
+         initializers with \0, bug #1208187
+       * src/pic16/main.c (_process_pragma): added sanity checks
+         for stack position and size, emit warnings when appropriate
+
+2005-05-26 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * device/lib/_strncpy.c: fixed not filling with \0
+
+2005-05-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+       * src/SDCCast.c (funcOfType, funcOfTypeVarg, stringToSymbol,
+         createFunction),
+       * src/SDCC.y (external_definition, enumerator, parameter_declaration,
+         compound_statement),
+       * src/SDCCsymt.h,
+       * src/SDCCsymt.c (addSymChain, processFuncArgs): fixed bug #1159134
+
+2005-05-24 Raphael Neider <rneider AT web.de>
+
+       * src/pic16/glue.c (pic16_printGPointerType): fixed #1207796
+
+2005-05-24 Raphael Neider <rneider AT web.de>
+
+       * device/include/pic16/pic18f{442,452,458}.h: fixed wrong
+         TRISE definitions, closes bug #1162453
+
+2005-05-22 Raphael Neider <rneider AT web.de>
+
+       * src/pic16/main.c (_process_pragma): check for missing
+         arguments to pragmas code and udata
+       * device/include/pic16/pic18f{2550,4331,4455,4520}.h:
+         consistency fixes to match other headers (thanks to Jim Paris)
+       * device/lib/pic16/libio/i2c.ignore: 18f4331 provides no I2C
+
+2005-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * src/SDCCicode.c (isOperandEqual): fixed missing ;
+
+2005-05-19 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * support/regression/tests/bug1198642.c: new test
+       * src/SDCCicode.c (isOperandEqual): fixed bug 1198642
+       * src/SDCCcse.c (findPrevIc): added comment, please have a look
+       * support/scripts/resource.h,
+       * support/scripts/resource.rc,
+       * src/src.dsp: added sdcc.ico to project as icon for sdcc.exe
+       * support/scripts/sdcc.ico: added 32x32 icon
+
+2005-05-18 Raphael Neider <rneider AT web.de>
+
+       * device/lib/pic16/libdev/pic18f*.c,
+       * device/include/pic16/pic18f*.h: updated "sfr" and "at X"
+         keywords to "__sfr" and "__at (X)"
+       * device/include/pic16/pic18fregs.h: added pic18f4520
+       * src/pic16/pcode.c (pic16_pCode2str): fixed (?) bug
+         #1203088 (MPLAB compatibility)
+
+2005-05-17 Raphael Neider <rneider AT web.de>
+
+       * device/include/pic16/pic18f{2550,4331,4455,4520}.h: NEW
+       * device/lib/pic16/libdev/pic18f{2550,4331,4455,4520}.c: NEW
+       * device/lib/pic16/pics.all: added new devices
+       * src/pic16/device.c: added support for pic18f4520
+
+2005-05-16 Raphael Neider <rneider AT web.de>
+       * src/pic16/gen.{c,h}: s/mov2f/pic16_mov2f made public
+       * src/pic16/genarith.c (genAddLit): fixed bug 1202480
+       * src/pic16/pcode.{c,h} (pic16_newpCodeOpBit_simple): NEW
+         convenience function for bit access
+
+2005-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * device/lib/printf_large.c: fixed bug 1193299
+       * support/regression/tests/bug1057979.c: added test %3.3s
+
+2005-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
+
+       * device/include/mcs51/8051.h,
+       * device/include/mcs51/8052.h: made parseable with lint
+       * device/include/mcs51/lint.h: added include file for (sp)lint
+       * doc/sdccman.lyx: added doc about use of splint (syntax checking tool)
+       * doc/cdbfileformat.lyx,
+       * doc/test_suite_spec.lyx: hardcoded date to the date of last text change
+
+2005-05-14 Raphael Neider <rneider AT web.de>
+
+       * device/lib/pic16/Makefile.common.in: add --optimize-df to OPT_FLAGS
+       * device/lib/pic16/libc/stdlib/itoa.c (new)
+       * device/lib/pic16/libc/stdlib/Makefile: have itoa.c built
+       * device/lib/pic16/libio/Makefile: exclude subdir according to
+         ${subdir}.ignore for certain PICs (lacking e.g. i2c)
+       * device/lib/pic16/libio/i2c.ignore (new): pic18f1220 has no I2C support
+       * src/pic16/gen.c (genFunction): prevent annoying warning
+       * src/pic16/pcode.c: renamed stack_t to dynstack_t to prevent
+         nameclashes on BeOS
+       * support/cpp2/cppmain.c (cpp_output_string): new
+       * support/cpp2/cpplib.c (_cpp_do__Pragma): fixed _Pragma(""),
+         fixes bug 1116802
+
+2005-05-13 Borut Razem <borut.razem AT siol.net>
+
+       * src/SDCCmain.c (linkEdit): fixed bug 1195202
+
+2005-05-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+       * .version: changed to version 2.5.1; back to bleeding edge development
+
+2005-05-11 Borut Razem <borut.razem AT siol.net>
+
+       * doc/sdccman.lyx doc/cdbfileformat.lyx doc/test_suite_spec.lyx:
+         generate PDF version 1.3 documents
+
+2005-05-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+       * .version: changed to version 2.5.0
+
+2005-04-27 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
+
+       * doc/sdccman.lyx: updated weblinks, index and smaller updates
+
+2005-04-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+       * doc/sdccman.lyx: changed version 2.5.0, documented --std-c89,
+       --std-sdcc89, --std-c99, --std-sdcc99, and the corresponding #pragmas, as
+       well as many smaller updates.
+       * .version: changed to version 2.5.0-pre1
+
+2005-04-26 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
+
+       * src/SDCCmain.c (setIncludePath): added port->target to SDCC_INCLUDE_NAME
+
+2005-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * support/regression/tests/bug1185672.c: added
+       * src/mcs51/gen.c (aopGetUsesAcc, genCpl, genAnd, genOr, genXor): fixed
+         bug 1185672
+       * src/mcs51/gen.c (genCall): added comments, made it look safer
+       * src/mcs51/gen.c (genEndFunction): simplified
+
+2005-04-25 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * src/mcs51/ralloc.c (serialRegAssign): fixed bug 1189609
+
+2005-04-14 Borut Razem <borut.razem AT siol.net>
+
+       * fixed bug 1045046 - SIGSEGV with really simple code?:
+         src/pic/pcode.c (pCodeInitRegisters)- pseudo stack size increased to 16
+         src/pic/ralloc.c (typeRegWithIdx) - error message on pseudo stack overflow
+
+2005-04-14 Borut Razem <borut.razem AT siol.net>
+
+       * src/pic16/gen.c (genInline), src/pic16/main.c (_process_pragma),
+         src/pic16/device.h: temporarily disabled experimental #inline pragma
+         for 2.5.0 release
+
+2005-04-14 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * device/include/z80/stdio.h,
+       * device/include/z80/string.h: removed these highly incomplete files so
+         SDCC can use the default ones in device/include/
+
+2005-04-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+       * src/mcs51/gen.c (genEndFunction): removed unused variable to fix
+       gcc warning.
+       * device/lib/Makefile.in: default PORTINCDIR to the mcs51 subdir to
+       fix sdcpp warnings.
+
+2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * device/include/malloc.h: removed redundant __reentrant prototypes
+       * device/lib/_mullong.c: added working xstack variant in asm (C version
+         doesn't pass regression tests)
+       * device/lib/bpx.c: used __data and made bpx char for mcs51
+       * src/SDCCast.c (decorateType): removed unused GPTYPE_IDATA,
+         (createFunction): fixed bug with xstackPtr
+       * src/SDCCcse.c: corrected comments
+       * src/SDCCopt.c (convertToFcall): fixed warning in MSVC,
+         (killDeadCode, eBBlockFromiCode): removed unused code
+       * src/SDCCsymt.h: removed unused GPTYPE_GPTR and GPTYPE_IDATA,
+         corrected comments
+       * src/mcs51/gen.c (aopForSym, aopPut, toBoolean, unsaveRegisters,
+         assignResultValue, genCall, genFunction, genEndFunction, genAnd,
+         genOr, genXor, genAddrOf): fixed several bugs concerning xstack
+         (genModOneByte): fixed warning in MSVC
+       * src/mcs51/main.c (): added comments
+       * src/mcs51/peeph.def: changed 129 to 129.a, added 129.b, 129.c & 129.d
+
+2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * src/SDCCmain.c (linkEdit): oops, changed one line too many
+
+2005-04-11 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * src/SDCCmain.c (linkEdit): fixed bug with finding crt0.o for z80
+
+2005-04-10 Vangelis Rokas <vrokas AT users.sourceforge.net>
+
+       * src/pic16/glue.c (printIvalChar): fixed bug when emitting
+       characters arrays of larger size than the declared one.
+
+2005-04-10 Borut Razem <borut.razem AT siol.net>
+
+       * src/pic/gen.c (genInline),
+         src/pic/pcode.c (newpCodeAsmDir), (pCode2str),
+         (genericPrint), (unlinkpCodeFromBranch), (compareLabel),
+         (findNextInstruction), (findPrevInstruction),
+         (findInstructionUsingLabel),
+         src/pic/pcode.h: fixed bug #1164907 - Labels not being recognized
+       * src/pic/pcode.c (findLabel): added missing '\n'
+       * src/src.dsp: added SDCCdwarf2.c to the project
+
+2005-04-09 Borut Razem <borut.razem AT siol.net>
+
+       * support/scripts/sdcc.nsi: added include/hc08/* h to NSIS setup
+
+2005-04-08 Raphael Neider <rneider AT web.de>
+
+       * src/pic16/pcode.c: added helpers defmapInsertAfter (insert a new item
+         into the chain after a given one) and mergeDefmapSymbols (combine
+         defmap entries for each symbol per pcode)
+       * (createDefmap): have defmap entries merged in the end
+       * (defmapReplaceSymRef): split defmap entries covering two accesses to
+         a symbol before replacing one access type's symbol, merge symbols in
+         the end (replacement symbol might already have an entry)
+       * (assignValnums): keep reference to written WREG intact
+
+2005-04-08 Raphael Neider <rneider AT web.de>
+
+       * src/pic16/pcode.c (struct defmap_s): named anonymous union (for
+         Alpha)
+
+2005-04-08 Vangelis Rokas <vrokas AT users.sourceforge.net>
+
+       * src/pic16/pcode.c (pic16_get_op2): enlarged size of array b to 128
+       bytes
+
+2005-04-07 Raphael Neider <rneider AT web.de>
+
+       * device/include/pic16/usart.h: added compatibility defines for
+         devices with more than one USART
+       * device/include/pic16/pic18f[68][567]20.h: activated above defines
+
+2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * device/lib/Makefile.in: updated for port specific include
+
+2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * support/regression/ports/mcs51/spec.mk: added mcs51 include
+
+2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * device/include/8051.h,
+       * device/include/8052.h,
+       * device/include/at89S8252.h,
+       * device/include/at89c55.h,
+       * device/include/at89x051.h,
+       * device/include/at89x51.h,
+       * device/include/at89x52.h,
+       * device/include/mcs51reg.h,
+       * device/include/reg51.h,
+       * device/include/reg764.h,
+       * device/include/regc515c.h,
+       * device/include/sab80515.h: (re)moved these 12 files
+       * device/include/mcs51/8051.h,
+       * device/include/mcs51/8052.h,
+       * device/include/mcs51/at89S8252.h,
+       * device/include/mcs51/at89c55.h,
+       * device/include/mcs51/at89x051.h,
+       * device/include/mcs51/at89x51.h,
+       * device/include/mcs51/at89x52.h,
+       * device/include/mcs51/mcs51reg.h,
+       * device/include/mcs51/reg51.h,
+       * device/include/mcs51/reg764.h,
+       * device/include/mcs51/regc515c.h,
+       * device/include/mcs51/sab80515.h: and added them here
+
+2005-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * device/include/stdarg.h: changed SDCC specific keywords to double
+         underlined form.
+       * device/include/stdint.h: changed intptr_t and uintptr_t for others than
+         mcs51 and ds390.
+       * device/include/hc08/mc68hc908gp32.h,
+       * device/include/hc08/mc68hc908jb8.h,
+       * device/include/hc08/mc68hc908jkjl.h,
+       * device/include/hc08/mc68hc908qy.h: fixed comments
+       * device/include/mcs51/README: updated
+       * device/include/mcs51/c8051f120.h: added PINRSF
+       * device/lib/pic16/libc/stdlib/crc16.c: fixed comments
+       * src/pic16/pcode.c: MSVC6 doesn't accept declaring new variables
+         amidst code. Also inline is not supported.
+
+2005-04-06 Raphael Neider <rneider AT web.de>
+
+       * src/pic16/pcode.c (pic16_pCodeReplace): also update pcflow->end
+       * (createDefmap): fixed CALLs to depend on FSR1 and RETLW to restore
+         callers stack/frame pointers
+
+2005-04-06 Vangelis Rokas <vrokas AT users.sourceforge.net>
+
+       * device/include/pic16/usart.h: added, missing in previous commit,
+       * device/include/pic16/adc.h: fixed typo,
+       * device/lib/pic16/libc/utils/cvtdec.S: added missing in previous
+       commit,
+       * device/lib/pic16/libc/stdlib/g_ftoa.S: modified to include
+       <p18fxxx.inc>
+       * device/lib/pic16/libc/stdio/streams.c: leave stdin, stdout
+       uninitialized because a bug appears with gplink
+       * device/lib/pic16/{some makefiles}: moved $(CSTD) from CFLAGS to
+       COMPILE_FLAGS and added CPPFLAGS with -nostdinc because sdcpp
+       complains for unrecognised option
+
+2005-04-05 Raphael Neider <rneider AT web.de>
+
+       * src/pic16/gen.c (pic16_popCopyReg): made copying work for extended
+         structs as well (using memcpy)
+       * (genFunction): fixed comparison, used pCodeOpLabel to reduce warning
+         on ISRs (GOTO has no label)
+       * src/pic16/device.h: added OF_OPTIMIZE_DF
+       * src/pic16/main.c: added compiler switch --optimize-df to enable the
+         new data flow analysis/optimization
+       * src/pic16/pcode.c: added (prototypes for and implementation of)
+         dataflow analysis functions, fixed pCodeInstructions' inCond and
+         outCond values, made RCALL a branch instruction
+       * (pic16_unlinkpCode): keep C line if possible
+       * (pic16_pCodeUnlink): removed cast on left side of assignment, have
+         C line moved if possible
+       * (pic16_getRegFrompCodeOp): NEW, improved version of...
+       * (pic16_getRegFromInstruction,pic16_getRegFromInstruction2): changed
+         to use new pic16_getRegFrompCodeOp (works for more SFRs)
+       * (pic16_BuildFlow): fixed skip instructions with label (did not start
+         new flow)
+       * (pic16_getJumptabpCode): NEW, needed in...
+       * (LinkFlow): fixed handling of jumptables, calls and conditional
+         branches
+       * (pic16_InsertCommentAfter): NEW
+       * (pic16_pCodeReplace): made verbose and flow preserving
+       * (AnalyzeFlow): added call to data flow analysis
+       * src/pic16/pcode.h: added defmaps to pCodeFlow struct
+       * src/pic16/pcodeflow.h: added PCC_STATUS to mean all STATUS bits
+       * src/pic16/ralloc.c (packRegsForAssign): added return 1 in the end
+
+2005-04-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+       * src/SDCCast.c (decorateType): fixed bug #1105626
+
+2005-04-02 Vangelis Rokas <vrokas AT users.sourceforge.net>
+
+        * device/include/asm/pic16/features.h,
+        * pic18f*.h headers,
+        * device/include/pic16/adc.h,
+        * device/include/pic16/delay.h,
+        * device/include/pic16/i2c.h,
+        * device/include/pic16/malloc.h,
+        * device/include/pic16/stdio.h,
+        * device/include/pic16/stdlib.h,
+        * device/include/pic16/string.h,
+        * device/lib/pic16/libc/stdio/printf_tiny.c,
+        * device/lib/pic16/libc/stdio/printf_small.c,
+        * device/lib/pic16/libc/stdio/strmgpsim.c,
+        * device/lib/pic16/libc/stdio/strmmssp.c,
+        * device/lib/pic16/libc/stdio/strmusart.c,
+        * device/lib/pic16/libc/stdio/vfprintf.c,
+        * device/lib/pic16/libc/stdlib/ltoa.c,
+        * device/lib/pic16/libc/stdlib/putchar.c,
+        * device/lib/pic16/libc/stdlib/x_ftoa.c,
+        * device/lib/pic16/libc/stdlib/memchrpgm.c,
+        * device/lib/pic16/libc/stdlib/memchrram.c,
+        * device/lib/pic16/libc/stdlib/memcpypgm2ram.c,
+        * device/lib/pic16/libc/stdlib/memcpyram2ram.c,
+        * device/lib/pic16/libio/adc/adcbusy.c,
+        * device/lib/pic16/libio/adc/adcread.c,
+        * device/lib/pic16/libio/adc/adcsetch.c,
+        * device/lib/pic16/libio/usart/ubaud.c,
+        * device/lib/pic16/libio/usart/ubusy.c,
+        * device/lib/pic16/libio/usart/udrdy.c,
+        * device/lib/pic16/libio/usart/uopen.c,
+        * device/lib/pic16/libio/usart/uputc.c,
+        * device/lib/pic16/libsdcc/gptr/gptrget1.c,
+        * device/lib/pic16/libsdcc/gptr/gptrget2.c,
+        * device/lib/pic16/libsdcc/gptr/gptrget3.c,
+        * device/lib/pic16/libsdcc/gptr/gptrget4.c,
+        * device/lib/pic16/libsdcc/gptr/gptrput1.c,
+        * device/lib/pic16/libsdcc/gptr/gptrput2.c,
+        * device/lib/pic16/libsdcc/gptr/gptrput3.c,
+        * device/lib/pic16/libsdcc/gptr/gptrput4.c: modified all SDCC
+        specific keywords to double underlined form,
+        * device/lib/pic16/libc/Makefile.rules,
+        * device/lib/pic16/libsdcc/Makefile.rules,
+        * device/lib/pic16/libm/Makefile,
+        * device/lib/pic16/libio/Makefile.rules: added CSTD macro in CFLAGS
+        to compile with C standard set in Makefile.common
+        * device/lib/pic16/libc/stdlib/Makefile: added new C sources
+        rand.c and crc.c in compilation process,
+        * device/lib/pic16/libsdcc/int/divuint.c,
+        * device/lib/pic16/libsdcc/long/divulong.c: changed declaration of
+        `c' from signed to unsigned,
+        * device/lib/pic16/startup/crt0.c,
+        * device/lib/pic16/startup/crt0i.c,
+        * device/lib/pic16/startup/crt0iz.c: adopted to all SDCC specific
+        keywords to double underlined form, bug fixes in _do_cinit function
+        which prevented the correct initialization of the .idata segment,
+        * src/pic16/pcoderegs.c (insideLRBlock): fixed a bug that caused the
+        core to enter a infinite loop
+        * device/lib/pic16/libc/stdlib/rand.c, crc.c: new files
+
+2005-04-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+       * src/SDCCicode.c (getArraySizePtr): fixed bug #1122171
+
+2005-04-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+       * device/include/Makefile.in: add support for hc08 subdirectory
+       * device/include/hc08/: new subdirectory
+       * device/include/hc08/mc68hc908jkjl.h: new header contributed by
+       Lucas Loizaga, thanks!
+       * device/include/hc08/mc68hc908qy.h,
+       * device/include/hc08/mc68hc908gp32.h,
+       * device/include/hc08/mc68hc908jb8.h: moved hc08 register defs to
+       their own directory. Changed internal macro names to use the compiler
+       reserved namespace. Changed SDCC specific keywords to double
+       underlined form.
+       * device/include/math.h,
+       * device/include/malloc.h,
+       * device/include/stdarg.h,
+       * device/include/stdbool.h
+       * device/include/string.h,
+       * device/include/tinibios.h,
+       * device/include/ds400rom.h,
+       * device/include/8051.h,
+       * device/include/8052.h,
+       * device/include/80c51xa.h,
+       * device/include/at89c55.h,
+       * device/include/at89S8252.h,
+       * device/include/at89x51.h,
+       * device/include/at89x52.h,
+       * device/include/ds80c390.h,
+       * device/include/reg764.h,
+       * device/include/regc515c.h,
+       * device/include/sab80515.h,
+       * device/include/mcs51/c8051f000.h,
+       * device/include/mcs51/c8051f018.h,
+       * device/include/mcs51/c8051f020.h,
+       * device/include/mcs51/c8051f040.h,
+       * device/include/mcs51/c8051f060.h,
+       * device/include/mcs51/c8051f120.h,
+       * device/include/mcs51/c8051f300.h,
+       * device/include/mcs51/c8051f310.h,
+       * device/include/mcs51/c8051f320.h,
+       * device/include/mcs51/c8051f330.h,
+       * device/include/mcs51/c8051f350.h,
+       * device/include/z180.h: Changed SDCC specific keywords to double
+       underlined form.
+
+2005-03-31 Vangelis Rokas <vrokas AT users.sourceforge.net>
+
+       * src/pic16/device.c (Pics16[]): added devices 18F2550, 18F4331,
+        18F4455,
+        * (pic16_assignConfigWordValue): disable testing of configuration
+        register value with config mask,
+        * src/pic16/gen.c (pic16_testStackOverflow): prefix stack test
+        function with port->fun_prefix,
+        * (genFunction): when generating a naked interrupt function never
+        create an absolute segment placed in interrupt vector address, place
+        the actual interrupt function at IVA instead, when an interrupt
+        function is generated with unspecified interrupt then do not create
+        the absolute section,
+        * (genGenPointerGet, genGenPointerSet, genPackBits): replace all
+        code for generating a call to generic pointer get/put function with
+        a call to function pic16_callGenericPointer(),
+        * src/pic16/genutils.c (pic16_callGenericPointerRW): NEW, generates
+        the call to the generic pointer get/put functions with prefixing the
+        function name with port->fun_prefix,
+        * src/pic16/glue.c (pic16glue): ifdef-out test of OF_LR_SUPPORT,
+        * src/pic16/main.c (_process_pragma): prefix function with
+        port->fun_prefix,
+        * (_pic16_finaliseOptions): define macro __18Fxxxx macro when
+        calling assembler, old 18Fxxxx macro is deprecated,
+        * src/pic16/pcode.c (unlinkpCodeFromBranch): added PC_INLINE and
+        PC_ASMDIR in while condition,
+        * (findInstruction): add PC_ASMDIR in while condition,
+        * (buildCallTree): prefix main with port->fun_prefix,
+        * (pic16_pCode2str): fixed bug that didn't emit the memory access
+        identifier for variable with banked access in instructions BTFSS,
+        BTFSC, BCF, BSF, BTG
+        * (AnalyzeFlow): moved call to OptimizepCode to pic16_AnalyzeBanking,
+        * src/pic16/pcodepeep.c (pCodeOpCompare): increase size of b to 1024,
+        * src/pic16/pcoderegs.c (pic16_pCodeRegoptimizeRegUsage): don't
+        perform optimization when enviroment variable NO_REG_OPT is set,
+        * (insideLRBlock): NEW, return 1 if register is inside an
+        INF_LOCALREGS block,
+        * (RemoveRegFromLRBlock): remove a register that is completely
+        eliminated by register optimization, but it is still left in local
+        register store/restore in/from stack block,
+        * (Remove2pcodes): after removing register, check to see if it
+        should be removed from local register store/restore in/from stack
+        block,
+        * src/pic16/ralloc.c (pic16_decodeOp): added decode for
+        DUMMY_READ_VOLATILE,
+
+        * device/include/pic16/adc.h: minor prototype modifications and
+        update,
+        * device/include/pic16/malloc.h: added GPL notice various
+        modifications,
+        * device/include/pic16/stdint.h: NEW, standard header for ints
+        * device/include/pic16/delay.h: NEW, header for delay functions,
+        delay10tcy, delay100tcy, delay1ktcy, delay10ktcy, delay100ktcy,
+        delay1mtcy,
+        * device/include/pic16/signal.h: NEW, header providing helper macros
+        for implementing signal handlers,
+        * device/include/pic16/stdio.h: added prototypes for functions,
+        printf, vprintf, sprintf, vsprintf, fprintf, vfprintf. Added
+        prototypes for stdin and stdout, added macro PUTCHAR to
+        automatically implement putchar function prototype,
+        * device/include/pic16/usart.h: modified and updated USART library,
+        * device/lib/pic16/libio/adc/,
+        * device/lib/pic16/libio/i2c: some modifications to improve library
+        performance,
+        * device/lib/pic16/libc/stdio/: modifications for the new printf*
+        family of functions,
+        * device/lib/pic16/libc/stdlib/: various modifications in the malloc
+        family of functions and other sources,
+        * device/lib/pic16/libio/usart/: NEW, c sources for the usart module
+        of the PIC18Fxx[28] devices,
+        * device/lib/pic16/libc/delay/: NEW, c sources for the delay functions,
+        * device/lib/pic16/libc/utils/: minor modifications in the .S sources,
+        * device/lib/pic16/startup/{crt0i.c, crt0iz.c}: redesign of the
+        _do_cinit function, because the previous failed when local variables
+        where not placed in the same memory bank,
+        * device/lib/pic16/libsdcc/char/: various modifications to improve
+        library performance,
+        * doc/sdccman.lyx: some reorganization of the PIC16 part, added many
+        information on the new functions of the c library and more...
+
+2005-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+       * src/SDCCBBlock.c (iCodeBreakDown): fixed bug #1170212
+
+2005-03-26 Raphael Neider <rneider AT web.de>
+
+       * src/pic16/gen.c (genSkipc): fixed semantics (execute branch
+         if condition == CARRY)
+       * (genCmp): adapted to new genSkipc semantics
+       * src/pic16/genutils.c (pic6_genCmp_special): removed side effect
+         on rIfx (genCmp was broken)
+
+2005-03-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+       * src/SDCCmain.c (setDefaultOptions, optionsTable[], parseCmdLine),
+       * src/z80/main.c (_keywords[]),
+       * src/SDCCglobal.h (struct options),
+       * src/SDCC.y,
+       * src/SDCC.lex (isTargetKeyword, doPragma, pragma_tbl[]): new pragmas
+       to enable/disable SDCC and C99 extensions/keywords (std_c89, std_sdcc89,
+       std_c99, std_sdcc99). Also, equivalent command line options (--std-c89,
+       --std-sdcc89, --std-c99, --std-sdcc99). SDCC specific keywords are
+       always available in leading double underscore form. The C99 support is
+       mostly missing, but it's a start.
+       * support/regression/tests/bug-227710.c: fixed nonconforming use of
+       reserved identifier "__data".
+
+2005-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * src/mcs51/peeph.def: fixed bug 1170013
+
+2005-03-22 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * device/include/mcs51reg.h: fixed bug 842007
+
+2005-03-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+       * src/SDCCcflow.c (dfNumCompare): committed the wrong version of this
+       last time.
+
+2005-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+       * src/port.h (struct PORT),
+       * src/avr/ralloc.c (avr_assignRegisters),
+       * src/avr/main.c,
+       * src/ds390/ralloc.c (ds390_assignRegisters),
+       * src/ds390/main.c,
+       * src/hc08/ralloc.c (hc08_assignRegisters),
+       * src/hc08/main.c,
+       * src/mcs51/ralloc.c (mcs51_assignRegisters),
+       * src/mcs51/main.c,
+       * src/pic/ralloc.c (pic14_assignRegisters),
+       * src/pic/main.c,
+       * src/pic16/ralloc.c (pic16_assignRegisters),
+       * src/pic16/main.c,
+       * src/xa51/ralloc.c (xa51_assignRegisters),
+       * src/xa51/main.c,
+       * src/z80/ralloc.c (z80_assignRegisters),
+       * src/z80/ralloc.h,
+       * src/SDCCopt.c (eBBlockFromiCode, replaceRegEqv, killDeadCode),
+       * src/SDCCcse.c (ifxOptimize, cseBBlock, cseAllBlocks),
+       * src/SDCCcse.h,
+       * src/SDCCdflow.c (computeDataFlow),
+       * src/SDCCdflow.h,
+       * src/SDCCloop.c (addDefInExprs, loopInvariants, loopOptimizations),
+       * src/SDCCloop.h,
+       * src/SDCCcflow.c (*),
+       * src/SDCCcflow.h,
+       * src/SDCCBBlock.c (iCodeBreakDown, dumpEbbsToFileExt, eBBWithEntryLabel),
+       * src/SDCCBBlock.h (struct ebbIndex): new struct that keeps two copies
+       of the eBBlock list, sorted by both bbnum and dfnum. (fixes bug with
+       immedDom() returning wrong block; probably fixes bug #1160833)
+
+2005-03-20 Borut Razem <borut.razem AT siol.net>
+
+       * support/scripts/inc2h.pl: WIN32 port
+
+2005-03-19 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * device/lib/makefile.in: added abs.c and labs.c
+
+2005-03-17 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * device/include/stdint.h: added
+       * device/lib/abs.c: added
+       * device/lib/labs.c: added
+       * device/include/stdlib.h: added abs() and labs() prototypes
+       * device/lib/libsdcc.lib: added abs and labs
+       * device/include/float.h,
+       * device/lib/_fsmul.c,
+       * device/lib/printf_fast.c,
+       * device/lib/printf_tiny.c: updated comments
+
+2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+       * src/SDCCicode.c (geniCodeSwitch, geniCodeJumpTable): fixed
+       bug #1164313
+
+2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+       * src/SDCCcse.c (cseBBlock): retain assignment to self when volatile
+       * src/SDCCast.c (isLoopCountable): fixed bug #1161985
+
+2005-03-15 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * device/lib/printf_large.c: removed inline assembly for portability and
+         readability. Use printf_fast if speed or size are more important.
+       * src/pic16/gen.c: removed conditions around use of DEBUGpc
+       * src/pic16/genutils.h: added define for DEBUGpc for MSVC
+
+2005-03-15 Vangelis Rokas <vrokas AT users.sourceforge.net>
+
+       * src/pic16/genutils.c (pic16_genCmp_special): initialized offs to
+       prevent compiler warning
+
+2005-03-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
+
+       * device/lib/pic16/startup/crt0i.c (_cinit): local variables where
+       moved to level 0 and declared as static. Also they are explicit
+       placed in access bank. This was necessery because some times they
+       might cross memory bank boundaries. crt0iz.c is *NOT* updated!!!
+       * src/pic16/device.h: added flag OPTIMIZE_CMP to enable some compare
+       optimizations. Currently only compare to unsigned char is implemented,
+       * src/pic16/gen.c: added fReturnIdx array,
+       * (struct resolvedIfx) is moved to gen.h and made public,
+       * (struct _G): added sregsAlloc and sregsAllocSet fields,
+       * (aopForSym): added an optimization to directly store in stack of
+       the operand of a SEND iCode,
+       * (pic16_aopOp): don't return return registers as strings (AOP_STR)
+       but as registers instead (AOP_REG) using the fReturnIdx array,
+       * (pic16_freeAsmop): remove the freed register from the
+       _G.sregsAlloc field,
+       * (pic16_aopGet): in case AOP_STR, the compare to 'a' is changed to
+       a compare of 'WREG',
+       * (pic16_popGetTempRegCond): changed function prototype, now
+       function takes also a bitVector argument v which holds the current
+       set of registers that are allocated for stack access by aopForSym,
+       registers allocated in aopForSym for accessing stack symbols are not
+       any more part of the functions usedRegs field,
+       * (genCall): some times aopOp is called for a stack variable to be
+       send, aopForSym might perform the push, if this is true make sure
+       that genCall doesn't push the variable twice by testing _G.resDirect,
+       * (genFunction): changed testing for unspecified interrupt number
+       from 256 to INTNO_UNSPEC,
+       * modified selection scheme of frame pointer generation. Previously
+       if function did use local registers a frame pointer was generated,
+       now a frame pointer is generated only if function has arguments
+       (that need PLUSW2 register access), or has stack arguments, or the
+       compiler is not instructed to omit the frame pointer,
+       * (genEndFunction): before restoring local registers that were saved
+       in the function preamble, also restore the registers that *might*
+       have been allocated for stack access,
+       * (genRet): removed some old comments,
+       * (genCmp, the active (RN's) version): added a call to the
+       pic16_genCmp_special function to perform the compare with a more
+       robust and optimized way,
+       * (genInline): a feature has been added in inline code generation,
+       which allows a wildcard variable substitution when writing inline
+       assembly. Code is incomplete and experimental therefore undocumented,
+       * (genCast): changed order of aopOp for result and right to allow
+       aopForSym to directly load the result if possible,
+       * src/pic16/genutils.c (selectCompareOp, pic16_genCmp_special): NEW,
+       perform an optimized compare on some selected special occasions,
+       * src/pic16/genutils.h: declaration of resolvedIfx structure from gen.c,
+       * src/pic16/glue.c (pic16createInterrupVect): make sure we never
+       generate an IVT any more,
+       * src/pic16/main.c (pic16_optionsTable): added command line option
+       --optimize-cmp,
+       * (_pic16_initPaths): when calling C preprocessor define pic18fXXXX
+       macro too, when calling assembler define pic18fXXXX *and* __18Fxxxx
+       macros,
+       * src/pic16/NOTES: Raphael Neider added in list of active developers
+       * src/pic16/pcode.c (OPT_TYPE_STR): added strings jumptable_begin and
+       jumptable_end to prevent bug #,
+       * (pic16_pciADDWFC, ADDFWC, COMF, CLRF): added some missing flags in
+       inCond and outCond fields,
+       * src/pic16/pcoderegs.c (pCodeOptime2pCodes): add a fix for bug #,
+       * src/pic16/ralloc.c (serialRegAssign): explicit set willCS to 0 to
+       turn off register spilling,
+       * (packRegsForOneUse): synced with other ports' versions although it
+       is not used currently,
+       * (pic16_packRegisters): added an optimization while reading
+       structure bitfields, some registers may be saved (malloc code is
+       decreased by 80 bytes)
+
+2005-03-12 Vangelis Rokas <vrokas AT users.sourceforge.net>
+
+       * src/SDCCcse.c (cseBBlock): inside 'do operand lookup' loop test if
+       left is a bitfield, if yes, then don't optimize assignment. Perhaps
+       this can be optimized more?
+
+2005-03-10 Raphael Neider <rneider AT web.de>
+
+       * src/pic16/gen.c (pic16_loadFSR0, genPackBits, genUnpackBits,
+         genNearPointerGet): (hopefully) fixed access to bitfields via
+         pointers (p->bitN = x; and x = p->bitN; failed)
+
+2005-03-09 Paul Stoffregen <paul AT pjrc.com>
+
+       * device/lib/printf_fast.c: fix leading zero format, eg "%02d"
+
+2005-03-09 Raphael Neider <rneider AT web.de>
+
+       * src/SDCCopt.c (killDeadCode): fixed bug #1156016
+
+2005-03-06 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * src/SDCCicode.h: moved CRITICAL and ENDCRITICAL from SKIP_IC2 to SKIP_IC
+       * src/mcs51/ralloc.c (willCauseSpill): added check for REG_BIT type,
+         (regTypeNum): set REG_BIT type if necessary
+       * src/mcs51/ralloc.h: added define REG_BIT, used to fix bug 1144613
+       * support/regression/tests/critical.c: check bug 1144613
+
+2005-03-02 Raphael Neider <rneider AT web.de>
+
+       * src/pic16/gen.c (genRightShiftLiteral): fixed bug #1154256
+
+2005-02-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+       * src/avr/ralloc.c (serialRegAssign),
+       * src/ds390/ralloc.c (serialRegAssign),
+       * src/hc08/ralloc.c (serialRegAssign),
+       * src/mcs51/ralloc.c (serialRegAssign),
+       * src/pic/ralloc.c (serialRegAssign),
+       * src/pic16/ralloc.c (serialRegAssign),
+       * src/xa51/ralloc.c (serialRegAssign),
+       * src/z80/ralloc.c (serialRegAssign): fixed bug #1105154
+
+2005-02-22 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * src/SDCCast.c (decorateType): fixed bug 1124787
+
+2005-02-20 Hubert Sack <sack AT digiplan.de>
+       committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
+
+       * src/mcs51/peeph.def: added peepholes 3.h-k and 132.a-f from
+       patch #1121755
+
+2005-02-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
+
+       * src/SDCCpeeph.def: new keyword "labelRefCountChange" which allows peepholes
+       to keep the correct label reference count when adding/removing references
+       to labels. A peephole file using this is appended to patch #1144962.
+
+2005-02-14 Raphael Neider <rneider AT web.de>
+
+       * device/lib/pic16/libc/string/memccpy.c: changed 3rd argument to char
+       * src/SDCC.lex (process_pragma): fixed to make disable_warning work for PIC16
+       * src/pic16/gen.c (aopForSym, calls to pic16_aopOp): prevent unneccessary
+         retrievals of result operand's value on assignment
+
+2005-02-13 Vangelis Rokas <vrokas AT otenet.gr>
+
+       * device/include/pic16/string.h: modified prototype for memccpy()
+       to memccpy(void *, void *, char, size_t)
+       * src/pic16/gen.c (genFunction, genEndFunction): reenable if-case to
+       check whether to omit frame pointer or not,
+       * (genInline): convert all occurences of "\n" to LF in inline
+       assembler blocks, this helps formatting the inline text,
+       * (pic16_loadFSR0): modified prototype,
+       * (genNearPointerGet, genNearPointerSet): reorganization of code,
+       removed some 8051 legacy code,
+       * (genPackBits): enabled handling bitfields exceeding one byte in size,
+       * src/pic16/ralloc.c (pic16_assignRegisters): clear dynrIdx variable
+       before allocating temporary registers in functions,
+
+2005-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * support/regression/tests/bitvars.c: corrected the "fix"
+
+2005-02-10 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * support/regression/tests/bitvars.c,
+       * support/regression/tests/bitwise.c,
+       * support/regression/tests/rotate.c: "fixed" problems on Alpha
+
+2005-02-10 Raphael Neider <rneider AT web.de>
+
+       * src/pic16/pcode.c (assignToSameBank) : fixed cast to pointer of
+         different size for Alpha
+       * src/pic16/gen.c (genCmpEq) : improved compare with 0
+
+2005-02-09 Raphael Neider <rneider AT web.de>
+
+       * src/SDCC.lex(doPragma) : save and restore warning options as well
+         (also added new stack plus clone- and copyAndFreeSDCCERRG())
+       * have #pragma less_pedantic set the errorlevel to WARNING
+         (fixes #1117001)
+       * (cloneOptimize) : fixed wrong malloc's size
+       * support/Util/SDCCerr.[ch] : made SDCCERRG globally accessible to
+         facilitate correct handling of #pragma (save|restore)
+
+2005-02-09 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * src/mcs51/gen.c: removed non-standard C nameless struct/union
+
+2005-02-04 Slade Rich <slade_rich AT users.sourceforge.net>
+
+       * src/pic/gen.c : Fix for bugs #1080519 & #1115662.
+
+2005-02-03 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * device/include/mcs51/c8051f120.h: added declarations for sbit port 2,3&4
+
+2005-02-02 Raphael Neider <rneider AT web.de>
+
+       * src/SDCCast.c (processParms): disabled W_NONRENT_ARGS for pic16 port
+       * src/pic16/gen.c (aopForSym): reenabled special case for function pointers
+       * (pic16_storeForReturn): fixed to allow returning function pointers
+       * (genPackBits): improved accessing full bytes, implemented for GPOINTERs
+       * device/include/pic16/{stddef.h,stdbool.h}: added
+
+2005-02-02 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * device/include/mcs51/c8051f040.h: added define CPT2_PAGE
+
+2005-02-01 Slade Rich <slade_rich AT users.sourceforge.net>
+
+       * src/pic16/pic16.dsp : Added file graph.c to make it compile under windows
+       * src/pic16/Makefile.bcc : Do not use this file but added file graph.c as it
+        appeared to be required
+
+2005-01-31 Borut Razem <borut.razem AT siol.net>
+
+       * support/scripts/sdcc.nsi: added include/asm/ds390, include/asm/mcs51,
+         include/mcs51 and include/z80 directories to the package
+
+2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+       * src/hc08/gen.c (genFunction): fixed bug #1112752
+
+2005-01-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
+
+       * src/mcs51/peeph.def: adapted peephole 258.x to changed gen.c (genAnd)
+
+2005-01-29 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
+
+       * src/mcs51/gen.c (genAnd): accessing LSB/MSB by rotating acc
+
+2005-01-29 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * device/include/Makefile.in: create/copy mcs51 and z80 include subdirs
+
+2005-01-27 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * device/include/c8051fxxx.h: removed these 6 files
+       * device/include/mcs51/c8051fxxx.h: added these 11 new files
+
+2005-01-26 Raphael Neider <rneider AT web.de>
+
+       * src/pic16/gen.c (genAssign): fixed assignment from longs
+         in codespace (were cut to three bytes)
+       * (genDummyRead): implemented (except for CODESPACE...),
+         fixed bug #1108575
+       * src/pic16/glue.c (emitStatistics): beautified
+       * device/lib/pic16/libm/Makefile: added include path
+
+2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+       * src/z80/gen.c (aopPut): fixed bug #1103902
+
+2005-01-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+       * device/lib/expf.c: fixed bug #1095792
+
+2005-01-24 Vangelis Rokas <vrokas AT otenet.gr>
+
+       * device/lib/pic16/libm: added Math library sources
+
+2005-01-24 Raphael Neider <rneider AT web.de>
+
+       * src/pic16/pcode.h: added second memory operand to pCodeOpReg
+         to enable upcast to pCodeOpReg2 (there is no type tag to
+         differenciate the two and pic16_popGet2p cast into PCOR2)
+       * src/pic16/main.c (_process_pragma): fixed another malloc bug
+         (sizeof(sectNames) changed to sizeof(sectName))
+         Both patches fix segfaults under MinGW.
+
+2005-01-23 Raphael Neider <rneider AT web.de>
+
+       * src/pic16/{device.c,pcode.c}: s/free/Safe_free/g for
+         Safe_[mc]?alloc()'ed variables
+       * src/pic16/gen.c (pic16_aopOp,pic16_popGet): added handling
+         of (byte sized) temporaries (assign them to WREG for now)
+       * src/pic16/main.c (_process_pragma): fixed nasty malloc bug
+         (used sizeof(set *sectSyms) instead of sizeof(struct sectSym)),
+         this might fix SIGSEGVs on MinGW...
+       * src/SDCCopt.c (killDeadCode): restored original behaviour
+         (volatile operands might get thrown away though)
+
+2005-01-23 Vangelis Rokas <vrokas AT otenet.gr>
+
+       * src/pic16/gen.c: fixed bug #1106975,
+       * src/pic16/gen.c: fixed possible bug #1102572, now during TOS
+       pointer update, INTCON is saved, global interrupts are disabled and
+       restored after updateing TOS.
+       * src/SDCC.y, src/SDCC.lex, src/SDCCsymt.c, src/SDCCsymt.h:
+       * added function attribute 'shadowregs' to take advantage of shadow
+       registers,
+       * added function attribute 'wparam' as an alternative to the wparam
+       pragma,
+       * support/Utils/SDCCerr.[ch]: added error E_SHADOWREGS_NO_ISR when
+       user declares a non-ISR function as 'shadowregs',
+       * doc/sdccman.lyx: updated to reflect recent changes of pic16 port
+
+2005-01-22 Vangelis Rokas <vrokas AT otenet.gr>
+
+       * .version: bumped version number to 2.4.8
+       * device/lib/pic16/pics.all: list of PIC18F devices supported by
+       pic16 port,
+       * device/lib/pic16/libio/i2c/: I2C module support library,
+       * device/include/pic16/i2c.h: I2C support library header,
+       * device/lib/pic16/libc/stdio/: standard IO support sources,
+       * (printf_small.c): printf_small() source, supports float print,
+       * (printf_tiny.c): printf_tiny() source, does not support floats,
+       * device/lib/pic16/Makefile.common.in: added OPT_FLAGS macro to
+       enable global optimizations for entire library source, other
+       Makefiles in the source tree are also modified to reflect this,
+       * device/lib/pic16/libc/stdlib/putchar.c (putchar): dummy putchar()
+       function,
+       * doc/sdccman.lyx: updated to reflect new changes,
+       * src/pic16/gen.c (aopForSym): don't handle sym->iaccess in
+       sym->onStack if-case,
+       * src/pic16/main.c (_pic16_keywords): commented out keywords bit,
+       sbit, idata, _idata, xdata, _xdata,
+       * added pragma library, to link an external library, (see doc),
+       * removed command line options, --pomit-config-words, --pomit-ivt,
+       --pleave-reset-vector,
+       * (pic16_finaliseOptions): when define macro SDCC_MODEL_{SMALL/LARGE}
+       when calling assembler to reflect memory model used, also define
+       macro STACK_MODEL_{SMALL/LARGE} when compiling and assembling to
+       reflect stack model used,
+       * src/pic16/ralloc.c (pic16_allocDirReg): when operand is allocated
+       on stack return NULL,
+
+2005-01-22 Daniel Winkler <post AT danielwinkler.de>
+
+       * src/SDCCopt.c (killDeadCode): do not throw iCodes away if one
+         of the operands is volatile. Fixes #1020220
+
+2005-01-22 Daniel Winkler <post AT danielwinkler.de>
+
+       * src/pic16/pcoderegs.c (pCodeOptime2pCodes): reenabled optimization
+       * (OptimizeRegUsage): make sure that there is really no other flow where
+         the first pCode is used
+
+2005-01-22 Raphael Neider <rneider AT web.de>
+
+       * src/pic16/pcoderegs.c (pCodeOptime2pCodes): disabled optimization
+         to fix #1106967 (pCode->seq are not set up correctly)
+
+2005-01-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+       * src/SDCCglue.c (glue): make sure code area is declared before the
+       static initialization area.
+
+2005-01-21 Raphael Neider <rneider AT web.de>
+
+       * device/lib/Makefile.in: fixed test for pic16 install dir
+       * device/lib/pic16/*/Makefile*: modified compile flags to enable
+         optimizations
+       * doc/sdccman.lyx: updated banksel optimization, removed --flr-support and
+         added --optimize-goto compiler switch and pragma wparam documentation
+       * src/pic16/pcode.c (pic16_OptimizeBanksel): removed statistics dump
+       * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed copying of WREG, PRODL
+         and PRODH closing bug #1071770 (peephole optimizer)
+
+2005-01-19 Raphael Neider <rneider AT web.de>
+
+       * src/SDCCglobl.h: ensure that PATH_MAX >= 2048 to guarantee
+         cmdLine buffers (used when calling sdcpp...) are large enough
+         (MAX_PATH=256 truncates arguments leading to system halts when
+         used in MinGW...)
+       * src/pic16/gen.c (pic16_sameRegs): relaxed size criterion
+       * (genUminus): rewritten to for efficiency
+       * (genNearPointer[GS]et): enforce reloading of FSR0 (was still
+         used uninitialized in some cases)
+       * (genCast): upcasting a 16bit int to a 24bit GPOINTER may not
+         copy the third byte from the int -- now assumes 0x80 (data memory)
+       * src/pic16/genarith.c (pic16_genPlus): fixed bug when swapping
+         operands (genAddLit expects the iCode's operands to swapped as
+         well), fixed leftover bytes (crashed for short left operands)
+       * (pic16_genMinusDec): performance improvements, removed false
+         PIC14 emitSKPNCs
+       * (pic16_genMinus): fixed to cope with differently sized operands
+       * src/pic16/glue.c (pic16_glue): added new banksel optimization
+         for --obanksel > 1
+       * src/pic16/pcode.c: implemented (first phase of) banksel optimization
+       * src/pic16/graph.[ch]: implementation of directed graphs, used by
+         new banksel optimization
+       * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): prevented
+         analysis for temporary registers (segfaults...)
+       * src/pic16/peeph.def: added rule
+
+2005-01-18 Vangelis Rokas <vrokas AT otenet.gr>
+
+       * device/lib/pic16/libc/stdlib/x_ftoa.c: it defines x_ftoa function
+       which converts a float number to its ASCII representation
+       * device/lib/pic16/libc/utils/cnvfrac.S,cnvint.S: support
+       functions to convert the fractional and integer part of a float to ASCII,
+       * device/lib/pic16/libc/stdlib/(calloc.c,free.c, malloc.c,
+       realloc.c): added _MALLOC_SPEC to explicit place variables in data
+       ram
+       * device/include/asm/pic16/features.h: added _CODE, _DATA, _AUTOMEM,
+       _STATMEM macros,
+       * device/include/pic16/adc.h: added GPL info,
+       * src/pic16/gen.c (genIfxpCOpJump): perform an genIfxJump but using
+       a pCodeOp as tested operand,
+       * (genNearPointerGet): optimized bit testing, does not use
+       intermediate register for bit value, test directly instead with
+       BTFSS, BTFSC, works only for single bits,
+       * (genpic16Code): dump the name of the iCode in the asm,
+       * src/pic16/ralloc.c (decodeOp): removed static declaration and
+       renamed to pic16_decodeOp,
+       * (serialRegAssign): do not allocate a temporary register for iCode
+       sequences that test a single bit for 1/0
+
+2005-01-12 Vangelis Rokas <vrokas AT otenet.gr>
+
+       * src/pic16/pcode.[ch]: introduced pic16_stackpnt_*,
+       pic16_framepnt_*, pic16_stack_*, pic1_frame_* pointer variables to
+       access stack and frame pointers. They are initially assigned to
+       point at pic16_pc_fsr1[lh] and pic16_pc_fsr2[lh] variables and other
+       accessing SFRs. Updated all occurences of modification of stack or
+       frame pointer in gen.c and pcode.c,
+       * src/pic16/ralloc.c (serialRegAssign): fixed two bugs with
+       assigning of a literal value to pointers,
+       * src/pic16/main.c (pic16_finiliseOptions): set pre-processor define
+       flag STACK_MODEL_SMALL or STACK_MODEL_LARGE according to the model
+       selected
+
+2005-01-11 Vangelis Rokas <vrokas AT otenet.gr>
+
+       * doc/sdccman.lyx: update documentation about stack pragma, added
+       some info for stack memory models
+
+2005-01-08 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
+
+       * src/pic16/gen.c (DEBUGpc): MSVC 6 does not support macro variable arguments
+
+2005-01-08 Raphael Neider <rneider AT web.de>
+
+       * src/pic16/device.c (pic16_dump_usection): changed naming scheme for
+         udata sections to fix bug #1097823
+
+2005-01-05 Raphael Neider <rneider AT web.de>
+
+       * src/pic16/gen.c (genGenericShift): added handling of differently
+         sized left operand and result
+
+2005-01-04 Raphael Neider <rneider AT web.de>
+
+       * src/pic16/gen.c (genIfxJump): fixed inverted skips on CARRY
+       * (genIfx): fixed (?) read from uninitialized SPIL_LOC (now assumes CARRY
+         to hold the condition bit)
+       * added new version of genCmp (old code available via #define)
+       * added new version of genShiftLeft/genShiftRight in a generic
+         way, now supports shifting by negative values
+       * (genLeftShiftLiteral, genRightShiftLiteral): use absolute value of
+         shiftCount (expected by genGenericShift)
+       * src/pic16/genarith.c (genPlus): added code for adding CARRY+literal
+       * src/pic16/pcode.c (pic16_OptimizeJumps): removed annoying statistics
+         dump
+       * (pic16_newpCodeOpLit): changed to cast to unsigned char (as e.g. -32766
+         is an invalid literal too...)
+
+2005-01-04 Vangelis Rokas <vrokas AT otenet.gr>
+
+       * src/pic16/gen.c (aopForSym, genEndFunction): applied some fixes
+       from Raphael Neider,
+       * src/pic16/pcode.c (pic16_newpCodeOpLit): removed casting to char
+       for 8-bit literals. This fixes some literal operands which are sign
+       extended to 16-bits ints when instruction needs only 8-bits.
+
+2004-12-31 Paul Stoffregen <paul AT pjrc.com>
+
+       * device/lib/logf.c: added mcs51 assembly version
+       * device/lib/expf.c: added mcs51 assembly version
+       * device/lib/_logexpf.c: new shared asm code for expf and logf
+       * device/include/math.h: add defines for assembly math library
+       * device/lib/Makefile.in: build new _logexpf.c
+       * device/lib/libfloat.lib: use new _logexpf.c
+
+2004-12-29 Slade Rich <slade_rich AT users.sourceforge.net>
+
+       * src/pic/device.c
+       * src/pic/pcode.c : adjusted internal stack and pre-allocated registers for
+         device types which have less than 0x7f registers.
+
+2004-12-29 Slade Rich <slade_rich AT users.sourceforge.net>
+
+       * src/pic/genarith.c : Fixed problem with subtraction where the result would not be updated when borrowing.
+
+2004-12-28 Paul Stoffregen <paul AT pjrc.com>
+
+       * device/lib/printf_fast.c: only build on supported arch.
+       * device/lib/printf_tiny.c: only build on supported arch.
+       * device/lib/printf_fast_f.c: only build if asm float lib
+       * device/lib/_fsget1arg.c: only build if asm float lib
+       * device/lib/_fsget2args.c: only build if asm float lib
+       * device/lib/_fsnormalize.c: only build if asm float lib
+       * device/lib/_fsreturnval.c: only build if asm float lib
+       * device/lib/_fsrshift.c: only build if asm float lib
+       * device/lib/_fsswapargs.c: only build if asm float lib
+       * device/include/stdio.h: don't provide print_fast,
+         print_fast_f, print_tiny prototypes if --xstack used
+
+2004-12-28 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * device/lib/sincosf.c (sincosf): don't invert bit/bool by ~
+       * support/regression/ports/mcs51-stack-auto/spec.mk: added new _fs.. files
+         to the SOURCES
+
+2004-12-28 Paul Stoffregen <paul AT pjrc.com>
+
+       * device/lib/printf_fast_f.c: same as printf_fast, but
+         with floating point enabled
+       * device/lib/printf_fast.c: minor tweaks
+       * device/include/stdio.h: add printf_fast_f
+
+2004-12-27 Paul Stoffregen <paul AT pjrc.com>
+
+       * src/SDCCmain.c: make --float-reent default for mcs51
+       * device/lib/_fsadd.c: added mcs51 assembly version
+       * device/lib/_fssub.c: added mcs51 assembly version
+       * device/lib/_fsmul.c: added mcs51 assembly version
+       * device/lib/_fsdiv.c: added mcs51 assembly version
+       * device/lib/_fseq.c: added mcs51 assembly version
+       * device/lib/_fsneq.c: added mcs51 assembly version
+       * device/lib/_fsgt.c: added mcs51 assembly version
+       * device/lib/_fslt.c: added mcs51 assembly version
+       * device/lib/_fscmp.c: shared code for fseq,fsgt,fslt,fsneq
+       * device/lib/Makefile.in: add _fscmp to build
+       * device/lib/libfloat.lib: add _fscmp to build
+
+2004-12-27 Paul Stoffregen <paul AT pjrc.com>
+
+       * device/lib/_fs2slong.c: added mcs51 assembly version
+       * device/lib/_fs2sint.c: added mcs51 assembly version
+       * device/lib/_fs2schar.c: added mcs51 assembly version
+       * device/lib/_fs2ulong.c: added mcs51 assembly version
+       * device/lib/_fs2uint.c: added mcs51 assembly version
+       * device/lib/_fs2uchar.c: added mcs51 assembly version
+       * device/lib/_slong2fs.c: added mcs51 assembly version
+       * device/lib/_sint2fs.c: added mcs51 assembly version
+       * device/lib/_schar2fs.c: added mcs51 assembly version
+       * device/lib/_ulong2fs.c: added mcs51 assembly version
+       * device/lib/_uint2fs.c: added mcs51 assembly version
+       * device/lib/_uchar2fs.c: added mcs51 assembly version
+       * device/include/float.h: added #define to select asm vs c
+
+2004-12-26 Paul Stoffregen <paul AT pjrc.com>
+
+       * device/lib/printf_fast.c: improvements to float output
+       * device/include/float.h: add defines for assembly float library
+       * device/lib/_fsget1arg.c: receive 1 float arg
+       * device/lib/_fsget2args.c: receive 2 float args (reentrant)
+       * device/lib/_fsnormalize.c: normalize a float
+       * device/lib/_fsreturnval.c: return float, various helper routines
+       * device/lib/_fsrshift.c: right shift a float's mantissa
+       * device/lib/_fsswapargs.c: swap 2 floats
+       * device/lib/Makefile.in: build these 6 new files for mcs51
+       * device/lib/libfloat.lib: add these 6 files to the library
+
+2004-12-26 Borut Razem <borut.razem AT siol.net>
+
+       * sim/ucsim/avr.src/arith_inst.cc: fixed bug #1088372- savr is not
+         built by gcc 3.4.2
+
+2004-12-25 Paul Stoffregen <paul AT pjrc.com>
+
+       * device/lib/printf_tiny.c: printf for mcs51 in only 267 bytes,
+         and fully reentrant and register bank neutral.
+       * device/lib/printf_fast.c: added float (not enabled by default),
+         added compact/slower integer (also not enabled by default),
+         improved size/speed of fast integer code, other minor changes
+       * device/include/stdio.h, device/lib/Makefile.in,
+         device/lib/libsdcc.lib: integrate printf_tiny into mcs51 build
+
+2004-12-24 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * src/pic16/pcode.c: declaring variables other than at the start of a
+         block is not supported in C by VC6.
+
+2004-12-22 Vangelis Rokas <vrokas AT otenet.gr>
+
+       * applied a previous patch from Raphael Neider that wasn't included
+       in the previous commits, which fixes infinite loops within jumptable
+       improvements,
+       * made some fixes that previous patches introduced
+
+2004-12-21 Vangelis Rokas <vrokas AT otenet.gr>
+
+       * src/pic16/gen.c (pic16_aopGet): applied fix from Raphael Neider
+       that fixes an issue with AOP_PCODE asmop's offset,
+       * (pic16_popCopyReg): update instance field too,
+       * (mov2w): modified to pic16_mov2w because it conflicts with mov2w
+       function of pic port,
+       * (genCmp, genAnd, genAssign),
+       * src/pic16/genarith.c (genAddLit): some fixes from Raphael Neider,
+
+2004-12-20 Vangelis Rokas <vrokas AT otenet.gr>
+
+       * src/SDCCast.c (gatherAutoInit): allow pic16 to emit static
+       variables initial values to idata section,
+       * src/SDCCicode.c (geniCodeCall): patch from ### to fix unreferenced
+       variables in some functions. This utilizes parmBytes field of iCode
+       structure to hold the offset of the variable in stack. (might be
+       able to use the stack field too?)
+       * applied patch from Raphael Neider # ### , # ###
+       * src/pic16/glue.c (pic16emitRegularMap): fix to print static
+       variable initial values in idata section,
+       * src/pic16/ralloc.c (pic16_allocDirReg): don't allocate register
+       for static variables with initial value
+       * src/device/lib/pic16/libsdcc/float/ulong2fs.c (__ulong2fs):
+       applied fix in while loop from Raphael Neider.
+
+2004-12-19 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * src/ds390/gen.c (genCpl): fixed bit=~(char/bit) bugs, added warning
+       * src/ds390/main.c (_ds390_regparm): don't pass bit params in registers
+       * src/ds390/ralloc.c (serialRegAssign): spill bits
+       * src/mcs51/gen.c (genCpl): fixed bit=~(char) bugs, added warning
+       * support/Util/SDCCerr.c,
+       * support/Util/SDCCerr.h: added warning W_COMPLEMENT for using bit=~(bit)
+       * support/regression/tests/bitvars.c: added tests for bitwise complement(~)
+       * support/regression/tests/bitwise.c: added test for bitwise complement(~)
+
+2004-12-09 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * device/include/sdcc-lib.h: inserted LGPL, added includes
+         asm/ds390/features.h and asm/mcs51/features.h
+       * device/include/asm/default/features.h,
+       * device/include/asm/gbz80/features.h,
+       * device/include/asm/z80/features.h: added empty _AUTOMEM
+         and _STATMEM
+       * device/include/asm/ds390/features.h,
+       * device/include/asm/mcs51/features.h: added files with defines for
+         _AUTOMEM and _STATMEM indicating automatic and static storage class
+       * device/lib/printf_large.c (_print_format): optimized & used _AUTOMEM
+       * doc/sdccman.lyx: version 2.4.7, updated xstack documentation
+       * src/SDCCicode.c (geniCodeCast),
+       * src/SDCCsymt.c (compareType): allow cast of data-ptr to idata-ptr
+       * src/SDCCloop.c (loopInduction): removed unused variable lr
+       * src/SDCCopt.c (convilong, convertToFcall): moved "easy special case"
+         to convertToFcall to include char modulo (RFE 1065037), added check
+         if left operand is unsigned and use abs of literal value
+       * src/SDCCpeeph.c (setFromConditionArgs): removed double quotes option
+         as it doesn't work after conversion from peephole.def to peephole.rul
+       * src/mcs51/gen.c (toBoolean): added check for size,
+         (genModOneByte): optimized code for signed char modulo a literal
+         power of 2 (thanks to Hubert Sack),
+         (genRRC): removed unnecessary "clr c",
+         (genRLC): replaced "add a,acc" with cheaper "rlc a"
+       * src/mcs51/peeph.def: renamed 115 to 115.a, added rule 115.b: another
+         jump optimization,
+         swapped rules 256.c and 256.d,
+         extended 256.d by using new multiple checks (thanks Erik),
+         added rules 256.e and 256.f,
+         updated rule 261.a and 261.b to new generated code
+       * support/regression/tests/muldiv.c: added test div/mod by a power of 2
+
+2004-12-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+       * src/SDCCloop.c (basicInduction, loopInduction): fixed several
+         induction related bugs, including first part of bug #1074377
+
+2004-12-05 Vangelis Rokas <vrokas AT otenet.gr>
+
+       * applied patch from bug-report #1076292,
+       * applied patches for genAnd and Goto-optimizations for Raphael
+       Neider,
+       * src/SDCCicode.c (printOperand): fixed !REGA source to compile and
+       dump a less iCode information,
+       * src/pic16/device.h (pic16_options_t): added field debgen,
+       * src/pic16/gen.h: added macros DUMP_FUNCTION_ENTRY,
+       DUMP_FUNCTION_EXIT, FENTRY, FENTRY2,
+       * src/pic16/gen.c (my_powof2): renamed to pic16_my_powof2 and made
+       puclic,
+       * (various functions): added macros FENTRY and FENTRY2 to functions,
+       to emit function prologue,
+       * (various functions): fixed indentation,
+       * (genNearPointerGet): fixed loading of FSR0,
+       * (genPackBits): applied patch from Raphael Neider to fix updating
+       of FSR0 and touching only the modified bits,
+       * src/pic16/genarith.c (various functions): added macros FENTRY to
+       emit function prologue in comments,
+       * src/pic16/pcode.h: added functions debugf2, debugf3,
+       * src/pic16/ralloc.c: partial fix for packForPush caused
+       segmentation fault,
+
+2004-12-04 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
+
+       * src/mcs51/peeph.def: added 261.a,b (16 bit rotate) by Stas Sergeev
+         <stsp AT users.sourceforge.net> with reversed byte order
+       * support/regression/tests/rotate.c: added (ds390 skips some tests)
+
+2004-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+       * src/z80/gen.c (genLeftShift, genRightShift): fixed second part of
+         bug #1074377
+       * src/hc08/gen.c (genrshFour, shiftRLong, shiftLLong),
+       * src/mcs51/gen.c (shiftLLong): Fixed some shifting bugs Frieder found
+
+2004-12-02 Slade Rich <slade_rich AT users.sourceforge.net>
+
+       * src/pic/pcode.c : fixed a problem where banksel was not being inserted.
+
+2004-12-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+       * src/SDCCpeeph.c (callFuncByName): support combined peephole rule
+         conditions,
+         (setFromConditionArgs): friendly operand parser for peephole rules,
+         (operandBaseName, operandsNotRelated): new peephole condition
+         "operandsNotRelated" -- similar to "operandsNotSame", but takes
+         architecture specific register naming into account, handles n-way
+         comparisons, and supports quoted literals
+       * src/mcs51/peeph.def: restored rule 177.d with an extra condition
+
+2004-12-02 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
+
+       * src/mcs51/peeph.def: fixed bug #1076940
+
+2004-12-02 Slade Rich <slade_rich AT users.sourceforge.net>
+
+       * device/include/pic/pic16f877.h : added an include file for the PIC16F877 device.
+
+2004-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
+
+       Adding support for replacing ljmps with sjmps in jumptables
+       generated for switch statements. For now you need to set the
+       environment variable SDCC_SJMP_JUMPTABLE to enable this.
+       Now 4 algorithms for mcs51 jumptable generation are used:
+       ljmp or sjmp jumptables for up to 16 cases, stack-pushing target
+       addresses loaded pc-relative for up to 112 cases and stack-pushing
+       target addresses loaded with offset from dptr for up to 256 cases.
+
+       * src/SDCCpeeph.c: added peephole conditional labelJTInRange
+       * src/mcs51/main.c: adapted constants for switch table generation
+       * src/mcs51/peeph.def: added 260.x for replacing ljmp with sjmp
+
+2004-11-26 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * device/lib/printf_large.c (_print_format): fixed bug 1073386
+       * support/regression/tests/bug1057979.c: added test for bug 1073386
+
+2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
+
+       * src/pic16/pcode.c: fixed bug which may produce error in non-GNU
+       compilers
+
+2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
+
+       * src/pic16/device.h,
+       * src/pic16/genarith.c,
+       * src/pic16/glue.c,
+       * src/pic16/main.c,
+       * src/pic16/pcode.c: applied patches #1068154 and #1070213
+
+2004-11-24 Vangelis Rokas <vrokas AT otenet.gr>
+
+       Large cummulative patch for pic16 port.
+       * device/lib/pic16/gstack.h: NEW, user can specify its own handler
+       to call when a stack overflow occurs,
+       * (malloc.h): added CVS Id tag,
+       * (pic18f{242,252,442,452}.h): added T0CONbits structure and
+       variable,
+       * added libc directory. The current version of LibC contains string
+       functions, ctype functions and macros and some functions of the
+       stdlib set (like malloc/free/atof/atoi etc...). All functions are to
+       be extensively tested in the future. Standard disclaimer here.
+       Library is not automatically build yet. But one can build it by
+       invoking 'make' inside the libc directory.
+       * added ADC library under libio. Preliminary version yet.
+
+       * src/pic16/gen.h: added emitTOGC macro, to toggle Carry flag,
+       * src/pic16/gen.c (aopForRemat): asmop size is filled by
+       aopForRemat() now and not by pic16_aopOp(),
+       * (pic16_popGetTempReg): removed warning messgae when allocating
+       temporary registers, its a buggy feature and will be removed,
+       * (pic16_popGet): set register instance field in AOP_CRY,
+       * (pic16_outBitC): fixed for results in size greater than 1,
+       * (genUminusFloat): fixed for pic16, ported code from mcs51,
+       * (pic16_storeForReturn): optimized return of 0,
+       * (genCmp): experimental code for new genCmp which uses PIC18's
+       special compare&skip instructions. Initial tests fail some times
+       with variables grater than 1 byte in size, so new code is disabled,
+       * (genUnpackBits, genPackBits): more optimizations in reading/writing,
+       a single bit,
+       * (genCast): began a fix to optimize the casting of a bit to another
+       bit, now assigning a bitfield to another bitfield will fail, sorry,
+       * src/pic16/main.c: disabled the use of lr-support feature,
+       * src/pic16/pcode.h: renamed PCASMDIR to PCAD,
+       * added some function prototypes, added function _debugf prototype,
+       * src/pic16/pcode.c: (pic16_get_op): fixed emitting operands of register
+       bits with offset (case PO_GPR_BIT),
+       * (genericPrint): don't emit INFO pcode when --pcode-verbose not in
+       command line,
+       * (isBankInstruction): modified to return 0 for no banking instruction,
+       and 1 for banking instruction,
+       * (pic16_isPCinFlow): check for PCAD (assembler directives) too,
+       caused stop processing pCodes after a inline assembly block,
+       * (pic16_popCopyGPR2Bit): updated to match bitfields with offset,
+       * src/pic16/pcoderegs.c: fixed a bug with eliminating some temporary
+       registers when it shouldn't,
+       * src/pic16/ralloc.c (allocReg): add preliminary support for
+       supporting a limited set of temporary registers,
+
+2004-11-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+       * src/hc08/gen.c (genAssign, genPointerGetSetOfs, genDataPointerGet,
+         genDataPointerSet): ensure assignments always copy in MSB to LSB
+         order,
+         (loadRegFromAop): recognize CLRH optimization,
+         (genFunction): optimize RECEIVE iCodes in reentrant functions
+
+2004-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+       * src/SDCCmain.c (parseCmdLine, optionsTable[]): fixed bug with
+         --out-fmt-s19 turning into --out-fmt-elf if s19 was already
+         selected.
+       * src/SDCCmain.c (linkEdit): don't define SSEG for HC08
+       * src/hc08/main.c (_hc08_setDefaultOptions): default xdata to be
+         contiguous with data
+
+2004-11-19 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
+
+       * device/lib/_gptrget.c (_gptrget),
+       * device/lib/_gptrgetc.c (_gptrgetc),
+       * device/lib/_gptrput.c (_gptrput): _naked allows to use ret
+         instead of sjmp to ret
+       * src/mcs51/peeph.def: added peepholes 3.d-g and 177.g,h provided
+         by Hubert Sack <hsack2002 AT arcor.de> in RFE #1067986, thanks
+
+2004-11-18 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * .version: bumped version to 2.4.7
+       * device/lib/_gptrget.c (_gptrget): is now _naked
+       * device/lib/_gptrgetc.c (_gptrgetc): is now _naked
+       * device/lib/_gptrput.c (_gptrput): is now _naked
+       * src/SDCCast.c (createBlock): removed ridiculous self-assignment,
+         (createFunction): fixed xstack
+       * src/SDCCglue.c (emitMaps): set allocation required for bit area
+       * src/SDCCicode.c (geniCodeCast): don't change SPEC_OCLS for literal
+         or bit either,
+         (geniCodeCritical): store original interrupt state in an iTemp bit
+         var unless stack-auto
+       * src/SDCCicode.h: added CRITICAL and ENDCRITICAL to SKIP_IC2
+       * src/SDCCmain.c (setIncludePath): added include/target to search path
+       * src/SDCCmem.c (allocParms): store bit vars in bit space, not overlay
+       * src/SDCCsymt.c (checkFunction): don't check regbank for isr's against
+         prototype,
+         (processFuncArgs): put bit vars in bit area
+       * src/mcs51/gen.c (saveRegisters, unsaveRegisters, genXpush, saveRBank,
+         unsaveRBank): fixed xstack,
+         (genFunction): bugfix: replaced (global!) reentrant with fReentrant,
+         (genFunction, genEndFunction): fixed xstack,
+         (genAssign): optimization don't walk backwards through mem
+       * src/mcs51/main.c (_mcs51_regparm): don't pass bit params in registers
+       * src/mcs51/ralloc.c (createStackSpil): spill bits to bit area
+       * support/regression/Makefile: also make library (for stack-auto) when
+         making "all" and added "test-mcs51-xstack-auto"
+       * support/regression/fwk/lib/testfwk.c: added T2_isr prototype for mcs51
+       * support/regression/ports/mcs51/T2_isr.c: added this file as a stub
+       * support/regression/ports/mcs51/fwk.lib: added to link T2_isr stub
+       * support/regression/ports/mcs51/spec.mk: added rules for fwk.lib
+       * support/regression/ports/mcs51-stack-auto/spec.mk: replaced
+         make-library by MAKE_LIBRARY
+       * support/regression/ports/mcs51-xstack-auto/spec.mk: file added to run
+         regression tests for xstack
+       * support/regression/tests/bitvars.c: test for bit vars (bug 938782)
+       * support/regression/tests/critical.c: test for critical on mcs51
+
+2004-11-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+       * support/regression/ports/ucz80/spec.mk: use include and lib files from
+         built version of sdcc instead of installed version
+
+2004-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * src/mcs51/gen.c (toBoolean): fixed bug 1065458
+       * device/lib/Makefile.in: z80 uses printf_large.c, sprintf.c and
+         vprintf.c now
+       * device/lib/printf_large.c (calculate_digit): fixed bug 1057979
+       * device/lib/z80/Makefile: don't use printf.c as it fails bug 1057979
+         WARNING: remove device/lib/build/z80/printf.o by hand when
+         updating from previous build!
+       * device/lib/z80/printf.c: updated comment
+       * support/regression/tests/bug1057979.c: test all ports now
+       * support/regression/tests/bug1065458.c: file added
+
+2004-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+       * src/z80/gen.c (genFunction, genEndFunction): avoided generating
+         *_start and *_end symbols for static functions
+
+2004-11-11 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * src/SDCCmain.c (linkEdit): don't suppress crt0 if --nostdlib is used
+         and search crt0.o in all library paths,
+         (setIncludePath): proper handling of --nostdinc,
+         (setLibPath): proper handling of --nostdlib
+       * support/regression/Makefile,
+       * support/regression/ports/ds390/spec.mk,
+       * support/regression/ports/gbz80/spec.mk,
+       * support/regression/ports/hc08/spec.mk,
+       * support/regression/ports/mcs51/spec.mk,
+       * support/regression/ports/mcs51-large/spec.mk,
+       * support/regression/ports/mcs51-stack-auto/spec.mk,
+       * support/regression/ports/z80/spec.mk: use include and lib files from
+         built version of sdcc instead of installed version
+       * doc/sdccman.lyx: fixed typo in --nostdinc
+
+2004-11-10 Slade Rich <slade_rich AT users.sourceforge.net>
+
+       * src/pic/pcode.c,
+       * src/pic/device.c,
+       * src/pic/ralloc.c,
+       * src/pic/gen.c : added support to generate code for struct bit fields.
+
+2004-11-06 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * as/xa51/xa_version.h,
+       * device/include/errno.h,
+       * device/include/regc515c.h,
+       * device/lib/_itoa.c,
+       * device/lib/_ltoa.c,
+       * device/lib/ser_ir_cts_rts.c,
+       * sim/ucsim/xa.src/glob.cc,
+       * sim/ucsim/xa.src/inst_gen.cc,
+       * sim/ucsim/xa.src/xa_bit.cc,
+       * sim/ucsim/xa.src/xa_sfr.cc,
+       * sim/ucsim/z80.src/inst_dd.cc,
+       * sim/ucsim/z80.src/inst_fdcb.cc,
+       * support/scripts/keil2sdcc.pl,
+       * src/pic16/pic16.dsp,
+       * src/pic16/pic16a.dsp: corrected cvs line endings
+       * device/lib/printf_large.c: fixed bug 1057979
+       * src/pic16/gen.c: fixed non-C standard code
+       * src/SDCCmain.c: made --pack-iram default, added --no-pack-iram
+       * src/SDCCglobl.h: changed pack_iram to no_pack_iram
+       * support/regression/ports/mcs51/support.c: reload T1 asap
+       * doc/sdccman.lyx: updated for options --pack-iram and --no-pack-iram,
+         pdata use and clear idata startup behaviour
+       * support/regression/tests/bug1057979.c: added
+
+2004-11-04 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * device/examples/ds390/ow390/ad26.h,
+       * device/examples/ds390/ow390/cnt1d.h,
+       * device/examples/ds390/ow390/crcutil.c,
+       * device/examples/ds390/ow390/ownet.h,
+       * device/examples/ds390/ow390/owsesu.c,
+       * device/examples/ds390/ow390/swt12.h,
+       * device/examples/ds390/ow390/swtoper.c,
+       * device/examples/ds390/ow390/temp10.h,
+       * device/examples/ds390/ow390/thermodl.c,
+       * device/examples/ds390/tinitalk/tinitalk.dsp,
+       * device/examples/ds390/tinitalk/tinitalk.dsw,
+       * device/examples/mcs51/clock/hw.h,
+       * device/examples/mcs51/simple2/go.bat,
+       * device/examples/serialcomm/windows/serial.h,
+       * device/examples/xa51/dummy.c,
+       * device/examples/xa51/hello.c,
+       * device/include/80c51xa.h,
+       * device/include/at89x051.h: corrected cvs line endings
+
+2004-11-04 Vangelis Rokas <vrokas AT otenet.gr>
+
+       * src/pic16/main.c (options): added command line --gstack, to trace
+       stack over/under flows,
+       * added pragma 'wparam' to allow passing first byte of function
+       parameters via WREG, syntax is #pragma wparam my_function[, func2...]
+       * src/pic16/gen.c (pic16_testStackOverflow): function which emits a
+       call to __gstack_test function and sets up the symbol as extern,
+       * (pic16_pushpCodeOp, pic16_poppCodeOp, pushw, pushaop, popaopidx,
+       * popaop): added call to pic16_testStackOverflow,
+       * (wParamCmp, inWparamList): NEW, test existence of a symbol in
+       wparamList list,
+       * (genCall, genPcall): now all parameters are passed via stack
+       except in functions that are pass to wparam pragma in which WREG is
+       used too,
+       * (genPcall): REENTRANT flag is checked to see if variable prototype
+       contains reentrant keyword, don't call a non-reentrant function, via
+       a reentrant function pointer or vice versa, functions are never
+       passed via WREG,
+       * (genJumpTab): applied patch from bug #1057478 by R.Neider and
+       D.Winkler,
+       * src/pic16/glue.c (pic16emitRegularMap): fixed bug which caused a
+       SIGSEGV when accessing a NULL register stucture,
+       * (pic16_printGPointerType): modified to handle UPPER modifier for
+       function initializers, changed prototype of function to simpler one,
+       * (pic16_printIvalFuncPtr): check to see if function is already
+       added in externs list,
+       * src/pic16/pcoderegs.c (pCodeOptime2pCodes): fixed bug which
+       optimized a move from W to SFR with a move to the same register
+       later after a CALL,
+       * device/lib/pic16/debug: NEW directory, contains debug features
+       which are enabled when linking with libdebug.lib, currently command
+       line option --gstack enables stack pointer tracing for over/under
+       flow, corresponding sources are in debug/gstack
+
+2004-10-30 Vangelis Rokas <vrokas AT otenet.gr>
+
+       * doc/sdccman.lyx: updated SDCC version,
+       * (PIC16 port): update list of command line options,
+       * src/pic16/device.h (structure pic16_options_t): added field gstack
+       to enable stack overflow tracing on push/pops,
+       * src/pic16/device.c (statistics structure): added statistics
+       structure,
+       * (pic16_dump_access, pic16_dump_usection, pic16_dump_gsection,
+       pic16_dump_int_registers): increase statistics counters for each
+       * variable which is encountered
+       * (pic16_dump_usection): emit each .udata variable to its own udata
+       section,
+       * src/pic16/gen.c (assignResultValue, genCall, genPcall, genFunction):
+       when macro USE_WREG_IN_FUNC_PARAMS is set to 0 pass all function
+       parameters via stack, otherwise use old scheme,
+       * src/pic16/glue.c (pic16_emitStatistics): dump statistics in
+       assembler output file,
+       * src/pic16/main.c: added command line options --gstack to enable
+       push/pop tracing for stack overflow,
+       * src/pic16/pcode.c (all pCodeInstruction records for PIC18F
+       instructions): added size of each instruction,
+       * (pic16_countInstruction): estimate size of instructions in
+       the_pFile list, inline assembly blocks are not counted,
+       * (pic16_FixRegisterBanking): trace previous register usage, when
+       banksel optimizations is greater than 0, don't emit a redudant
+       banksel directive,
+
+2004-10-26 Slade Rich <slade_rich AT users.sourceforge.net>
+
+       * src/pic/ralloc.c : fixed inefficient code produced when compiling a complimented bit operation.
+       * src/pic16/ralloc.c : applied same fix for pic16.
+       * src/pic/gen.c : tidied it up a little.
+
+2004-10-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
+
+       * src/mcs51/peeph.def: disabled 259.a,b for removing redundant ret,
+       thanks to Martin Helmling for reporting (mail on sdcc-devel 2004-10-25)
+
+2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+       * src/SDCCast.c (reverseParms): fixed bug #1040577 (part 2)
+
+2004-10-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
+
+       * device/lib/ser_ir_cts_rts.c: integer promotion caused a call to the
+       non-reentrant function __modsint in the interrupt function (thus
+       corrupting math operations during serial I/O)
+       * device/lib/ser_ir.c: as above, changed buffersize
+       * src/mcs51/peeph.def: added 259.a,b for removing redundant ret,
+       256.c,d for zeroing
+       * doc/Makefile: added option -t for rsync
+
+2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+       * src/SDCCast.h (struct ast),
+       * src/SDCCast.c (reverseParms, copyAst): fixed bug #1040577 (part 1)
+
+2004-10-20 Borut Razem <borut.razem AT siol.net>
+
+       * support/scripts/sdcc.nsi: added include/pic16/*.h to the setup
+       package
+
+2004-10-20 Vangelis Rokas <vrokas AT otenet.gr>
+
+       * device/lib/pic16/libsdcc/Makefile: added lregs directory in
+       makefile targets,
+       * device/lib/pic16/libsdcc/lregs/{Makefile,lrst.c,lrrest.c}: NEW
+       support functions to replace long sequences of MOVFF's from access
+       bank registers to stack and vice versa,
+       * src/pic16/device.h: added new field opt_flags, where optimization
+       flags can be set to enable certain features,
+       * src/pic16/gen.c (pic16_emitpinfo): NEW to add PC_INFO pCode in
+       * pBlock, (genFunction, genEndFunction): surroung loop for
+       saving/loading used registers in stack with PC_INFO pCodes,
+       INF_LREGS. Code in between can then be optimized by pCode optimizer
+       to support function calls,
+       * (genDataPointerSet): fixed bug which loaded float fields in
+       structures with corrupt data,
+       * src/pic16/genutils.c (debugf, _debugf): macro/function which emits
+       in a standard way debug info on stderr. Feature used for developing
+       and debugging only,
+       * src/pic16/glue.c (pic16glue): reformatted, deleted some old and
+       obsolete chunks of code,
+       * if optimization flag OF_LR_SUPPORT was set, call pic16_OptimizeLocalRegs,
+       * src/pic16/main.c (_pic16_parseOptions): added handler for --flr-support,
+       * pic16/src/pcode.c (pic16_newpCodeInfo,
+       * (pic16_newpCodeOpLocalRegs),
+       * (pic16_convertLocalRegs2Support): NEW, to support new optimization
+       feature,
+       * (pic16_pCodeConstString): printing of the initial value of a
+       symbol as a comment is inhibited since parsing was already done by
+       copyStr and output is corrupt,
+       * (pic16_pCode2str, genericPrint): handle PC_INFO pCode,
+
+2004-10-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+       * src/mcs51/ralloc.c (packRegisters): fixed bug #1044601
+
+2004-10-19 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * as/mcs51/lkarea.c: removed old K&R style,
+         (lnksect): changed check on boundary error,
+         (lnksect2): changed check on boundary error,
+         (lnksect2): extend XSTK to end of page if size = 1
+       * as/mcs51/lkmain.c: removed old K&R style,
+         (Areas51): create l_IRAM symbol
+       * as/mcs51/lkmem.c (summary2): added report on PSEG and XSTK
+       * device/lib/Makefile.in: renamed model-mcs51-reentrant to
+         model-mcs51-stack-auto, added model-mcs51-xstack-auto
+       * device/lib/_mullong.c: added version to be compiled with xstack
+       * device/lib/mcs51/crtclear.asm: clear only upto --iram-size
+       * device/lib/mcs51/crtxclear.asm: clear pdata as well
+       * device/lib/mcs51/crtxstack.asm: fixed comment
+       * src/SDCCglue.c: maxInterrupts defaults to 0,
+         (emitMaps): added pdata,
+         (createInterruptVect): (re)moved default,
+         (glue): added pdata,
+         (glue): moved __start__xstack to XSTK with default size 1
+       * src/SDCCmain.c (parseCmdLine): automatically set options.intlong_rent
+         and options.float_rent when options.stackAuto is set,
+         (linkEdit): only write XDATA_NAME if provided on command line
+       * src/SDCCmem.h,
+       * src/SDCCmem.c: added pdata
+       * src/port.h: added pdata_name to PORT
+       * src/mcs51/gen.c (toBoolean): fixed for Acc use of aopGet,
+         (saveRegisters, unsaveRegisters): removed usage of B,
+         (genMinus): fixed accumulator clash,
+         (genJumpTab): added comment, this needs another look
+       * src/mcs51/gen.c: added check for "B in use" paranoia,
+         added pushB() and popB()
+       * src/mcs51/peeph.def: restart after 177.c so 177.a can get a second
+         chance
+       * src/avr/main.c,
+       * src/ds390/main.c,
+       * src/hc08/main.c,
+       * src/mcs51/main.c,
+       * src/pic/main.c,
+       * src/pic16/main.c,
+       * src/xa51/main.c,
+       * src/z80/main.c: (reset_regparms) made void parameter explicit and
+         added PSEG (PAG,XDATA) or NULL to port specifier
+       * src/ds390/main.c (_ds390_genIVT): moved implemented default in here
+       * src/mcs51/main.c (_mcs51_genIVT): moved implemented default in here,
+         (_mcs51_genInitStartup): removed __start__xstack equ,
+         (mcs51_port): moved xstack from XSEG (XDATA) to XSTK (PAG,XDATA)
+       * src/pic16/device.c (pic16_dump_usection, pic16_dump_isection),
+       * src/z80/gen.c (_rleAppend): fixed warnings
+       * support/regression/tests/zeropad.c: added pdata test
+       * .version: bumped to 2.4.6
+
+2004-10-17 Borut Razem <borut.razem AT siol.net>
+
+       * support/scripts/sdcc.nsi: cross compiling of WIN32 setup.exe on Linux
+       as a part of nightly build
+
+2004-10-16 Vangelis Rokas <vrokas AT otenet.gr>
+
+       * src/pic16/gen.c (struct _G): added field useWreg, is set to 1 when
+       WREG holds the first byte function parameters,
+       * (aopForSym): take special case for symbols which are in FARSPACE
+       but in CODESPACE too,
+       * (assignResultValue): modified to take into account _G.useWreg,
+       * (genCall): don't use wreg for parameter passing when function is
+       declared as reentrant, too, added optimization INCF to stack
+       pointer when stack parameter count is 1,
+       * (genFunction, genEndFunction): refurnished and fixed to not using
+       wreg for passing parameters when function has varargs or is
+       reentrant, fixed bug with symbol name compare for generating
+       functions in absolute address,
+       * (pic16_storeForReturn): refurnished,
+       * (genCmp): began writing a new version of the function, not ready
+       yet, therefore it is disabled,
+       * (genAssign): do not read code memory when assigning a function to
+       a pointer function,
+       * src/pic16/glue.c (pic16emitStaticSeg): abSym->name is defined an
+       array of characters, not pointer,
+       * (pic16initialComments): in debug mode emit an .ident directive for
+       the assembler,
+       * (_process_pragma): emit a new warning type (internal to pic16)
+       when setting stack to default length, emit a similar warning when
+       placing a function at absolute address and address is not word aligned
+       * (_pic16_parseOptions): added 'return TRUE' statement,
+       * (_pic16_linkEdit): if compiling a source, then add the source's
+       file object, first in the list of objects to link,
+
+2004-10-13 Slade Rich <slade_rich AT users.sourceforge.net>
+
+       * src/pic/pcoderegs.c : increased count on regUsedinRange to prevent unnecessary warning.
+       * src/pic/main.c : removed VC warning.
+       * src/pic/gen.c : changed comment.
+
+2004-10-12 Vangelis Rokas <vrokas AT otenet.gr>
+
+       * device/lib/pic16/libsdcc/gptr/gptrput[234].c: an external
+       reference to a deprecated symbol _GPTRREG was causing failure to
+       link. Thanks G. M. Gallant for the info.
+
+2004-10-12 Slade Rich <slade_rich AT users.sourceforge.net>
+
+       * src/pic/pcode.c : Applied a code patch supplied by Paul Ashmore in
+       comments for Bugs item #954788.
+
+2004-10-10 Vangelis Rokas <vrokas AT otenet.gr>
+
+       * src/pic16/device.c (pic16_dump_gsection,
+       * pic16_groupRegistersInSection): handle symbols declared to be in
+       access bank differently,
+       * src/pic16/gen.c (struct _G): added field resDirect,
+       * (aopForSym): if symbol on stack and iCode is '=' and result exists,
+       send values read from stack directly to result and don't allocate
+       temporary values,
+       * (pic16_sameRegs): fixed bug that allowed MOVFF to move between
+       same registers,
+       * (pic16_sameRegsOfs): NEW,
+       * (freeAsmop): if _G.resDirect is set then do not mark registers as
+       free because they were not allocated from temporary pool,
+       * pic16_popRegFromString): workaround to fix a problem with
+       allocating variables twice or never,
+       * (genGenPointerGet): using PRODL instead of FSR0H,
+       * (genGenPointerSet): using POSTDEC1 (that is a stack location)
+       instead of FSR0H,
+       * (genAssign): take advantage of the _G.resDirect flag,
+       * (genCast): around line 11844, use mov2f instead of directly
+       MOVFF'ing between operands to account for literal values,
+       * src/pic16/genutils.c: some new debug functions for gpsim have been
+       added,
+       * src/pic16/glue.c (pic16_printIvalType): fixed bug that initialized
+       float with integer part only,
+       * src/pic16/main.c (_process_pragma): handle pragma udata access to
+       place variables in access bank
+       * device/lib/pic16/libsdcc/gptr/gptr*.c: using BRA instead of GOTO,
+       updated sources to reflect recent changes in gen.c
+
+2004-10-06 Vangelis Rokas <vrokas AT otenet.gr>
+
+       * device/lib/pic16/libsdcc/Makefile.rules: fixed bug concerning
+       sources that searched for headers in installation path, now the
+       device/include/pic16 is used,
+       * src/pic16/glue.c (pic16glue),
+       * src/pic16/pcode.c (pCode2str, genericPrint): don't print .file or
+       .line directives if not in debug mode, this suppresses assembler's
+       warnings for ignored directives
+
+2004-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * src/port.h: made reset_regparms prototype void parameter explicit.
+       * src/SDCCsymt.c (processFuncArgs): removed argument "func".
+       * src/mcs51/ralloc.c (packRegisters): new fix for bugs 898889 & 979599.
+       * doc/sdccman.lyx: documented warning disabling and how to use
+         printf_large to make it print floats.
+       * device/include/stdbool.h: NEW
+       * device/lib/_atof.c,
+       * device/lib/_divuint.c,
+       * device/lib/_divulong.c,
+       * device/lib/expf.c,
+       * device/lib/printf_large.c,
+       * device/lib/sincosf.c,
+       * device/lib/sincoshf.c: used stdbool.h, all compile with stack-auto now
+       * device/lib/Makefile.in: added target for model-mcs51-reentrant to build
+         a completely reentrant lib.
+
+2004-10-05 Vangelis Rokas <vrokas AT otenet.gr>
+
+       * device/lib/pic16/libsdcc/gptr/gptr*.c: added return statements
+       * device/include/pic16/stdio.h: fixed bug with colon
+
+2004-10-03 Vangelis Rokas <vrokas AT otenet.gr>
+
+       * device/include/pic16/stdio.h,
+       * device/include/pic16/stdlib.h,
+       * device/include/pic16/math.h: NEW
+       * device/lib/pic16/libsdcc/gptr/*.c (gptrget*, gptrput*): functions
+       declared as _naked to reduce overhead
+       * device/lib/Makefile.in (target port-specific-objects-pic16):
+       changed * to *.* so to ignore the CVS directory,
+       * src/pic16/gen.c (pic16_freeAsmop): added code to store result of
+       stacked variables back in stack,
+       * (genEndFunction): fixed bug reported by G.M. Gallant with stack
+       corruption
+
 2004-10-01 Vangelis Rokas <vrokas AT otenet.gr>
 
        * .version: bumped version number to 2.4.5
        * support/Util/SDCCerr.h: added warning W_POSSBUG2.
        * support/Util/SDCCerr.c (messages structure): added entry for
        W_POSSBUG2
-       
+
        Large cumulative patch for pic16 port and libraries.
        * device/include/pic16/sdcc-lib.h,
        * device/include/pic16/stdarg.h,
-       * device/include/asm/pic16/features.h: NEW,
+       * device/include/asm/pic16/features.h,
+       * device/include/lib/pic16/libsdcc/gptr/{*.c, Makefile}: NEW,
        * device/include/pic16/float.h: changes reentrant keyword with
        _FS_REENTRANT, added prototype for __fsneq, included sdcc-lib.h
        * device/lib/pic16/libsdcc/Makefile: added target directory gptr,
 
        * debugger/mcs51/cmd.c: set PC if a symbol at pc reg is set
        * debugger/mcs51/simi.c: addapt new syntax of s51
-       
+
 2004-09-23 Vangelis Rokas <vrokas AT otenet.gr>
 
        * src/pic16/genutils.c (pic16_genNot): fixed bug #1032265,