* as/mcs51/lkarea.c: removed old K&R style,
[fw/sdcc] / ChangeLog
index c8c59d5bc173dc82107c9e53b8c5f3e0188c027d..4e524e219b7505f8dd3d915f9aa8613ca8c7e9c6 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,420 @@
+2004-10-17 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
+       reference to a deprecated symbol _GPTRREG was causing failure to
+       link. Thanks G. M. Gallant for the info.
+
+2004-10-12 Slade Rich <slade_rich AT users.sourceforge.net>
+
+       * src/pic/pcode.c : Applied a code patch supplied by Paul Ashmore in
+       comments for Bugs item #954788.
+
+2004-10-10 Vangelis Rokas <vrokas AT otenet.gr>
+
+       * 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 <vrokas AT otenet.gr>
+
+       * 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 <sourceforge.brock AT dse.nl>
+
+       * 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 <vrokas AT otenet.gr>
+
+       * device/lib/pic16/libsdcc/gptr/gptr*.c: added return statements
+       * device/include/pic16/stdio.h: fixed bug with colon
+
+2004-10-03 Vangelis Rokas <vrokas AT otenet.gr>
+
+       * 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 <vrokas AT otenet.gr>
+
+       * .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 <mh AT octo-soft.de>
+
+       * 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 <vrokas AT otenet.gr>
+
+       * 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 <epetrich AT ivorytower.norman.ok.us>
+
+       * 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 <epetrich AT ivorytower.norman.ok.us>
+
+       * src/SDCC.lex: fixed bug #1030549
+
+2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+       * 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 <epetrich AT ivorytower.norman.ok.us>
+
+       * 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 <vrokas AT otenet.gr>
+
+       * 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 <epetrich AT ivorytower.norman.ok.us>
+
+       * 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 <bernhard AT bernhardheld.de>
+
+       * 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 <vrokas AT otenet.gr>
+
+       * 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 <vrokas AT otenet.gr>
+
+       * 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 <sourceforge.brock AT dse.nl>
+
+       * 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 <vrokas AT otenet.gr>
+
+       * 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 <bernhard AT bernhardheld.de>
+
+       * 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 <epetrich AT ivorytower.norman.ok.us>
+
+       * 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 <epetrich AT ivorytower.norman.ok.us>
+
+       * 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 <sourceforge.brock AT dse.nl>
 
        * src/SDCCicode.c (geniCodePostInc, geniCodePreInc, geniCodePostDec,