+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(~)
+