-2004-02-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
+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
* src/pic/gen.c : Fix for bugs #1080519 & #1115662.
-2004-02-03 Maarten Brock <sourceforge.brock AT dse.nl>
+2005-02-03 Maarten Brock <sourceforge.brock AT dse.nl>
* device/include/mcs51/c8051f120.h: added declarations for sbit port 2,3&4
* (genPackBits): improved accessing full bytes, implemented for GPOINTERs
* device/include/pic16/{stddef.h,stdbool.h}: added
-2004-02-02 Maarten Brock <sourceforge.brock AT dse.nl>
+2005-02-02 Maarten Brock <sourceforge.brock AT dse.nl>
* device/include/mcs51/c8051f040.h: added define CPT2_PAGE
* src/pic16/Makefile.bcc : Do not use this file but added file graph.c as it
appeared to be required
-2004-01-31 Borut Razem <borut.razem AT siol.net>
+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
-2004-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
* src/hc08/gen.c (genFunction): fixed bug #1112752
-2004-01-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
+2005-01-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
* src/mcs51/peeph.def: adapted peephole 258.x to changed gen.c (genAnd)
-2004-01-29 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
+2005-01-29 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
* src/mcs51/gen.c (genAnd): accessing LSB/MSB by rotating acc
-2004-01-29 Maarten Brock <sourceforge.brock AT dse.nl>
+2005-01-29 Maarten Brock <sourceforge.brock AT dse.nl>
* device/include/Makefile.in: create/copy mcs51 and z80 include subdirs
-2004-01-27 Maarten Brock <sourceforge.brock AT dse.nl>
+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
* src/pic16/glue.c (emitStatistics): beautified
* device/lib/pic16/libm/Makefile: added include path
-2004-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
* src/z80/gen.c (aopPut): fixed bug #1103902
-2004-01-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+2005-01-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
* device/lib/expf.c: fixed bug #1095792
* 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>
+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.