+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
* 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 anonymous in RFE #1067986, thanks
+ by Hubert Sack <hsack2002 AT arcor.de> in RFE #1067986, thanks
2004-11-18 Maarten Brock <sourceforge.brock AT dse.nl>