+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
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 compansete for instruction overhead between
+ 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
* 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,