+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