X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=ChangeLog;h=4afc8d327ae870de442245331880b854f219efe4;hb=87d0119123342e0f95ba6e8e4f957194df81a7a6;hp=4788d7f586a2f7b014e290afaed0d4d688cda7c5;hpb=d9d71b685333fa132ef705c9932f116d3da7677e;p=fw%2Fsdcc diff --git a/ChangeLog b/ChangeLog index 4788d7f5..4afc8d32 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,4 +1,950 @@ -2004-08-30 Erik Petrich +2004-12-02 Slade Rich + + * device/include/pic/pic16f877.h : added an include file for the PIC16F877 device. + +2004-11-28 Frieder Ferlemann + + 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 + + * 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 + + * src/pic16/pcode.c: fixed bug which may produce error in non-GNU + compilers + +2004-11-25 Vangelis Rokas + + * 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 + + 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 + + * 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 + + * src/SDCCmain.c (parseCmdLine, optionsTable[]): fixed bug with + --out-fmt-s19 turning into --out-fmt-elf if s19 was already + selected. + * src/SDCCmain.c (linkEdit): don't define SSEG for HC08 + * src/hc08/main.c (_hc08_setDefaultOptions): default xdata to be + contiguous with data + +2004-11-19 Frieder Ferlemann + + * device/lib/_gptrget.c (_gptrget), + * device/lib/_gptrgetc.c (_gptrgetc), + * 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 Hubert Sack in RFE #1067986, thanks + +2004-11-18 Maarten Brock + + * .version: bumped version to 2.4.7 + * device/lib/_gptrget.c (_gptrget): is now _naked + * device/lib/_gptrgetc.c (_gptrgetc): is now _naked + * device/lib/_gptrput.c (_gptrput): is now _naked + * src/SDCCast.c (createBlock): removed ridiculous self-assignment, + (createFunction): fixed xstack + * src/SDCCglue.c (emitMaps): set allocation required for bit area + * src/SDCCicode.c (geniCodeCast): don't change SPEC_OCLS for literal + or bit either, + (geniCodeCritical): store original interrupt state in an iTemp bit + var unless stack-auto + * src/SDCCicode.h: added CRITICAL and ENDCRITICAL to SKIP_IC2 + * src/SDCCmain.c (setIncludePath): added include/target to search path + * src/SDCCmem.c (allocParms): store bit vars in bit space, not overlay + * src/SDCCsymt.c (checkFunction): don't check regbank for isr's against + prototype, + (processFuncArgs): put bit vars in bit area + * src/mcs51/gen.c (saveRegisters, unsaveRegisters, genXpush, saveRBank, + unsaveRBank): fixed xstack, + (genFunction): bugfix: replaced (global!) reentrant with fReentrant, + (genFunction, genEndFunction): fixed xstack, + (genAssign): optimization don't walk backwards through mem + * src/mcs51/main.c (_mcs51_regparm): don't pass bit params in registers + * src/mcs51/ralloc.c (createStackSpil): spill bits to bit area + * support/regression/Makefile: also make library (for stack-auto) when + making "all" and added "test-mcs51-xstack-auto" + * support/regression/fwk/lib/testfwk.c: added T2_isr prototype for mcs51 + * support/regression/ports/mcs51/T2_isr.c: added this file as a stub + * support/regression/ports/mcs51/fwk.lib: added to link T2_isr stub + * support/regression/ports/mcs51/spec.mk: added rules for fwk.lib + * support/regression/ports/mcs51-stack-auto/spec.mk: replaced + make-library by MAKE_LIBRARY + * support/regression/ports/mcs51-xstack-auto/spec.mk: file added to run + regression tests for xstack + * support/regression/tests/bitvars.c: test for bit vars (bug 938782) + * support/regression/tests/critical.c: test for critical on mcs51 + +2004-11-18 Erik Petrich + + * support/regression/ports/ucz80/spec.mk: use include and lib files from + built version of sdcc instead of installed version + +2004-11-14 Maarten Brock + + * src/mcs51/gen.c (toBoolean): fixed bug 1065458 + * device/lib/Makefile.in: z80 uses printf_large.c, sprintf.c and + vprintf.c now + * device/lib/printf_large.c (calculate_digit): fixed bug 1057979 + * device/lib/z80/Makefile: don't use printf.c as it fails bug 1057979 + WARNING: remove device/lib/build/z80/printf.o by hand when + updating from previous build! + * device/lib/z80/printf.c: updated comment + * support/regression/tests/bug1057979.c: test all ports now + * support/regression/tests/bug1065458.c: file added + +2004-11-12 Erik Petrich + + * src/z80/gen.c (genFunction, genEndFunction): avoided generating + *_start and *_end symbols for static functions + +2004-11-11 Maarten Brock + + * src/SDCCmain.c (linkEdit): don't suppress crt0 if --nostdlib is used + and search crt0.o in all library paths, + (setIncludePath): proper handling of --nostdinc, + (setLibPath): proper handling of --nostdlib + * support/regression/Makefile, + * support/regression/ports/ds390/spec.mk, + * support/regression/ports/gbz80/spec.mk, + * support/regression/ports/hc08/spec.mk, + * support/regression/ports/mcs51/spec.mk, + * support/regression/ports/mcs51-large/spec.mk, + * support/regression/ports/mcs51-stack-auto/spec.mk, + * support/regression/ports/z80/spec.mk: use include and lib files from + built version of sdcc instead of installed version + * doc/sdccman.lyx: fixed typo in --nostdinc + +2004-11-10 Slade Rich + + * src/pic/pcode.c, + * src/pic/device.c, + * src/pic/ralloc.c, + * src/pic/gen.c : added support to generate code for struct bit fields. + +2004-11-06 Maarten Brock + + * as/xa51/xa_version.h, + * device/include/errno.h, + * device/include/regc515c.h, + * device/lib/_itoa.c, + * device/lib/_ltoa.c, + * device/lib/ser_ir_cts_rts.c, + * sim/ucsim/xa.src/glob.cc, + * sim/ucsim/xa.src/inst_gen.cc, + * sim/ucsim/xa.src/xa_bit.cc, + * sim/ucsim/xa.src/xa_sfr.cc, + * sim/ucsim/z80.src/inst_dd.cc, + * sim/ucsim/z80.src/inst_fdcb.cc, + * support/scripts/keil2sdcc.pl, + * src/pic16/pic16.dsp, + * src/pic16/pic16a.dsp: corrected cvs line endings + * device/lib/printf_large.c: fixed bug 1057979 + * src/pic16/gen.c: fixed non-C standard code + * src/SDCCmain.c: made --pack-iram default, added --no-pack-iram + * src/SDCCglobl.h: changed pack_iram to no_pack_iram + * support/regression/ports/mcs51/support.c: reload T1 asap + * doc/sdccman.lyx: updated for options --pack-iram and --no-pack-iram, + pdata use and clear idata startup behaviour + * support/regression/tests/bug1057979.c: added + +2004-11-04 Maarten Brock + + * device/examples/ds390/ow390/ad26.h, + * device/examples/ds390/ow390/cnt1d.h, + * device/examples/ds390/ow390/crcutil.c, + * device/examples/ds390/ow390/ownet.h, + * device/examples/ds390/ow390/owsesu.c, + * device/examples/ds390/ow390/swt12.h, + * device/examples/ds390/ow390/swtoper.c, + * device/examples/ds390/ow390/temp10.h, + * device/examples/ds390/ow390/thermodl.c, + * device/examples/ds390/tinitalk/tinitalk.dsp, + * device/examples/ds390/tinitalk/tinitalk.dsw, + * device/examples/mcs51/clock/hw.h, + * device/examples/mcs51/simple2/go.bat, + * device/examples/serialcomm/windows/serial.h, + * device/examples/xa51/dummy.c, + * device/examples/xa51/hello.c, + * device/include/80c51xa.h, + * device/include/at89x051.h: corrected cvs line endings + +2004-11-04 Vangelis Rokas + + * src/pic16/main.c (options): added command line --gstack, to trace + stack over/under flows, + * added pragma 'wparam' to allow passing first byte of function + parameters via WREG, syntax is #pragma wparam my_function[, func2...] + * src/pic16/gen.c (pic16_testStackOverflow): function which emits a + call to __gstack_test function and sets up the symbol as extern, + * (pic16_pushpCodeOp, pic16_poppCodeOp, pushw, pushaop, popaopidx, + * popaop): added call to pic16_testStackOverflow, + * (wParamCmp, inWparamList): NEW, test existence of a symbol in + wparamList list, + * (genCall, genPcall): now all parameters are passed via stack + except in functions that are pass to wparam pragma in which WREG is + used too, + * (genPcall): REENTRANT flag is checked to see if variable prototype + contains reentrant keyword, don't call a non-reentrant function, via + a reentrant function pointer or vice versa, functions are never + passed via WREG, + * (genJumpTab): applied patch from bug #1057478 by R.Neider and + D.Winkler, + * src/pic16/glue.c (pic16emitRegularMap): fixed bug which caused a + SIGSEGV when accessing a NULL register stucture, + * (pic16_printGPointerType): modified to handle UPPER modifier for + function initializers, changed prototype of function to simpler one, + * (pic16_printIvalFuncPtr): check to see if function is already + added in externs list, + * src/pic16/pcoderegs.c (pCodeOptime2pCodes): fixed bug which + optimized a move from W to SFR with a move to the same register + later after a CALL, + * device/lib/pic16/debug: NEW directory, contains debug features + which are enabled when linking with libdebug.lib, currently command + line option --gstack enables stack pointer tracing for over/under + flow, corresponding sources are in debug/gstack + +2004-10-30 Vangelis Rokas + + * doc/sdccman.lyx: updated SDCC version, + * (PIC16 port): update list of command line options, + * src/pic16/device.h (structure pic16_options_t): added field gstack + to enable stack overflow tracing on push/pops, + * src/pic16/device.c (statistics structure): added statistics + structure, + * (pic16_dump_access, pic16_dump_usection, pic16_dump_gsection, + pic16_dump_int_registers): increase statistics counters for each + * variable which is encountered + * (pic16_dump_usection): emit each .udata variable to its own udata + section, + * src/pic16/gen.c (assignResultValue, genCall, genPcall, genFunction): + when macro USE_WREG_IN_FUNC_PARAMS is set to 0 pass all function + parameters via stack, otherwise use old scheme, + * src/pic16/glue.c (pic16_emitStatistics): dump statistics in + assembler output file, + * src/pic16/main.c: added command line options --gstack to enable + push/pop tracing for stack overflow, + * src/pic16/pcode.c (all pCodeInstruction records for PIC18F + instructions): added size of each instruction, + * (pic16_countInstruction): estimate size of instructions in + the_pFile list, inline assembly blocks are not counted, + * (pic16_FixRegisterBanking): trace previous register usage, when + banksel optimizations is greater than 0, don't emit a redudant + banksel directive, + +2004-10-26 Slade Rich + + * src/pic/ralloc.c : fixed inefficient code produced when compiling a complimented bit operation. + * src/pic16/ralloc.c : applied same fix for pic16. + * src/pic/gen.c : tidied it up a little. + +2004-10-25 Frieder Ferlemann + + * src/mcs51/peeph.def: disabled 259.a,b for removing redundant ret, + thanks to Martin Helmling for reporting (mail on sdcc-devel 2004-10-25) + +2004-10-22 Erik Petrich + + * src/SDCCast.c (reverseParms): fixed bug #1040577 (part 2) + +2004-10-22 Frieder Ferlemann + + * device/lib/ser_ir_cts_rts.c: integer promotion caused a call to the + non-reentrant function __modsint in the interrupt function (thus + corrupting math operations during serial I/O) + * device/lib/ser_ir.c: as above, changed buffersize + * src/mcs51/peeph.def: added 259.a,b for removing redundant ret, + 256.c,d for zeroing + * doc/Makefile: added option -t for rsync + +2004-10-22 Erik Petrich + + * src/SDCCast.h (struct ast), + * src/SDCCast.c (reverseParms, copyAst): fixed bug #1040577 (part 1) + +2004-10-20 Borut Razem + + * support/scripts/sdcc.nsi: added include/pic16/*.h to the setup + package + +2004-10-20 Vangelis Rokas + + * device/lib/pic16/libsdcc/Makefile: added lregs directory in + makefile targets, + * device/lib/pic16/libsdcc/lregs/{Makefile,lrst.c,lrrest.c}: NEW + support functions to replace long sequences of MOVFF's from access + bank registers to stack and vice versa, + * src/pic16/device.h: added new field opt_flags, where optimization + flags can be set to enable certain features, + * src/pic16/gen.c (pic16_emitpinfo): NEW to add PC_INFO pCode in + * pBlock, (genFunction, genEndFunction): surroung loop for + saving/loading used registers in stack with PC_INFO pCodes, + INF_LREGS. Code in between can then be optimized by pCode optimizer + to support function calls, + * (genDataPointerSet): fixed bug which loaded float fields in + structures with corrupt data, + * src/pic16/genutils.c (debugf, _debugf): macro/function which emits + in a standard way debug info on stderr. Feature used for developing + and debugging only, + * src/pic16/glue.c (pic16glue): reformatted, deleted some old and + obsolete chunks of code, + * if optimization flag OF_LR_SUPPORT was set, call pic16_OptimizeLocalRegs, + * src/pic16/main.c (_pic16_parseOptions): added handler for --flr-support, + * pic16/src/pcode.c (pic16_newpCodeInfo, + * (pic16_newpCodeOpLocalRegs), + * (pic16_convertLocalRegs2Support): NEW, to support new optimization + feature, + * (pic16_pCodeConstString): printing of the initial value of a + symbol as a comment is inhibited since parsing was already done by + copyStr and output is corrupt, + * (pic16_pCode2str, genericPrint): handle PC_INFO pCode, + +2004-10-20 Erik Petrich + + * src/mcs51/ralloc.c (packRegisters): fixed bug #1044601 + +2004-10-19 Maarten Brock + + * as/mcs51/lkarea.c: removed old K&R style, + (lnksect): changed check on boundary error, + (lnksect2): changed check on boundary error, + (lnksect2): extend XSTK to end of page if size = 1 + * as/mcs51/lkmain.c: removed old K&R style, + (Areas51): create l_IRAM symbol + * as/mcs51/lkmem.c (summary2): added report on PSEG and XSTK + * device/lib/Makefile.in: renamed model-mcs51-reentrant to + model-mcs51-stack-auto, added model-mcs51-xstack-auto + * device/lib/_mullong.c: added version to be compiled with xstack + * device/lib/mcs51/crtclear.asm: clear only upto --iram-size + * device/lib/mcs51/crtxclear.asm: clear pdata as well + * device/lib/mcs51/crtxstack.asm: fixed comment + * src/SDCCglue.c: maxInterrupts defaults to 0, + (emitMaps): added pdata, + (createInterruptVect): (re)moved default, + (glue): added pdata, + (glue): moved __start__xstack to XSTK with default size 1 + * src/SDCCmain.c (parseCmdLine): automatically set options.intlong_rent + and options.float_rent when options.stackAuto is set, + (linkEdit): only write XDATA_NAME if provided on command line + * src/SDCCmem.h, + * src/SDCCmem.c: added pdata + * src/port.h: added pdata_name to PORT + * src/mcs51/gen.c (toBoolean): fixed for Acc use of aopGet, + (saveRegisters, unsaveRegisters): removed usage of B, + (genMinus): fixed accumulator clash, + (genJumpTab): added comment, this needs another look + * src/mcs51/gen.c: added check for "B in use" paranoia, + added pushB() and popB() + * src/mcs51/peeph.def: restart after 177.c so 177.a can get a second + chance + * src/avr/main.c, + * src/ds390/main.c, + * src/hc08/main.c, + * src/mcs51/main.c, + * src/pic/main.c, + * src/pic16/main.c, + * src/xa51/main.c, + * src/z80/main.c: (reset_regparms) made void parameter explicit and + added PSEG (PAG,XDATA) or NULL to port specifier + * src/ds390/main.c (_ds390_genIVT): moved implemented default in here + * src/mcs51/main.c (_mcs51_genIVT): moved implemented default in here, + (_mcs51_genInitStartup): removed __start__xstack equ, + (mcs51_port): moved xstack from XSEG (XDATA) to XSTK (PAG,XDATA) + * src/pic16/device.c (pic16_dump_usection, pic16_dump_isection), + * src/z80/gen.c (_rleAppend): fixed warnings + * support/regression/tests/zeropad.c: added pdata test + * .version: bumped to 2.4.6 + +2004-10-17 Borut Razem + + * support/scripts/sdcc.nsi: cross compiling of WIN32 setup.exe on Linux + as a part of nightly build + +2004-10-16 Vangelis Rokas + + * src/pic16/gen.c (struct _G): added field useWreg, is set to 1 when + WREG holds the first byte function parameters, + * (aopForSym): take special case for symbols which are in FARSPACE + but in CODESPACE too, + * (assignResultValue): modified to take into account _G.useWreg, + * (genCall): don't use wreg for parameter passing when function is + declared as reentrant, too, added optimization INCF to stack + pointer when stack parameter count is 1, + * (genFunction, genEndFunction): refurnished and fixed to not using + wreg for passing parameters when function has varargs or is + reentrant, fixed bug with symbol name compare for generating + functions in absolute address, + * (pic16_storeForReturn): refurnished, + * (genCmp): began writing a new version of the function, not ready + yet, therefore it is disabled, + * (genAssign): do not read code memory when assigning a function to + a pointer function, + * src/pic16/glue.c (pic16emitStaticSeg): abSym->name is defined an + array of characters, not pointer, + * (pic16initialComments): in debug mode emit an .ident directive for + the assembler, + * (_process_pragma): emit a new warning type (internal to pic16) + when setting stack to default length, emit a similar warning when + placing a function at absolute address and address is not word aligned + * (_pic16_parseOptions): added 'return TRUE' statement, + * (_pic16_linkEdit): if compiling a source, then add the source's + file object, first in the list of objects to link, + +2004-10-13 Slade Rich + + * src/pic/pcoderegs.c : increased count on regUsedinRange to prevent unnecessary warning. + * src/pic/main.c : removed VC warning. + * src/pic/gen.c : changed comment. + +2004-10-12 Vangelis Rokas + + * device/lib/pic16/libsdcc/gptr/gptrput[234].c: an external + reference to a deprecated symbol _GPTRREG was causing failure to + link. Thanks G. M. Gallant for the info. + +2004-10-12 Slade Rich + + * src/pic/pcode.c : Applied a code patch supplied by Paul Ashmore in + comments for Bugs item #954788. + +2004-10-10 Vangelis Rokas + + * src/pic16/device.c (pic16_dump_gsection, + * pic16_groupRegistersInSection): handle symbols declared to be in + access bank differently, + * src/pic16/gen.c (struct _G): added field resDirect, + * (aopForSym): if symbol on stack and iCode is '=' and result exists, + send values read from stack directly to result and don't allocate + temporary values, + * (pic16_sameRegs): fixed bug that allowed MOVFF to move between + same registers, + * (pic16_sameRegsOfs): NEW, + * (freeAsmop): if _G.resDirect is set then do not mark registers as + free because they were not allocated from temporary pool, + * pic16_popRegFromString): workaround to fix a problem with + allocating variables twice or never, + * (genGenPointerGet): using PRODL instead of FSR0H, + * (genGenPointerSet): using POSTDEC1 (that is a stack location) + instead of FSR0H, + * (genAssign): take advantage of the _G.resDirect flag, + * (genCast): around line 11844, use mov2f instead of directly + MOVFF'ing between operands to account for literal values, + * src/pic16/genutils.c: some new debug functions for gpsim have been + added, + * src/pic16/glue.c (pic16_printIvalType): fixed bug that initialized + float with integer part only, + * src/pic16/main.c (_process_pragma): handle pragma udata access to + place variables in access bank + * device/lib/pic16/libsdcc/gptr/gptr*.c: using BRA instead of GOTO, + updated sources to reflect recent changes in gen.c + +2004-10-06 Vangelis Rokas + + * device/lib/pic16/libsdcc/Makefile.rules: fixed bug concerning + sources that searched for headers in installation path, now the + device/include/pic16 is used, + * src/pic16/glue.c (pic16glue), + * src/pic16/pcode.c (pCode2str, genericPrint): don't print .file or + .line directives if not in debug mode, this suppresses assembler's + warnings for ignored directives + +2004-10-05 Maarten Brock + + * src/port.h: made reset_regparms prototype void parameter explicit. + * src/SDCCsymt.c (processFuncArgs): removed argument "func". + * src/mcs51/ralloc.c (packRegisters): new fix for bugs 898889 & 979599. + * doc/sdccman.lyx: documented warning disabling and how to use + printf_large to make it print floats. + * device/include/stdbool.h: NEW + * device/lib/_atof.c, + * device/lib/_divuint.c, + * device/lib/_divulong.c, + * device/lib/expf.c, + * device/lib/printf_large.c, + * device/lib/sincosf.c, + * device/lib/sincoshf.c: used stdbool.h, all compile with stack-auto now + * device/lib/Makefile.in: added target for model-mcs51-reentrant to build + a completely reentrant lib. + +2004-10-05 Vangelis Rokas + + * device/lib/pic16/libsdcc/gptr/gptr*.c: added return statements + * device/include/pic16/stdio.h: fixed bug with colon + +2004-10-03 Vangelis Rokas + + * device/include/pic16/stdio.h, + * device/include/pic16/stdlib.h, + * device/include/pic16/math.h: NEW + * device/lib/pic16/libsdcc/gptr/*.c (gptrget*, gptrput*): functions + declared as _naked to reduce overhead + * device/lib/Makefile.in (target port-specific-objects-pic16): + changed * to *.* so to ignore the CVS directory, + * src/pic16/gen.c (pic16_freeAsmop): added code to store result of + stacked variables back in stack, + * (genEndFunction): fixed bug reported by G.M. Gallant with stack + corruption + +2004-10-01 Vangelis Rokas + + * .version: bumped version number to 2.4.5 + * support/Util/SDCCerr.h: added warning W_POSSBUG2. + * support/Util/SDCCerr.c (messages structure): added entry for + W_POSSBUG2 + + Large cumulative patch for pic16 port and libraries. + * device/include/pic16/sdcc-lib.h, + * device/include/pic16/stdarg.h, + * device/include/asm/pic16/features.h, + * device/include/lib/pic16/libsdcc/gptr/{*.c, Makefile}: NEW, + * device/include/pic16/float.h: changes reentrant keyword with + _FS_REENTRANT, added prototype for __fsneq, included sdcc-lib.h + * device/lib/pic16/libsdcc/Makefile: added target directory gptr, + updated target build-libraries to include objects from gptr, + * device/lib/pic16/libsdcc/{char,int,long}/*.c: added macro + _IL_REENTRANT to all function headings, included sdcc-lib.h header, + * device/lib/pic16/libsdcc/float/*.c: added macro _FS_REENTRANT to + all function headings, + * src/SDCCmain.c: added global parameter userIncDirsSet, + * (parseCmdLine): when option -I is encountered add directory to + userIncDirsSet too, + * src/version.awk: added space between control and long, + * src/pic16/NOTES: added some notes for the port, + * src/pic16/gen.c: added prototype for mov2fp function, + * (fReturnpic16[]): properly named return value registers, + * (_G structure): added fields stackRegSet, fregsUsed, stack_lat, + * (aopForSym): added code to handle symbols with onStack flag set, + symbols onStack are allocated PTRSIZE bytes, + * (aopFreeAsmop): handles special case where asmops are stack objects, + * (aopGet, pic16_popGet): adde cod to handle new asmop AOP_STA, + * (pic16_popGetTempReg, pic16_popGetTempRegCond, pic16_popReleaseTempReg): + added argument lock to trace flaws in allocating temporary registers + when developing port, + * (pic16_popGetLit, pic16_popGetLit2): changed lit from unsigned to signed + * (pic16_popRegFromString): reenabled allocating a direct register + from string, + * (assignResultValue): various beautifications, + * fixed bug #1037717 (patch from R. Neider & D. Wrinkler) with mistaken + referenced function argument, + * (genIpush): reenabled to allow stacked arguments, handles only + ic->parmPush iCodes, + * (genCall, genPcall): major changes to allow for variable argument + functions, fixed a bug with falsely restoring stack pointer after + returning from call, + * (genFunction): pending code for critical function, + * (shiftR1Left2ResultSigned, shiftR1Left2Result, shiftL2Left2Result, + * (shiftR2Left2Result, shiftLLong) applied patch #1032155 from R.Neider, + * (genNearPointerGet): fixed bug with indirect reading, was always + reading from INDF0 + * (genGenPointerGet, genGenPointerSet): rewrote to support generic + pointers, + * (genAddrOf): rewrote code to take address of a stacked function parameter + * (genCast): fixed casting to generic pointer type, + * src/pic16/gen.h: added AOP_STA, + * (struct asmop): added field stk, + * src/pic16/genarith.c (pic16_AopType): handle AOP_STA, + * (pic16_genPlusIncr): changed emitSKPNZ to emitSKPNZ, + * (pic16_genAddLit, pic16_genPlus): applied patch #1034042 by tecodev, + * (pic16_genMinus): fixed bug #1035119 with patch submitted by tecodev, + * src/pic16/genutils.c (pic16_genNot): removed symbol *tlbl, + * src/pic16/glue.c (pic16_printGPPointerType): fixed to support new + generic pointers, + * src/pic16/main.c (_pic16_initPaths): ignores default SDCC include + and library paths, + * (pic16_port structure): generic pointer size is set to 3, + * src/pic16/pcode.c (pic16_newpCodeOpLit): correctly print literal integer, + * (insertBankSwitch): cast to (char *) to prevent 64bit CPUs' + compiler warning, + * src/pic16/ralloc.c (allocReg): prevent allocating register when + operand is an iTemp, + +2004-09-24 Martin Helmling + + * debugger/mcs51/cmd.c: set PC if a symbol at pc reg is set + * debugger/mcs51/simi.c: addapt new syntax of s51 + +2004-09-23 Vangelis Rokas + + * src/pic16/genutils.c (pic16_genNot): fixed bug #1032265, + * src/pic16/pcode.c: commented out some calls to free() in order to + fix bug #989576, + +2004-09-23 Erik Petrich + + * src/SDCCicode.h, + * src/SDCCicode.c (isiCodeInFunctionCall), + * src/avr/ralloc.c (selectSpil), + * src/pic/ralloc.c (selectSpil), + * src/pic16/ralloc.c (selectSpil), + * src/ds390/ralloc.c (selectSpil), + * src/hc08/ralloc.c (selectSpil), + * src/xa51/ralloc.c (selectSpil), + * src/mcs51/ralloc.c (selectSpil): Don't use remainSpil to spill to the + stack in the middle of a function call sequence (fixes bug #1020268) + * src/SDCCicode.c (geniCodeJumpTable): fixed error in computing the + costs associated with the minimum switch case. + +2004-09-19 Erik Petrich + + * src/SDCC.lex: fixed bug #1030549 + +2004-09-19 Erik Petrich + + * src/SDCCcse.h (struct cseDef), + * src/SDCCcse.c (cseBBlock, newCseDef, ifFromAddrTaken): purge CSEs + over a function call if the CSE is derived from a symbol whose + address has been taken (fixes bug #1029883) + * support/regression/tests/bug-1029883: a new regression test for + this bug + +2004-09-18 Erik Petrich + + * src/hc08/gen.c (emitinline): fixed bug #1029778 + * src/SDCC.y (assignment_expr): fixed the grammer so that assignment + to a cast object is no longer a syntax error ("fixes" bug #1030006, + and starts toward RFE #905167) + +2004-09-17 Vangelis Rokas + + * src/pic16/gen.c (mov2f): New function to move an operand to + another without considering if it is a literal or a register, + * (pic16_sameRegs): don't check if they are both AOP_REG, + * (AccRsh): removed andmask=0 lines, + * (genLeftShift): duplicated to be improved in future versions, + * src/pic16/main.c (_process_pragma): emit stack default size in hex, + * src/pic16/pcode.c: added POC_INFSNZW, updated inverted_op fields + in POC_INCFSZ, POC_INCFSZW, POC_INFSNZ, + * (pic16initMnemonics): added initialization for POC_INFSNZW, + * (insertBankSwitch): fixed inserting banksel directives algorithm + for instructions that follow a skip instruction, this fixes a report + for broken subtraction code generation, + * src/pic16/ralloc.c (deassignLRs): do not free register if current + iCode is a left op, just in case result and right share the same + registers + +2004-09-16 Erik Petrich + + * src/hc08/main.c, + * src/hc08/gen.c (genJumpTable): more efficient jump table, supports + preservation of HX + * src/hc08/gen.c (pullRegs): fixed order of HX & XA pairs + * src/mcs51/ralloc.c (packRegisters): removed the patch applied + on 2004-09-12; it was buggy + +2004-09-15 Bernhard Held + + * src/SDCCsymt.h: removed RESULT_CHECK + * src/SDCCast.c, + * src/SDCCglue.c, + * src/SDCCval.c, + * src/pic/glue.c, + * src/pic16/glue.c: replaced RESULT_CHECK with RESULT_TYPE_NONE + +2004-09-15 Vangelis Rokas + + * src/SDCCicode.c (piCode): applied patch from Raphael Neider, + * src/pic16/device.c (pic16_assignConfigWordValues): wrong + configuration values no more rejected by compiler, they are assigned + to configuration registers with a warning message instead, + * src/pic16/glue.c (pic16_emitConfigRegs): added +1 at top-limit of + the for-loop so last conf register is emitted too, + * (_pic16_initPaths): link library libsdcc.lib by default, + * (_hasNativeMulFor): modified test for multiplication according to + Raphael Neider's remarks. Integer multiplication is also done with + support functions, + * device/include/pic16/pic18fregs.h: corrected type error in while + testing and including 18f6720 header file + +2004-09-14 Vangelis Rokas + + * src/pic16/device.h (pic16_options): removed field use_crt, + * src/pic16/gen.c (genUnpackBits): added call to pic16_loadFSR0 + until an optimization to handle single bits is added, + * (pic16_loadFSR0): moved before genUnpackBits, + * (genAnd): some white lines removed, + * src/pic16/main.c (_pic16_finaliseOptions): set omit_ivt and clear + leave_reset flags in pic16_options when using crt modules, + +2004-09-12 Maarten Brock + + * src/mcs51/ralloc.c (packRegisters): applied fix by Bernhard Held + for bugs 898889 & 979599. Also used some safer print instructions. + +2004-09-12 Vangelis Rokas + + * src/pic16/device.h (pic16_options_t): added field use_crt, + crt_name, no_crt, + * src/pic16/genarith.c (pic16_genPlus): added an assert(0) line to + catch a probable future bug, + * src/pic16/gen.c: aopIdx function commented out, + * (genAssign): commented out old code which used aopIdx, + * src/pic16/glue.c (pic16glue): removed some legacy fragments of + code, added if conditionals to take into account the --use-crt + command line options, + * src/pic16/main.c (pic16_optionsTable): added new command line + options, --use-crt= and --no-crt, + * (_pic16_linkEdit): now the proper crt object is added in the + linker command line except than when --no-crt is specified, + * src/pic16/pcode.c, + * src/pic16/pcode.h: added some structures and functions for a new + optimization scheme to compansate for instruction overhead between + same iCodes, this scheme is currently under development and is not + working in any way, + * src/pic16/gen.c (genAnd): added patch provided by Aaron Collwell + to && operator, + * device/lib/pic16/startup/crt0i.c, + * device/lib/pic16/startup/crt0iz.c: added global char variable + __uflags to force the generation of an idata section + +2004-09-12 Bernhard Held + + * doc/Makefile, + * doc/clean.mk: added support for easy creation of sdcc-doc.tar.bz2 + * doc/sdccman.lyx: updated sdcc version to 2.4.4 + +2004-09-10 Erik Petrich + + * doc/sdccman.lyx: fixed a problem with my new index entries (thanks + Frieder) and clarified the default code optimization mode + +2004-09-10 Erik Petrich + + * src/SDCC.lex (doPragma, process_pragma), + * src/SDCCglobl.h (struct optimize): added pragmas "opt_code_speed", + "opt_code_size", and "opt_code_balanced" + * src/SDCCmain.c (optionsTable[], printOptions, scanOptionsTable): + regrouped options by category, added support for category headers + * src/SDCCmain.c (parseCmdLine): added options "--opt-code-speed" + and "--opt-code-size" + * doc/sdccman.lyx: documented these new options and pragmas + * src/hc08/gen.c (AccLsh, AccRsh): take speed/size optimization + preference into account + +2004-09-08 Maarten Brock + + * src/SDCCicode.c (geniCodePostInc, geniCodePreInc, geniCodePostDec, + geniCodePreDec): Fixed bug 904237 by generating a warning + * src/SDCCerr.h, + * src/SDCCerr.c: added warning W_SIZEOF_VOID + +2004-09-09 Slade Rich + + * src/pic/device.c : When no max ram set validate full memory range. + * src/pic/pcode.c, + * src/pic/pcodepeep.c : Copy C code comments to optimised replacement code. + +2004-09-08 Maarten Brock + + * device/lib/_gptrget.c, + * device/lib/_gptrput.c: updated comment + * device/lib/calloc.c, + * device/lib/free.c, + * device/lib/malloc.c, + * device/lib/realloc.c: added LGPL, made them reentrant-safe + * src/SDCCcse.c (cseBBlock), + * src/SDCCicode.c (printOperand, geniCodeArray), + * src/SDCCicode.h (struct operand): fixed bug 868103 + * support/regression/tests/bug-868103.c: added + * src/SDCCast.c (searchLitOp), + * src/SDCCcse.h (struct cseDef), + * src/SDCCglue.c (printIvalArray, spacesToUnderscores), + * src/SDCCicode.h (struct operand), + * src/SDCCsymt.h (struct sym_link), + * src/avr/gen.c (hasInc), + * src/ds390/gen.c (hasInc), + * src/hc08/gen.c (genPlusIncr, hasInc), + * src/mcs51/gen.c (hasInc), + * src/pic16/glue.c (pic16_printIvalChar), + * src/pic16/ralloc.c (regWithIdx), + * src/xa51/gen.c (hasInc) : removed warnings + * src/SDCCast.c (createBlock): added comment ??? + * src/hc08/ralloc.c: updated comments + +2004-09-07 Frieder Ferlemann + + * doc/sdccman.lyx: updated section on switch statements, added + section about semaphore locking + * doc/Makefile: added option -info for latex2html + * device/lib/_gptrget.c, + * device/lib/_gptrput.c: __XPAGE instead of P2 in outcommented code + +2004-09-06 Slade Rich + + * src/pic/device.h, + * src/pic/device.c, + * src/pic/port.c : Changed PIC14 code to not set bit RP1 when + maxram is less than 0x100. + +2004-09-06 Slade Rich + + * Bug fixes for PIC14 - signed RSHIFT problem. Patch supplied by Allen(agschrum). + +2004-09-06 Erik Petrich + + * src/port.h, + * src/mcs51/main.c, + * src/ds390/main.c, + * src/z80/main.c, + * src/hc08/main.c, + * src/pic/main.c, + * src/pic16/main.c, + * src/avr/main.c, + * src/xa51/main.c + * src/SDCCicode.c (geniCodeJumpTable): Better logic to determine if a + a jump table is the best form for a switch statement, including + automatic insertion of missing cases to make the case range + continuous. Developed in collaboration with Frieder Ferlemann. + +2004-09-02 Erik Petrich + + * src/hc08/ralloc.c (canDefAccResult): multi-byte shift is unsafe for + accumulator result if it needs sign extension + +2004-09-02 Maarten Brock + + * src/hc08/ralloc.c (canUseAccOperand): fixed comparison bug + +2004-09-02 Maarten Brock + + * device/lib/gbz80/printf.c, + * device/lib/z80/printf.c: removed define for NULL + +2004-09-02 Maarten Brock + + * as/xa51/xa_link.c, + * device/examples/ds390/ow390/ad26.c, + * device/examples/ds390/ow390/cnt1d.c, + * device/examples/ds390/ow390/counter.c, + * device/examples/ds390/ow390/ds2480.h, + * device/examples/ds390/ow390/ds2480ut.c, + * device/examples/ds390/ow390/findtype.c, + * device/examples/ds390/ow390/gethumd.c, + * device/examples/ds390/ow390/owllu.c, + * device/examples/ds390/ow390/ownetu.c, + * device/examples/ds390/ow390/swt12.c, + * device/examples/ds390/ow390/swtloop.c, + * device/examples/ds390/ow390/temp.c, + * device/examples/ds390/ow390/temp10.c, + * device/examples/ds390/ow390/thermo21.c, + * device/examples/ds390/ow390/tinilnk.c, + * device/examples/ds390/ow390/tstfind.c, + * device/examples/serialcomm/windows/serial.cpp, + * device/examples/serialcomm/windows/test_serialcomm.cpp, + * device/include/reg51.h: fixed line endings for cvs + +2004-09-02 Erik Petrich + + * src/hc08/ralloc.c (canDefAccResult, canUseAccOperand, + packRegsForAccUse, packRegisters): new accumulator register + packing algorithm + * support/regression/ports/hc08/support.c (_putchar): suppress + warning of unused variable + * src/SDCCicode.c: added SWAP entry to codeTable + +2004-09-01 Maarten Brock + + * device/lib/sprintf.c: forgot to add this file before previous commit + +2004-09-01 Vangelis Rokas + + * src/pic16/gen.c (genPackBits): added operand right in function + parameters, load result directly if p_type is POINTER (that is + called by genNearPointerSet) + * (genUnPackBits): added operand left in function parameters, + * (genNearPointerGet, genNearPointerSet): prevent the loading of + FSR0 if accessing bitfields, + +2004-08-31 Maarten Brock + + * device/include/stdio.h: added NULL, size_t, typedef pfn_outputchar, + _print_format; updated printf, sprintf, vsprintf + * device/include/asm/default/features.h: corrected comment/define + * device/lib/Makefile.in: added sprintf.c + * device/lib/libsdcc.lib: added sprintf module + * device/lib/printf_large.c, + * device/lib/vprintf.c, + * device/lib/sprintf.c: totally refactored printf_large and vprintf + into these 3 files + * support/regression/Makefile: changed ALL_PORTS into a usefull default + * support/regression/ports/mcs51-stack-auto/spec.mk: added sprintf + * support/regression/tests/bug-927659.c: removed dummy putchar, enabled + hc08 test + * support/regression/tests/zeropad.c: define idata as data for hc08 + +2004-08-31 Erik Petrich * src/SDCCpeeph.c (labelIsReturnOnly): support hc08 rts opcode also * src/SDCCpeeph.c (buildLabelRefCountHash): assume function entry point