* .version: bumped version number to 2.4.8
[fw/sdcc] / ChangeLog
index f6d03c72686e1d97faa07fedf1bc9f98d82ed9d0..5fe897c46a95a6a645802e2901baa817bdf08457 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,191 @@
+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)
+
+2004-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.