+2005-04-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+ * doc/sdccman.lyx: changed version 2.5.0, documented --std-c89,
+ --std-sdcc89, --std-c99, --std-sdcc99, and the corresponding #pragmas, as
+ well as many smaller updates.
+ * .version: changed to version 2.5.0-pre1
+
+2005-04-26 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
+
+ * src/SDCCmain.c (setIncludePath): added port->target to SDCC_INCLUDE_NAME
+
+2005-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
+
+ * support/regression/tests/bug1185672.c: added
+ * src/mcs51/gen.c (aopGetUsesAcc, genCpl, genAnd, genOr, genXor): fixed
+ bug 1185672
+ * src/mcs51/gen.c (genCall): added comments, made it look safer
+ * src/mcs51/gen.c (genEndFunction): simplified
+
+2005-04-25 Maarten Brock <sourceforge.brock AT dse.nl>
+
+ * src/mcs51/ralloc.c (serialRegAssign): fixed bug 1189609
+
+2005-04-14 Borut Razem <borut.razem AT siol.net>
+
+ * fixed bug 1045046 - SIGSEGV with really simple code?:
+ src/pic/pcode.c (pCodeInitRegisters)- pseudo stack size increased to 16
+ src/pic/ralloc.c (typeRegWithIdx) - error message on pseudo stack overflow
+
+2005-04-14 Borut Razem <borut.razem AT siol.net>
+
+ * src/pic16/gen.c (genInline), src/pic16/main.c (_process_pragma),
+ src/pic16/device.h: temporarily disabled experimental #inline pragma
+ for 2.5.0 release
+
+2005-04-14 Maarten Brock <sourceforge.brock AT dse.nl>
+
+ * device/include/z80/stdio.h,
+ * device/include/z80/string.h: removed these highly incomplete files so
+ SDCC can use the default ones in device/include/
+
+2005-04-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+ * src/mcs51/gen.c (genEndFunction): removed unused variable to fix
+ gcc warning.
+ * device/lib/Makefile.in: default PORTINCDIR to the mcs51 subdir to
+ fix sdcpp warnings.
+
+2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
+
+ * device/include/malloc.h: removed redundant __reentrant prototypes
+ * device/lib/_mullong.c: added working xstack variant in asm (C version
+ doesn't pass regression tests)
+ * device/lib/bpx.c: used __data and made bpx char for mcs51
+ * src/SDCCast.c (decorateType): removed unused GPTYPE_IDATA,
+ (createFunction): fixed bug with xstackPtr
+ * src/SDCCcse.c: corrected comments
+ * src/SDCCopt.c (convertToFcall): fixed warning in MSVC,
+ (killDeadCode, eBBlockFromiCode): removed unused code
+ * src/SDCCsymt.h: removed unused GPTYPE_GPTR and GPTYPE_IDATA,
+ corrected comments
+ * src/mcs51/gen.c (aopForSym, aopPut, toBoolean, unsaveRegisters,
+ assignResultValue, genCall, genFunction, genEndFunction, genAnd,
+ genOr, genXor, genAddrOf): fixed several bugs concerning xstack
+ (genModOneByte): fixed warning in MSVC
+ * src/mcs51/main.c (): added comments
+ * src/mcs51/peeph.def: changed 129 to 129.a, added 129.b, 129.c & 129.d
+
+2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
+
+ * src/SDCCmain.c (linkEdit): oops, changed one line too many
+
+2005-04-11 Maarten Brock <sourceforge.brock AT dse.nl>
+
+ * src/SDCCmain.c (linkEdit): fixed bug with finding crt0.o for z80
+
+2005-04-10 Vangelis Rokas <vrokas AT users.sourceforge.net>
+
+ * src/pic16/glue.c (printIvalChar): fixed bug when emitting
+ characters arrays of larger size than the declared one.
+
+2005-04-10 Borut Razem <borut.razem AT siol.net>
+
+ * src/pic/gen.c (genInline),
+ src/pic/pcode.c (newpCodeAsmDir), (pCode2str),
+ (genericPrint), (unlinkpCodeFromBranch), (compareLabel),
+ (findNextInstruction), (findPrevInstruction),
+ (findInstructionUsingLabel),
+ src/pic/pcode.h: fixed bug #1164907 - Labels not being recognized
+ * src/pic/pcode.c (findLabel): added missing '\n'
+ * src/src.dsp: added SDCCdwarf2.c to the project
+
+2005-04-09 Borut Razem <borut.razem AT siol.net>
+
+ * support/scripts/sdcc.nsi: added include/hc08/* h to NSIS setup
+
+2005-04-08 Raphael Neider <rneider AT web.de>
+
+ * src/pic16/pcode.c: added helpers defmapInsertAfter (insert a new item
+ into the chain after a given one) and mergeDefmapSymbols (combine
+ defmap entries for each symbol per pcode)
+ * (createDefmap): have defmap entries merged in the end
+ * (defmapReplaceSymRef): split defmap entries covering two accesses to
+ a symbol before replacing one access type's symbol, merge symbols in
+ the end (replacement symbol might already have an entry)
+ * (assignValnums): keep reference to written WREG intact
+
+2005-04-08 Raphael Neider <rneider AT web.de>
+
+ * src/pic16/pcode.c (struct defmap_s): named anonymous union (for
+ Alpha)
+
+2005-04-08 Vangelis Rokas <vrokas AT users.sourceforge.net>
+
+ * src/pic16/pcode.c (pic16_get_op2): enlarged size of array b to 128
+ bytes
+
+2005-04-07 Raphael Neider <rneider AT web.de>
+
+ * device/include/pic16/usart.h: added compatibility defines for
+ devices with more than one USART
+ * device/include/pic16/pic18f[68][567]20.h: activated above defines
+
+2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
+
+ * device/lib/Makefile.in: updated for port specific include
+
+2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
+
+ * support/regression/ports/mcs51/spec.mk: added mcs51 include
+
+2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
+
+ * device/include/8051.h,
+ * device/include/8052.h,
+ * device/include/at89S8252.h,
+ * device/include/at89c55.h,
+ * device/include/at89x051.h,
+ * device/include/at89x51.h,
+ * device/include/at89x52.h,
+ * device/include/mcs51reg.h,
+ * device/include/reg51.h,
+ * device/include/reg764.h,
+ * device/include/regc515c.h,
+ * device/include/sab80515.h: (re)moved these 12 files
+ * device/include/mcs51/8051.h,
+ * device/include/mcs51/8052.h,
+ * device/include/mcs51/at89S8252.h,
+ * device/include/mcs51/at89c55.h,
+ * device/include/mcs51/at89x051.h,
+ * device/include/mcs51/at89x51.h,
+ * device/include/mcs51/at89x52.h,
+ * device/include/mcs51/mcs51reg.h,
+ * device/include/mcs51/reg51.h,
+ * device/include/mcs51/reg764.h,
+ * device/include/mcs51/regc515c.h,
+ * device/include/mcs51/sab80515.h: and added them here
+
+2005-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
+
+ * device/include/stdarg.h: changed SDCC specific keywords to double
+ underlined form.
+ * device/include/stdint.h: changed intptr_t and uintptr_t for others than
+ mcs51 and ds390.
+ * device/include/hc08/mc68hc908gp32.h,
+ * device/include/hc08/mc68hc908jb8.h,
+ * device/include/hc08/mc68hc908jkjl.h,
+ * device/include/hc08/mc68hc908qy.h: fixed comments
+ * device/include/mcs51/README: updated
+ * device/include/mcs51/c8051f120.h: added PINRSF
+ * device/lib/pic16/libc/stdlib/crc16.c: fixed comments
+ * src/pic16/pcode.c: MSVC6 doesn't accept declaring new variables
+ amidst code. Also inline is not supported.
+
+2005-04-06 Raphael Neider <rneider AT web.de>
+
+ * src/pic16/pcode.c (pic16_pCodeReplace): also update pcflow->end
+ * (createDefmap): fixed CALLs to depend on FSR1 and RETLW to restore
+ callers stack/frame pointers
+
+2005-04-06 Vangelis Rokas <vrokas AT users.sourceforge.net>
+
+ * device/include/pic16/usart.h: added, missing in previous commit,
+ * device/include/pic16/adc.h: fixed typo,
+ * device/lib/pic16/libc/utils/cvtdec.S: added missing in previous
+ commit,
+ * device/lib/pic16/libc/stdlib/g_ftoa.S: modified to include
+ <p18fxxx.inc>
+ * device/lib/pic16/libc/stdio/streams.c: leave stdin, stdout
+ uninitialized because a bug appears with gplink
+ * device/lib/pic16/{some makefiles}: moved $(CSTD) from CFLAGS to
+ COMPILE_FLAGS and added CPPFLAGS with -nostdinc because sdcpp
+ complains for unrecognised option
+
+2005-04-05 Raphael Neider <rneider AT web.de>
+
+ * src/pic16/gen.c (pic16_popCopyReg): made copying work for extended
+ structs as well (using memcpy)
+ * (genFunction): fixed comparison, used pCodeOpLabel to reduce warning
+ on ISRs (GOTO has no label)
+ * src/pic16/device.h: added OF_OPTIMIZE_DF
+ * src/pic16/main.c: added compiler switch --optimize-df to enable the
+ new data flow analysis/optimization
+ * src/pic16/pcode.c: added (prototypes for and implementation of)
+ dataflow analysis functions, fixed pCodeInstructions' inCond and
+ outCond values, made RCALL a branch instruction
+ * (pic16_unlinkpCode): keep C line if possible
+ * (pic16_pCodeUnlink): removed cast on left side of assignment, have
+ C line moved if possible
+ * (pic16_getRegFrompCodeOp): NEW, improved version of...
+ * (pic16_getRegFromInstruction,pic16_getRegFromInstruction2): changed
+ to use new pic16_getRegFrompCodeOp (works for more SFRs)
+ * (pic16_BuildFlow): fixed skip instructions with label (did not start
+ new flow)
+ * (pic16_getJumptabpCode): NEW, needed in...
+ * (LinkFlow): fixed handling of jumptables, calls and conditional
+ branches
+ * (pic16_InsertCommentAfter): NEW
+ * (pic16_pCodeReplace): made verbose and flow preserving
+ * (AnalyzeFlow): added call to data flow analysis
+ * src/pic16/pcode.h: added defmaps to pCodeFlow struct
+ * src/pic16/pcodeflow.h: added PCC_STATUS to mean all STATUS bits
+ * src/pic16/ralloc.c (packRegsForAssign): added return 1 in the end
+
+2005-04-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+ * src/SDCCast.c (decorateType): fixed bug #1105626
+
+2005-04-02 Vangelis Rokas <vrokas AT users.sourceforge.net>
+
+ * device/include/asm/pic16/features.h,
+ * pic18f*.h headers,
+ * device/include/pic16/adc.h,
+ * device/include/pic16/delay.h,
+ * device/include/pic16/i2c.h,
+ * device/include/pic16/malloc.h,
+ * device/include/pic16/stdio.h,
+ * device/include/pic16/stdlib.h,
+ * device/include/pic16/string.h,
+ * device/lib/pic16/libc/stdio/printf_tiny.c,
+ * device/lib/pic16/libc/stdio/printf_small.c,
+ * device/lib/pic16/libc/stdio/strmgpsim.c,
+ * device/lib/pic16/libc/stdio/strmmssp.c,
+ * device/lib/pic16/libc/stdio/strmusart.c,
+ * device/lib/pic16/libc/stdio/vfprintf.c,
+ * device/lib/pic16/libc/stdlib/ltoa.c,
+ * device/lib/pic16/libc/stdlib/putchar.c,
+ * device/lib/pic16/libc/stdlib/x_ftoa.c,
+ * device/lib/pic16/libc/stdlib/memchrpgm.c,
+ * device/lib/pic16/libc/stdlib/memchrram.c,
+ * device/lib/pic16/libc/stdlib/memcpypgm2ram.c,
+ * device/lib/pic16/libc/stdlib/memcpyram2ram.c,
+ * device/lib/pic16/libio/adc/adcbusy.c,
+ * device/lib/pic16/libio/adc/adcread.c,
+ * device/lib/pic16/libio/adc/adcsetch.c,
+ * device/lib/pic16/libio/usart/ubaud.c,
+ * device/lib/pic16/libio/usart/ubusy.c,
+ * device/lib/pic16/libio/usart/udrdy.c,
+ * device/lib/pic16/libio/usart/uopen.c,
+ * device/lib/pic16/libio/usart/uputc.c,
+ * device/lib/pic16/libsdcc/gptr/gptrget1.c,
+ * device/lib/pic16/libsdcc/gptr/gptrget2.c,
+ * device/lib/pic16/libsdcc/gptr/gptrget3.c,
+ * device/lib/pic16/libsdcc/gptr/gptrget4.c,
+ * device/lib/pic16/libsdcc/gptr/gptrput1.c,
+ * device/lib/pic16/libsdcc/gptr/gptrput2.c,
+ * device/lib/pic16/libsdcc/gptr/gptrput3.c,
+ * device/lib/pic16/libsdcc/gptr/gptrput4.c: modified all SDCC
+ specific keywords to double underlined form,
+ * device/lib/pic16/libc/Makefile.rules,
+ * device/lib/pic16/libsdcc/Makefile.rules,
+ * device/lib/pic16/libm/Makefile,
+ * device/lib/pic16/libio/Makefile.rules: added CSTD macro in CFLAGS
+ to compile with C standard set in Makefile.common
+ * device/lib/pic16/libc/stdlib/Makefile: added new C sources
+ rand.c and crc.c in compilation process,
+ * device/lib/pic16/libsdcc/int/divuint.c,
+ * device/lib/pic16/libsdcc/long/divulong.c: changed declaration of
+ `c' from signed to unsigned,
+ * device/lib/pic16/startup/crt0.c,
+ * device/lib/pic16/startup/crt0i.c,
+ * device/lib/pic16/startup/crt0iz.c: adopted to all SDCC specific
+ keywords to double underlined form, bug fixes in _do_cinit function
+ which prevented the correct initialization of the .idata segment,
+ * src/pic16/pcoderegs.c (insideLRBlock): fixed a bug that caused the
+ core to enter a infinite loop
+ * device/lib/pic16/libc/stdlib/rand.c, crc.c: new files
+
+2005-04-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+ * src/SDCCicode.c (getArraySizePtr): fixed bug #1122171
+
+2005-04-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+ * device/include/Makefile.in: add support for hc08 subdirectory
+ * device/include/hc08/: new subdirectory
+ * device/include/hc08/mc68hc908jkjl.h: new header contributed by
+ Lucas Loizaga, thanks!
+ * device/include/hc08/mc68hc908qy.h,
+ * device/include/hc08/mc68hc908gp32.h,
+ * device/include/hc08/mc68hc908jb8.h: moved hc08 register defs to
+ their own directory. Changed internal macro names to use the compiler
+ reserved namespace. Changed SDCC specific keywords to double
+ underlined form.
+ * device/include/math.h,
+ * device/include/malloc.h,
+ * device/include/stdarg.h,
+ * device/include/stdbool.h
+ * device/include/string.h,
+ * device/include/tinibios.h,
+ * device/include/ds400rom.h,
+ * device/include/8051.h,
+ * device/include/8052.h,
+ * device/include/80c51xa.h,
+ * device/include/at89c55.h,
+ * device/include/at89S8252.h,
+ * device/include/at89x51.h,
+ * device/include/at89x52.h,
+ * device/include/ds80c390.h,
+ * device/include/reg764.h,
+ * device/include/regc515c.h,
+ * device/include/sab80515.h,
+ * device/include/mcs51/c8051f000.h,
+ * device/include/mcs51/c8051f018.h,
+ * device/include/mcs51/c8051f020.h,
+ * device/include/mcs51/c8051f040.h,
+ * device/include/mcs51/c8051f060.h,
+ * device/include/mcs51/c8051f120.h,
+ * device/include/mcs51/c8051f300.h,
+ * device/include/mcs51/c8051f310.h,
+ * device/include/mcs51/c8051f320.h,
+ * device/include/mcs51/c8051f330.h,
+ * device/include/mcs51/c8051f350.h,
+ * device/include/z180.h: Changed SDCC specific keywords to double
+ underlined form.
+
+2005-03-31 Vangelis Rokas <vrokas AT users.sourceforge.net>
+
+ * src/pic16/device.c (Pics16[]): added devices 18F2550, 18F4331,
+ 18F4455,
+ * (pic16_assignConfigWordValue): disable testing of configuration
+ register value with config mask,
+ * src/pic16/gen.c (pic16_testStackOverflow): prefix stack test
+ function with port->fun_prefix,
+ * (genFunction): when generating a naked interrupt function never
+ create an absolute segment placed in interrupt vector address, place
+ the actual interrupt function at IVA instead, when an interrupt
+ function is generated with unspecified interrupt then do not create
+ the absolute section,
+ * (genGenPointerGet, genGenPointerSet, genPackBits): replace all
+ code for generating a call to generic pointer get/put function with
+ a call to function pic16_callGenericPointer(),
+ * src/pic16/genutils.c (pic16_callGenericPointerRW): NEW, generates
+ the call to the generic pointer get/put functions with prefixing the
+ function name with port->fun_prefix,
+ * src/pic16/glue.c (pic16glue): ifdef-out test of OF_LR_SUPPORT,
+ * src/pic16/main.c (_process_pragma): prefix function with
+ port->fun_prefix,
+ * (_pic16_finaliseOptions): define macro __18Fxxxx macro when
+ calling assembler, old 18Fxxxx macro is deprecated,
+ * src/pic16/pcode.c (unlinkpCodeFromBranch): added PC_INLINE and
+ PC_ASMDIR in while condition,
+ * (findInstruction): add PC_ASMDIR in while condition,
+ * (buildCallTree): prefix main with port->fun_prefix,
+ * (pic16_pCode2str): fixed bug that didn't emit the memory access
+ identifier for variable with banked access in instructions BTFSS,
+ BTFSC, BCF, BSF, BTG
+ * (AnalyzeFlow): moved call to OptimizepCode to pic16_AnalyzeBanking,
+ * src/pic16/pcodepeep.c (pCodeOpCompare): increase size of b to 1024,
+ * src/pic16/pcoderegs.c (pic16_pCodeRegoptimizeRegUsage): don't
+ perform optimization when enviroment variable NO_REG_OPT is set,
+ * (insideLRBlock): NEW, return 1 if register is inside an
+ INF_LOCALREGS block,
+ * (RemoveRegFromLRBlock): remove a register that is completely
+ eliminated by register optimization, but it is still left in local
+ register store/restore in/from stack block,
+ * (Remove2pcodes): after removing register, check to see if it
+ should be removed from local register store/restore in/from stack
+ block,
+ * src/pic16/ralloc.c (pic16_decodeOp): added decode for
+ DUMMY_READ_VOLATILE,
+
+ * device/include/pic16/adc.h: minor prototype modifications and
+ update,
+ * device/include/pic16/malloc.h: added GPL notice various
+ modifications,
+ * device/include/pic16/stdint.h: NEW, standard header for ints
+ * device/include/pic16/delay.h: NEW, header for delay functions,
+ delay10tcy, delay100tcy, delay1ktcy, delay10ktcy, delay100ktcy,
+ delay1mtcy,
+ * device/include/pic16/signal.h: NEW, header providing helper macros
+ for implementing signal handlers,
+ * device/include/pic16/stdio.h: added prototypes for functions,
+ printf, vprintf, sprintf, vsprintf, fprintf, vfprintf. Added
+ prototypes for stdin and stdout, added macro PUTCHAR to
+ automatically implement putchar function prototype,
+ * device/include/pic16/usart.h: modified and updated USART library,
+ * device/lib/pic16/libio/adc/,
+ * device/lib/pic16/libio/i2c: some modifications to improve library
+ performance,
+ * device/lib/pic16/libc/stdio/: modifications for the new printf*
+ family of functions,
+ * device/lib/pic16/libc/stdlib/: various modifications in the malloc
+ family of functions and other sources,
+ * device/lib/pic16/libio/usart/: NEW, c sources for the usart module
+ of the PIC18Fxx[28] devices,
+ * device/lib/pic16/libc/delay/: NEW, c sources for the delay functions,
+ * device/lib/pic16/libc/utils/: minor modifications in the .S sources,
+ * device/lib/pic16/startup/{crt0i.c, crt0iz.c}: redesign of the
+ _do_cinit function, because the previous failed when local variables
+ where not placed in the same memory bank,
+ * device/lib/pic16/libsdcc/char/: various modifications to improve
+ library performance,
+ * doc/sdccman.lyx: some reorganization of the PIC16 part, added many
+ information on the new functions of the c library and more...
+
+2005-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+ * src/SDCCBBlock.c (iCodeBreakDown): fixed bug #1170212
+
+2005-03-26 Raphael Neider <rneider AT web.de>
+
+ * src/pic16/gen.c (genSkipc): fixed semantics (execute branch
+ if condition == CARRY)
+ * (genCmp): adapted to new genSkipc semantics
+ * src/pic16/genutils.c (pic6_genCmp_special): removed side effect
+ on rIfx (genCmp was broken)
+
+2005-03-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+ * src/SDCCmain.c (setDefaultOptions, optionsTable[], parseCmdLine),
+ * src/z80/main.c (_keywords[]),
+ * src/SDCCglobal.h (struct options),
+ * src/SDCC.y,
+ * src/SDCC.lex (isTargetKeyword, doPragma, pragma_tbl[]): new pragmas
+ to enable/disable SDCC and C99 extensions/keywords (std_c89, std_sdcc89,
+ std_c99, std_sdcc99). Also, equivalent command line options (--std-c89,
+ --std-sdcc89, --std-c99, --std-sdcc99). SDCC specific keywords are
+ always available in leading double underscore form. The C99 support is
+ mostly missing, but it's a start.
+ * support/regression/tests/bug-227710.c: fixed nonconforming use of
+ reserved identifier "__data".
+
+2005-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
+
+ * src/mcs51/peeph.def: fixed bug 1170013
+
+2005-03-22 Maarten Brock <sourceforge.brock AT dse.nl>
+
+ * device/include/mcs51reg.h: fixed bug 842007
+
+2005-03-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+ * src/SDCCcflow.c (dfNumCompare): committed the wrong version of this
+ last time.
+
+2005-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+ * src/port.h (struct PORT),
+ * src/avr/ralloc.c (avr_assignRegisters),
+ * src/avr/main.c,
+ * src/ds390/ralloc.c (ds390_assignRegisters),
+ * src/ds390/main.c,
+ * src/hc08/ralloc.c (hc08_assignRegisters),
+ * src/hc08/main.c,
+ * src/mcs51/ralloc.c (mcs51_assignRegisters),
+ * src/mcs51/main.c,
+ * src/pic/ralloc.c (pic14_assignRegisters),
+ * src/pic/main.c,
+ * src/pic16/ralloc.c (pic16_assignRegisters),
+ * src/pic16/main.c,
+ * src/xa51/ralloc.c (xa51_assignRegisters),
+ * src/xa51/main.c,
+ * src/z80/ralloc.c (z80_assignRegisters),
+ * src/z80/ralloc.h,
+ * src/SDCCopt.c (eBBlockFromiCode, replaceRegEqv, killDeadCode),
+ * src/SDCCcse.c (ifxOptimize, cseBBlock, cseAllBlocks),
+ * src/SDCCcse.h,
+ * src/SDCCdflow.c (computeDataFlow),
+ * src/SDCCdflow.h,
+ * src/SDCCloop.c (addDefInExprs, loopInvariants, loopOptimizations),
+ * src/SDCCloop.h,
+ * src/SDCCcflow.c (*),
+ * src/SDCCcflow.h,
+ * src/SDCCBBlock.c (iCodeBreakDown, dumpEbbsToFileExt, eBBWithEntryLabel),
+ * src/SDCCBBlock.h (struct ebbIndex): new struct that keeps two copies
+ of the eBBlock list, sorted by both bbnum and dfnum. (fixes bug with
+ immedDom() returning wrong block; probably fixes bug #1160833)
+
+2005-03-20 Borut Razem <borut.razem AT siol.net>
+
+ * support/scripts/inc2h.pl: WIN32 port
+
+2005-03-19 Maarten Brock <sourceforge.brock AT dse.nl>
+
+ * device/lib/makefile.in: added abs.c and labs.c
+
+2005-03-17 Maarten Brock <sourceforge.brock AT dse.nl>
+
+ * device/include/stdint.h: added
+ * device/lib/abs.c: added
+ * device/lib/labs.c: added
+ * device/include/stdlib.h: added abs() and labs() prototypes
+ * device/lib/libsdcc.lib: added abs and labs
+ * device/include/float.h,
+ * device/lib/_fsmul.c,
+ * device/lib/printf_fast.c,
+ * device/lib/printf_tiny.c: updated comments
+
+2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+ * src/SDCCicode.c (geniCodeSwitch, geniCodeJumpTable): fixed
+ bug #1164313
+
+2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+ * src/SDCCcse.c (cseBBlock): retain assignment to self when volatile
+ * src/SDCCast.c (isLoopCountable): fixed bug #1161985
+
+2005-03-15 Maarten Brock <sourceforge.brock AT dse.nl>
+
+ * device/lib/printf_large.c: removed inline assembly for portability and
+ readability. Use printf_fast if speed or size are more important.
+ * src/pic16/gen.c: removed conditions around use of DEBUGpc
+ * src/pic16/genutils.h: added define for DEBUGpc for MSVC
+
+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
* 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"