* device/lib/_gptrget.c (_gptrget),
[fw/sdcc] / ChangeLog
index f2e7c930b9b9ec49b1d0270aedb0da3b527004b2..abde4fab18fd22ac6b72e1d328389427a48e5669 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,372 @@
+2004-11-19 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
+
+       * 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 anonymous in RFE #1067986, thanks
+
+2004-11-18 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * .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 <epetrich AT ivorytower.norman.ok.us>
+
+       * 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 <sourceforge.brock AT dse.nl>
+
+       * 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 <epetrich AT ivorytower.norman.ok.us>
+
+       * src/z80/gen.c (genFunction, genEndFunction): avoided generating
+         *_start and *_end symbols for static functions
+
+2004-11-11 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * 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 <slade_rich AT users.sourceforge.net>
+
+       * 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 <sourceforge.brock AT dse.nl>
+
+       * 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 <sourceforge.brock AT dse.nl>
+
+       * 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 <vrokas AT otenet.gr>
+
+       * 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 <vrokas AT otenet.gr>
+
+       * 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 <slade_rich AT users.sourceforge.net>
+
+       * 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 <Frieder.Ferlemann AT web.de>
+
+       * 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 <epetrich AT ivorytower.norman.ok.us>
+
+       * src/SDCCast.c (reverseParms): fixed bug #1040577 (part 2)
+
+2004-10-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
+
+       * 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 <epetrich AT ivorytower.norman.ok.us>
+
+       * src/SDCCast.h (struct ast),
+       * src/SDCCast.c (reverseParms, copyAst): fixed bug #1040577 (part 1)
+
+2004-10-20 Borut Razem <borut.razem AT siol.net>
+
+       * support/scripts/sdcc.nsi: added include/pic16/*.h to the setup
+       package
+
+2004-10-20 Vangelis Rokas <vrokas AT otenet.gr>
+
+       * 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 <epetrich AT ivorytower.norman.ok.us>
+
+       * src/mcs51/ralloc.c (packRegisters): fixed bug #1044601
+
+2004-10-19 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * 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 <borut.razem AT siol.net>
+
+       * support/scripts/sdcc.nsi: cross compiling of WIN32 setup.exe on Linux
+       as a part of nightly build
+
+2004-10-16 Vangelis Rokas <vrokas AT otenet.gr>
+
+       * 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 <slade_rich AT users.sourceforge.net>
+
+       * 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 <vrokas AT otenet.gr>
 
        * device/lib/pic16/libsdcc/gptr/gptrput[234].c: an external