X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=ChangeLog;h=d5914960c616f14e2c30e550c9ac8f239b0d0548;hb=c0d1ec5809ac9737d33c33b767fdacdce92df08c;hp=72426368c4a4be9c04ff339bd0f4d6f57ae1129a;hpb=d10151253d907646b1040f76f9b152f2f9d25835;p=fw%2Fsdcc diff --git a/ChangeLog b/ChangeLog index 72426368..d5914960 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,886 @@ +2005-04-26 Erik Petrich + + * 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 + + * src/SDCCmain.c (setIncludePath): added port->target to SDCC_INCLUDE_NAME + +2005-04-26 Maarten Brock + + * 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 + + * src/mcs51/ralloc.c (serialRegAssign): fixed bug 1189609 + +2005-04-14 Borut Razem + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * src/SDCCmain.c (linkEdit): oops, changed one line too many + +2005-04-11 Maarten Brock + + * src/SDCCmain.c (linkEdit): fixed bug with finding crt0.o for z80 + +2005-04-10 Vangelis Rokas + + * src/pic16/glue.c (printIvalChar): fixed bug when emitting + characters arrays of larger size than the declared one. + +2005-04-10 Borut Razem + + * 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 + + * support/scripts/sdcc.nsi: added include/hc08/* h to NSIS setup + +2005-04-08 Raphael Neider + + * 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 + + * src/pic16/pcode.c (struct defmap_s): named anonymous union (for + Alpha) + +2005-04-08 Vangelis Rokas + + * src/pic16/pcode.c (pic16_get_op2): enlarged size of array b to 128 + bytes + +2005-04-07 Raphael Neider + + * 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 + + * device/lib/Makefile.in: updated for port specific include + +2005-04-07 Maarten Brock + + * support/regression/ports/mcs51/spec.mk: added mcs51 include + +2005-04-07 Maarten Brock + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * src/SDCCast.c (decorateType): fixed bug #1105626 + +2005-04-02 Vangelis Rokas + + * 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 + + * src/SDCCicode.c (getArraySizePtr): fixed bug #1122171 + +2005-04-01 Erik Petrich + + * 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 + + * 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 + + * src/SDCCBBlock.c (iCodeBreakDown): fixed bug #1170212 + +2005-03-26 Raphael Neider + + * 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 + + * 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 + + * src/mcs51/peeph.def: fixed bug 1170013 + +2005-03-22 Maarten Brock + + * device/include/mcs51reg.h: fixed bug 842007 + +2005-03-21 Erik Petrich + + * src/SDCCcflow.c (dfNumCompare): committed the wrong version of this + last time. + +2005-03-20 Erik Petrich + + * 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 + + * support/scripts/inc2h.pl: WIN32 port + +2005-03-19 Maarten Brock + + * device/lib/makefile.in: added abs.c and labs.c + +2005-03-17 Maarten Brock + + * 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 + + * src/SDCCicode.c (geniCodeSwitch, geniCodeJumpTable): fixed + bug #1164313 + +2005-03-16 Erik Petrich + + * src/SDCCcse.c (cseBBlock): retain assignment to self when volatile + * src/SDCCast.c (isLoopCountable): fixed bug #1161985 + +2005-03-15 Maarten Brock + + * 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 + + * src/pic16/genutils.c (pic16_genCmp_special): initialized offs to + prevent compiler warning + +2005-03-14 Vangelis Rokas + + * 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 + + * 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 + + * 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 + + * device/lib/printf_fast.c: fix leading zero format, eg "%02d" + +2005-03-09 Raphael Neider + + * src/SDCCopt.c (killDeadCode): fixed bug #1156016 + +2005-03-06 Maarten Brock + + * 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 + + * src/pic16/gen.c (genRightShiftLiteral): fixed bug #1154256 + +2005-02-26 Erik Petrich + + * 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 + + * src/SDCCast.c (decorateType): fixed bug 1124787 + +2005-02-20 Hubert Sack + committed by Frieder Ferlemann + + * src/mcs51/peeph.def: added peepholes 3.h-k and 132.a-f from + patch #1121755 + +2005-02-20 Frieder Ferlemann + + * src/SDCCpeeph.def: new keyword "labelRefCountChange" which allows peepholes + to keep the correct label reference count when adding/removing references + to labels. A peephole file using this is appended to patch #1144962. + +2005-02-14 Raphael Neider + + * device/lib/pic16/libc/string/memccpy.c: changed 3rd argument to char + * src/SDCC.lex (process_pragma): fixed to make disable_warning work for PIC16 + * src/pic16/gen.c (aopForSym, calls to pic16_aopOp): prevent unneccessary + retrievals of result operand's value on assignment + +2005-02-13 Vangelis Rokas + + * device/include/pic16/string.h: modified prototype for memccpy() + to memccpy(void *, void *, char, size_t) + * src/pic16/gen.c (genFunction, genEndFunction): reenable if-case to + check whether to omit frame pointer or not, + * (genInline): convert all occurences of "\n" to LF in inline + assembler blocks, this helps formatting the inline text, + * (pic16_loadFSR0): modified prototype, + * (genNearPointerGet, genNearPointerSet): reorganization of code, + removed some 8051 legacy code, + * (genPackBits): enabled handling bitfields exceeding one byte in size, + * src/pic16/ralloc.c (pic16_assignRegisters): clear dynrIdx variable + before allocating temporary registers in functions, + +2005-02-11 Maarten Brock + + * support/regression/tests/bitvars.c: corrected the "fix" + +2005-02-10 Maarten Brock + + * support/regression/tests/bitvars.c, + * support/regression/tests/bitwise.c, + * support/regression/tests/rotate.c: "fixed" problems on Alpha + +2005-02-10 Raphael Neider + + * src/pic16/pcode.c (assignToSameBank) : fixed cast to pointer of + different size for Alpha + * src/pic16/gen.c (genCmpEq) : improved compare with 0 + +2005-02-09 Raphael Neider + + * src/SDCC.lex(doPragma) : save and restore warning options as well + (also added new stack plus clone- and copyAndFreeSDCCERRG()) + * have #pragma less_pedantic set the errorlevel to WARNING + (fixes #1117001) + * (cloneOptimize) : fixed wrong malloc's size + * support/Util/SDCCerr.[ch] : made SDCCERRG globally accessible to + facilitate correct handling of #pragma (save|restore) + +2005-02-09 Maarten Brock + + * src/mcs51/gen.c: removed non-standard C nameless struct/union + +2005-02-04 Slade Rich + + * src/pic/gen.c : Fix for bugs #1080519 & #1115662. + +2005-02-03 Maarten Brock + + * device/include/mcs51/c8051f120.h: added declarations for sbit port 2,3&4 + +2005-02-02 Raphael Neider + + * src/SDCCast.c (processParms): disabled W_NONRENT_ARGS for pic16 port + * src/pic16/gen.c (aopForSym): reenabled special case for function pointers + * (pic16_storeForReturn): fixed to allow returning function pointers + * (genPackBits): improved accessing full bytes, implemented for GPOINTERs + * device/include/pic16/{stddef.h,stdbool.h}: added + +2005-02-02 Maarten Brock + + * device/include/mcs51/c8051f040.h: added define CPT2_PAGE + +2005-02-01 Slade Rich + + * src/pic16/pic16.dsp : Added file graph.c to make it compile under windows + * src/pic16/Makefile.bcc : Do not use this file but added file graph.c as it + appeared to be required + +2005-01-31 Borut Razem + + * support/scripts/sdcc.nsi: added include/asm/ds390, include/asm/mcs51, + include/mcs51 and include/z80 directories to the package + +2005-01-26 Erik Petrich + + * src/hc08/gen.c (genFunction): fixed bug #1112752 + +2005-01-30 Frieder Ferlemann + + * src/mcs51/peeph.def: adapted peephole 258.x to changed gen.c (genAnd) + +2005-01-29 Frieder Ferlemann + + * src/mcs51/gen.c (genAnd): accessing LSB/MSB by rotating acc + +2005-01-29 Maarten Brock + + * device/include/Makefile.in: create/copy mcs51 and z80 include subdirs + +2005-01-27 Maarten Brock + + * device/include/c8051fxxx.h: removed these 6 files + * device/include/mcs51/c8051fxxx.h: added these 11 new files + +2005-01-26 Raphael Neider + + * src/pic16/gen.c (genAssign): fixed assignment from longs + in codespace (were cut to three bytes) + * (genDummyRead): implemented (except for CODESPACE...), + fixed bug #1108575 + * src/pic16/glue.c (emitStatistics): beautified + * device/lib/pic16/libm/Makefile: added include path + +2005-01-26 Erik Petrich + + * src/z80/gen.c (aopPut): fixed bug #1103902 + +2005-01-25 Erik Petrich + + * device/lib/expf.c: fixed bug #1095792 + +2005-01-24 Vangelis Rokas + + * device/lib/pic16/libm: added Math library sources + +2005-01-24 Raphael Neider + + * src/pic16/pcode.h: added second memory operand to pCodeOpReg + to enable upcast to pCodeOpReg2 (there is no type tag to + differenciate the two and pic16_popGet2p cast into PCOR2) + * src/pic16/main.c (_process_pragma): fixed another malloc bug + (sizeof(sectNames) changed to sizeof(sectName)) + Both patches fix segfaults under MinGW. + +2005-01-23 Raphael Neider + + * src/pic16/{device.c,pcode.c}: s/free/Safe_free/g for + Safe_[mc]?alloc()'ed variables + * src/pic16/gen.c (pic16_aopOp,pic16_popGet): added handling + of (byte sized) temporaries (assign them to WREG for now) + * src/pic16/main.c (_process_pragma): fixed nasty malloc bug + (used sizeof(set *sectSyms) instead of sizeof(struct sectSym)), + this might fix SIGSEGVs on MinGW... + * src/SDCCopt.c (killDeadCode): restored original behaviour + (volatile operands might get thrown away though) + +2005-01-23 Vangelis Rokas + + * src/pic16/gen.c: fixed bug #1106975, + * src/pic16/gen.c: fixed possible bug #1102572, now during TOS + pointer update, INTCON is saved, global interrupts are disabled and + restored after updateing TOS. + * src/SDCC.y, src/SDCC.lex, src/SDCCsymt.c, src/SDCCsymt.h: + * added function attribute 'shadowregs' to take advantage of shadow + registers, + * added function attribute 'wparam' as an alternative to the wparam + pragma, + * support/Utils/SDCCerr.[ch]: added error E_SHADOWREGS_NO_ISR when + user declares a non-ISR function as 'shadowregs', + * doc/sdccman.lyx: updated to reflect recent changes of pic16 port + +2005-01-22 Vangelis Rokas + + * .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 + + * src/SDCCopt.c (killDeadCode): do not throw iCodes away if one + of the operands is volatile. Fixes #1020220 + +2005-01-22 Daniel Winkler + + * 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 + + * src/pic16/pcoderegs.c (pCodeOptime2pCodes): disabled optimization + to fix #1106967 (pCode->seq are not set up correctly) + +2005-01-22 Erik Petrich + + * src/SDCCglue.c (glue): make sure code area is declared before the + static initialization area. + +2005-01-21 Raphael Neider + + * 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 * src/SDCCglobl.h: ensure that PATH_MAX >= 2048 to guarantee