Updated pic16 library sources and headers.
[fw/sdcc] / ChangeLog
index 055c17629859179d967652025df36b20098de1bf..958e2c1f445ebc8939d1a626d627547f27e2b3d3 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,544 @@
+2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
+
+       Updated pic16 library sources and headers.
+       * device/lib/pic16/pic18f*/ ,
+       * device/include/pic16/*.h: modified to handle structured SFR
+       definitions
+
+2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
+
+       * src/port.h (PORT structure): added hook initPaths, now each
+       port can declare its own default search paths,
+       which can been seen with the --print-search-dirs option,
+       see pic16 port for example,
+       * src/SDCCmain.c (setBinPaths, setIncludePaths, setLibPath,
+       setDataPaths): test to options.printSearchDirs is ifdef'ed out,
+       * (doPrintSearchDirs): NEW, replaces in a central manner the
+       printing of search dirs which was split in set*Paths functions,
+       * (main): added call to port->initPaths and doPrintSearchDirs,
+       * src/avr/main.c,
+       * src/ds390/main.c,
+       * src/hc08/main.c,
+       * src/izt/i186.c,
+       * src/izt/tlcs900h.c,
+       * src/mcs51/main.c,
+       * src/pic/main.c,
+       * src/pic16/main.c: modified port structures to reflect addition of
+       initPaths hook,
+               
+       * src/pic16/device.c (regCompare): registers are finally sorted by name,
+       * (pic16_dump_section): for registers in same address reserve memory once,
+       * src/pic16/device.h (struct PIC16_device): changed variable gen_banksel
+       to no_banksel,
+       * src/pic16/genarith.c (pic16_genPlus): added code to handle cases where
+       result is greater in size than right or left,
+       * (pic16_genUMult8X8_8): there are some cases where the result can
+       be 16 bits size, so handle these,
+       * src/pic16/gen.c: changed some pic16_emitpcomment to DEBUGpic16_emitcode,
+       * (pic16_outBitC): modified to emit pcodes,
+       * (pic16_storeForReturn): using is_LitOp to see if operand is literal
+       or not,
+       * (genDivOneByte): implemented algorithm to divide 8-bits,
+       * (genCmp): uncommented goto, but issues still exist,
+       * (genAnd): fixed a bug with variables >8bits,
+       * (genPackBits): optimization added that uses BCF/BSF to change a
+       single bit,
+       * (genAssign): fixed bug when assigning floating point literals,
+       * src/pic16/glue.c (pic16glue): added assembler directive 'code' before
+       __sdcc_gsinit_startup label,
+       * src/pic16/main.c (_pic16_init): removed search directory
+       initialisations,
+       * (_pic16_initPaths): NEW, used to initialise search directories,
+       * (_hasNativeMulFor): support functions for all except char/int
+       multiplication, and char division,
+       * (PIC16_port struct): modified entry for native mul support,
+       * src/pic16/pcode.c (insertBankSwitch): modified to support the renamed
+       no_banksel option,
+       * (buildCallTree): call to register_usage is ifdef'ed out,
+
+2004-05-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+       * device/include/string.h: applied Stas Sergeev's patch to make this
+       header file compatible with the preprocessor -Wundef option
+       * src/SDCCmain.c (main): abort compilation if preprocessor reports
+       failure (fixes bug #941458)
+
+2004-05-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+       * src/SDCCopt.c (killDeadCode): fixed bug #907733
+       * support/Util/SDCCerr.c: reworded E_AUTO_ASSUMED diagnostic to clarify
+       that the variable, not the function, should be static
+       * src/SDCCval.c (valCastLiteral): fixed bit initialization from literal
+       to be consistent with non-literal case
+
+2004-05-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+       * src/SDCCast.c (isConformingBody): fixed bug #949967
+       * src/SDCCopt.c (cnvToFcall, cnvToFloatCast, cnvFromFloatCast,
+       convilong): fixed bug #952086
+
+2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+       * src/SDCCmem.c (allocVariables): fixed bug #955321
+
+2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+       * src/hc08/main.c (_hc08_genAssemblerEnd),
+       * src/SDCCdwarf2.c (dwOpenFile, dwCloseFile, dwWriteFunction,
+       dwWriteModule, dwWriteCLine, dwWriteALine, dwarf2FinalizeFile):
+       completely eliminated the use of a temporary file
+       * src/SDCCdwarf2.c (dwWriteAttr): fixed bug with location list offset
+       when more than one file linked
+       * src/SDCCloop.c (pointerAssigned): fixed bug #954163
+
+2004-05-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+       * src/SDCCval.c (valForArray): applied Maarten Brock's patch #947682
+       which fixes bug #543481
+       * support/regression/tests/bug-751703.c: fixed comments left from a
+       cut and paste error
+       * src/SDCCdwarf2.c (dwCloseFile): don't explicitly close a temp file
+       * src/SDCCdwarf2.c (dwTagFromType): added bitfield support
+       * src/SDCCdwarf2.c (dwWriteSymbolInternal): handle extern within local
+       scopes
+       * src/SDCCdwarf2.c (dwWriteLineNumber): line number deltas are signed
+       * src/SDCCmain.c (processFile, parseCmdLine): non-alphanumeric chars
+       are now changed to underscores in moduleName
+
+2004-05-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
+
+       * as/mcs51/lkmem.c: better fix for bug #954173
+
+2004-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
+       committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
+
+       * device/include/c8051f020.h: newly added SiLabs (Cygnal) header file
+       * device/include/c8051f000.h,
+       * device/include/c8051f120.h,
+       * device/include/c8051f300.h,
+       * device/include/c8051f310.h,
+       * device/include/c8051f320.h: updated (added _XPAGE, CAPN, CAPP,
+       PWM16) and detab'ed
+
+2004-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
+
+       * doc/sdccman.lyx: mentioned sourceforge's delay between web frontend
+       and mailing lists, doc'ed --no-peep-comments, removed reference
+       to knoppix (newest version has no LyX/LaTeX), other minor changes
+       * src/SDCCglue.c (glue): save 2 bytes stack space with 
+       option --main-return. The ljmp could probably be avoided too
+
+2004-05-14 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
+
+       * as/mcs51/lkmem.c, as/mcs51/lkaomf51: fixed bug 954173
+
+2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+       * src/SDCCsymt.h: added IS_AUTO(symbol) test macro
+       * src/SDCCopt.c (isLocalWithoutDef),
+       * src/SDCCicode.c (operandFromSymbol): use the IS_AUTO test macro
+       which adds a !IS_EXTERN codition. Fixes bugs #877426 and #751703.
+       (credit to Maarten Brock for patch #949363, on which this is based)
+       * support/regression/tests/bug-751703.c: some test cases of extern used
+       within inner scopes.
+
+2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+       * src/SDCCdwarf2.c (dwMatchTypes): structs must have matching
+       SPEC_STRUCT
+       * src/SDCCdwarf2.c (dwTagFromType): fix to handle recursive
+       struct definitions
+       * src/SDCCdwarf2.c (dwWriteModule, dwNewDebugSymbol, dwWriteEndFunction,
+       dwWriteLabel): fix to create valid debugger symbols even when
+       the module name has non-alphanumeric symbols in it
+       * src/SDCCdwarf2.c (dwWriteSymbolInternal): better detection for
+       when a variable's allocation has been optimized away
+       
+
+2004-05-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+       * src/hc08/gen.c (hc08_emitDebuggerSymbol),
+       * src/hc08/main.c,
+       * src/mcs51/gen.c (mcs51_emitDebuggerSymbol),
+       * src/mcs51/main.c,
+       * src/ds390/gen.c (ds390_emitDebuggerSymbol),
+       * src/ds390/main.c,
+       * src/z80/gen.c (z80_emitDebuggerSymbol),
+       * src/z80/main.c,
+       * src/pic/gen.c (pic14_emitDebuggerSymbol),
+       * src/pic/main.c,
+       * src/pic16/gen.c (pic14_emitDebuggerSymbol),
+       * src/pic16/main.c,
+       * src/avr/gen.c (avr_emitDebuggerSymbol),
+       * src/avr/main.c,
+       * src/xa51/gen.c (xa51_emitDebuggerSymbol),
+       * src/xa51/main.c,
+       * src/SDCCdebug.c (emitDebuggerSymbol),
+       * src/SDCCdebug.h,
+       * src/port.h: added a debugger struct to the port struct. Added a
+       callback for defining debugger symbols
+       
+       * src/SDCCast.c (createLabel),
+       * src/SDCC.y (labeled_statement): mark all compiler generated labels
+       with isitmp = 1
+       * src/SDCCicode.h,
+       * src/SDCCicode.c (geniCodeFunctionBody): added a link from the FUNCTION
+       iCode back to the ast for the function
+       
+       * src/hc08/ralloc.c (hc08_assignRegisters),
+       * src/hc08/ralloc.h: define a regs struct for the stack pointer. Removed
+       unneeded fields from the regs struct.
+       * src/hc08/gen.c (transferRegReg, genFunction, genEndFunction): use the
+       pushReg() & pullReg() functions instead of emitcode()
+       
+       * src/hc08/gen.c (genLabel, genhc08Code),
+       * src/SDCCdebug.h: Added additional debugger hooks needed for DWARF
+       
+       * src/cdbFile.c (cdbWriteLabel, cdbWriteScope): Added stubs for unneeded
+       debugger hooks
+       
+       * src/hc08/gen.c (genEndFunction, genhc08Code),
+       * src/hc08/gen.h,
+       * src/mcs51/gen.c (genEndFunction, gen51Code),
+       * src/mcs51/gen.h,
+       * src/ds390/gen.c (genEndFunction, gen390Code),
+       * src/ds390/gen.h,
+       * src/z80/gen.c (genEndFunction, genZ80Code),
+       * src/z80/gen.h,
+       * src/z80/z80.h,
+       * src/pic/gen.c (genEndFunction, genpic14Code),
+       * src/pic/gen.h,
+       * src/pic16/gen.c (genEndFunction, genpic16Code),
+       * src/pic16/gen.h,
+       * src/avr/gen.c (genEndFunction, genAVRCode),
+       * src/avr/gen.h,
+       * src/xa51/gen.c (genEndFunction, genXA51Code),
+       * src/xa51/gen.h,
+       * src/cdbFile.c (cdbWriteFunction, cdbWriteEndFunction): moved cdb
+       specific code to cdbFile.c and out of the backend code generators
+       
+       * as/hc08/lkmain.c (main): removed OMF51 support from link-hc08
+       * as/hc08/lkarea.c (lnkarea): areas with NOLOAD attribute default
+       starting address is now 0
+
+       * as/hc08/asm.h,
+       * as/hc08/m08pst.c,
+       * as/hc08/asmain.c (asmbl): implemented the .sleb128 and .uleb128
+       assembler directive for DWARF support
+       * as/hc08/lkelf.c (elf): only increment address when rtflg[] set
+       
+       * src/src.dsp,
+       * src/Makefile.in,
+       * src/SDCCdwarf2.c: preliminary DWARF (ver 2) debugger data generator
+       
+2004-05-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+       * src/hc08/gen.c (genJumpTab, emitcode, genhc08code): fixed stack error
+       and inappropriate peephole optimization in jump tables
+
+2004-04-30 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
+
+       * as/hc08/m08pst.c,
+       * src/SDCCglue.c: sdccopt works for the hc08 port now
+
+2004-04-27 Bernhard Held <bernhard AT bernhardheld.de>
+
+       * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): fixed bug #942130
+
+2004-04-27 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
+
+       * as/hc08/lkelf.c: sdccconf.h is not available in WIN32
+
+2004-04-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+       * src/SDCCpeeph.c (replaceRule): support empty replacement peephole
+       rules
+       * src/SDCCmain.c,
+       * src/SDCCglobl.h,
+       * src/SDCCpeeph.c (getPeepLine): new option --no-peep-comments omits
+       comments from the peephole optimizer replacement rules
+       * src/SDCCmem.c (printAllocInfoSeg): give actual location of spilled
+       symbols
+       * src/SDCCcse.c (updateSpillLocation),
+       * src/SDCCopt.c (killDeadCode, findReqv): better tracking of register
+       equivalents
+       * src/hc08/ralloc.c (regTypeNum): pseudo symbols must be in DATA only
+       * src/hc08/main.c (_hc08_finaliseOptions): made pointers to stack
+       objects far pointers
+
+2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+       * src/SDCCsymt.h: a missing part of my last change
+       * src/pic/ralloc.c (regTypeNum),
+       * src/pic16/ralloc.c (regTypeNum): fixed statement/declaration order
+
+2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+       * src/SDCCicode.h,
+       * src/SDCCicode.c (aggrToPtrDclType),
+       * src/SDCCptropt.h,
+       * src/SDCCptropt.c (ptrBaseRematSym, ptrPseudoSymSafe,
+       ptrPseudoSymConvert),
+       * src/pic/ralloc.c (regTypeNum),
+       * src/pic16/ralloc.c (regTypeNum),
+       * src/hc08/ralloc.c (regTypeNum),
+       * src/ds390/ralloc.c (regTypeNum),
+       * src/mcs51/ralloc.c (regTypeNum): check for dependancy hazards before
+       creating pseudo symbols (fixed bugs #777768, #930484, and #933966)
+
+2004-04-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+       * link/z80/lkmain.c (afile),
+       * as/hc08/lkmain.c (afile),
+       * as/mcs51/lkmain.c (afile): fix suggested by Maarten Brock to
+       prevent a pointer problem when a filename has no directory and
+       no extension specified.
+
+2004-04-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+       * link/z80/lkmain.c (afile): allow periods in directory names
+       * link/z80/lkmain.c (afile),
+       * as/mcs51/lkmain.c (afile),
+       * as/hc08/lkmain.c (afile): allow linker script file to have an
+       extension other than ".lnk"
+       * link/z80/lklex.c (getfid),
+       * link/z80/lkmain.c (parse),
+       * as/mcs51/lklex.c (getfid),
+       * as/mcs51/lkmain.c (parse),
+       * as/hc08/lklex.c (getfid),
+       * as/hc08/lkmain.c (parse): Support comments in the linker script
+       file on lines by themselves and after filenames
+
+2004-04-20 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
+
+       * as/link_hc08.dsp: Added as/hc08/lkelf.c to project.
+
+2004-04-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+       * src/z80/peeph-z80.def: removed some peephole rules that don't
+       work with multibyte arithmetic (fixed bug #937126)
+       * src/mcs51/peeph.def: fixed peephole rules 150-158 to apply only
+       to registers and not global variables
+       * src/SDCCicode.c (geniCodeAssign, ast2iCode, geniCodePostInc,
+       geniCodePreInc, geniCodePostDec, geniCodePreDec,
+       geniCodeLogicAndOr, geniCodeConditional): enforce strict lvalue
+       checking for assignments not internally generated (fixed bug #931895)
+       * src/SDCC.y (postfix_expr): ignore typedefs when looking for a
+       structure member (fixed bug #930072)
+
+2004-04-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+       * src/SDCCmain.c (linkEdit),
+       * src/hc08/main.c (_hc08_parseOptions),
+       * as/hc08/Makefile.in,
+       * as/hc08/aslink.h,
+       * as/hc08/asm.h,
+       * as/hc08/m08pst.c,
+       * as/hc08/lkrloc.c (relr, rele),
+       * as/hc08/lkarea.c (lnkarea)
+       * as/hc08/lkmain.c (afile, parse),
+       * as/hc08/lkelf.c: support for ELF output
+       * as/hc08/lks19.c (s19),
+       * as/hc08/lkihx.c (ihx): ignore areas with the NOLOAD attribute
+
+2004-04-17 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
+
+       * as/mcs51/lkihx.c: Fixed bug #899105.
+
+2004-04-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
+
+       * doc/sdccman.lyx: Added instructons on how to convert MSVC .dsw and
+       .dsp files from Unix to DOS.
+
+2004-04-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+       * doc/sdccman.lyx: removed the ANSI-C noncompliance note regarding
+       function pointers; we have been compliant for several months now.
+       * src/mcs51/ralloc.c (serialRegAssign): enabled part of my 2004-04-13
+       change that was accidently commented out
+       * src/mcs51/gen.c (freeAsmop, getFreePtr, freeForBranchAsmop, genIfxJump,
+       genCmpEq, jmpTrueOrFalse, genCmp, genAnd, genOr, genXor, genIfx): fixed
+       bug #922319
+
+2004-04-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+       * src/hc08/gen.c: output of all of the internal debugging information
+       is now controlled by the D() macro; it is disabled by default
+
+2004-04-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+       * src/mcs51/ralloc.c (serialRegAssign, fillGaps, allocThisReg): try
+       harder to keep the same registers during a CAST iCode
+       * src/SDCCopt.c (optimizeCastCast, eBBlockFromiCode): casts of char to
+       long via int can be done in a single cast, if the signedness is
+       correct.
+       * support/regression/tests/bug-927659.c: fixed to avoid conflict with
+       putchar() in tinibios.c in ds390's library
+       
+2004-04-12 Bernhard Held <bernhard AT bernhardheld.de>
+
+       * src/SDCCast.c (decorateType): fixed bug #898889,
+       cast result of a literal complement too
+       * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #930931,
+       fixed check for bitfields
+
+2004-04-11 Bernhard Held <bernhard AT bernhardheld.de>
+
+       * src/SDCCicode.c (geniCodeLogic): made it static,
+       (geniCodeLogicAndOr): added in order to fix bug #905492,
+       (ast2iCode): fixed bug #905492
+       * support/regression/tests/bug-905492.c: added
+       * src/SDCCast.c (decorateType): don't decorate/process parms twice,
+       (processParms): fixed bug #927659: don't copy parms, this will clear
+       decorated flag
+       * support/regression/tests/bug-927659.c: added
+
+2004-03-29 Bernhard Held <bernhard AT bernhardheld.de>
+
+       * src/SDCCast.c (addCast): don't cast float to char
+       * device/lib/libsdcc.lib: added _memmove
+
+2004-03-28 Bernhard Held <bernhard AT bernhardheld.de>
+
+       * device/lib/large/Makefile: fixed parallel execution by
+       replacing `make` by `$(MAKE)`
+
+2004-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+       * src/hc08/gen.c (genPointerGetSetOfs): correctly handle 1 byte array
+       offsets (fixes bug #923936)
+
+2004-03-26 Bernhard Held <bernhard AT bernhardheld.de>
+
+       * device/lib/small/Makefile: fixed parallel execution by
+       replacing `make` by `$(MAKE)`
+
+2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
+
+       * device/lib/vprintf.c (vsprintf): minor optimization, see bug #801101
+
+2004-03-23  Scott Dattalo  <scott AT dattalo.com>
+
+       * src/pic/gen.c (genCpl): multi-byte complements were not working.
+       * src/regression/Makefile: Regression test was not running.
+
+2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
+
+       * src/SDCCast.c (resultTypePropagate, decorateType): avoid promotion to int for
+       complement if possible
+       * src/SDCCval.c (valComplement),
+       * src/SDCCicode.c (operandOperation): fixed complement of literal
+       * support/regression/tests/onebyte.c (testComplement): added
+
+2004-03-22 Bernhard Held <bernhard AT bernhardheld.de>
+
+       * src/SDCCast.c (processParms): fixed bug #920866; decorateType() can
+       return an optimized tree; actually replace actParm with the new tree
+       * src/SDCCast.h: added some parantheses to remove side effects
+       * support/regression/tests/bug-920866.c
+
+2004-03-21  Scott Dattalo  <scott AT dattalo.com>
+       * src/pic/gen.c, src/pic/gen.h, src/pic/genarith.c, src/pic/pcode.c:
+       Bit operands were not being handled properly in the pic14 port.
+       (now src/regression/add.c passes again).
+
+2004-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+       * src/SDCC.y (labeled_statement): case and default no longer require
+       a following statement (RFE #893037)
+
+2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+       * src/mcs51/gen.c (pushSide, genSignedRightShift, genDjnz, geniPush):
+       use MOVA macro to avoid "mov a,acc" when peephole optimizer is
+       disabled (fixes bug #916294)
+       * sim/ucsim/s51.src/mov.cc (inst_mov_a_addr): Throw an error on
+       "mov a,acc"; patch provided by Lenny Story
+       * device/include/mc68hc908gp32.h: header contibuted by Juan Gonzalez
+
+2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+       * src/mcs51/gen.c (genFunction): optimize RECEIVE in reentrant
+       functions
+       * src/ds390/gen.c (genFunction, genEndFunction),
+       * src/ds390/ralloc.c (ds390_assignRegisters),
+       * src/mcs51/gen.c (genFunction, genEndFunction, mcs51_assignRegisters):
+       * src/mcs51/ralloc.c (mcs51_assignRegisters): Skip optimizing registers
+       pushed if there are parameters passed on the stack. Also, a cleaner
+       way to decide if r0/r1 should be pushed/popped. (Together they fix
+       bug #918693)
+
+2004-03-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+       * doc/sdccman.lyx,
+       * device/lib/mcs51/crtpagesfr.asm,
+       * device/lib/mcs51/crtxinit.asm,
+       * device/lib/mcs51/crtxstack.asm: Changed name of _PAGESFR to _XPAGE
+       to avoid confusion with Si Lab's SFRPAGE register.
+
+2004-03-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+       * src/SDCCglue.c (emitMaps): allow public sfr variables
+       * src/SDCCglue.c (initialComments): include compiler build date
+       with compiler version and put the timestamp of the generated
+       assembly file on a serperate line to be less confusing.
+       * src/port.h: added genInitStartup hook
+       * src/avr/main.c,
+       * src/ds390/main.c,
+       * src/hc08/main.c,
+       * src/pic/main.c,
+       * src/pic16/main.c,
+       * src/xa51/main.c,
+       * src/z80/main.c: genInitStartup initialize as NULL (default to
+       historical behaviour)
+       * src/SDCCglue.c (glue): _sdcc_gsinit_startup is now port specific.
+       * src/mcs51/main.c: (_mcs51_genInitStartup, _mcs51_genExtraAreas,
+       _mcs51_genXINIT, _mcs51_genRAMCLEAR): link initialization code from the
+       library instead of hard coding it into the compiler.
+       * support/regression/ports/mcs51-stack-auto/spec.mk,
+       * src/SDCCmain.c (linkEdit): added mcs51.lib to the link libraries
+       * device/lib/mcs51/Makefile,
+       * device/lib/small/Makefile,
+       * device/lib/large/Makefile,
+       * device/lib/mcs51/crtpagesfr.asm,
+       * device/lib/mcs51/crtstart.asm,
+       * device/lib/mcs51/crtxclear.asm,
+       * device/lib/mcs51/crtxinit.asm,
+       * device/lib/mcs51/crtclear.asm,
+       * device/lib/mcs51/crtxstack.asm: move most of the mcs51 C runtime
+       startup/initialization out of src/SDCCglue.c and src/mcs51/main.c
+       and into user configurable files.
+       * device/lib/clean.mk: clean mcs51 directory too
+       * support/regression/tests/longlit.c: added static to T1 declaration
+       * doc/sdccman.lyx: documented _PAGESFR sfr for customizing pdata
+       accesses in the initialization code
+
+2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+       * device/include/mc68hc908qy.h: corrected declarations of FLBPR and
+       OSCTRIMVAL as noted in bug #916008
+
+2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+       * src/SDCCloop.c (basicInduction): fixed bug with loop induction
+       in loops with multiple exits (reported as incorrect registers
+       used by Martin Helmling in Sdcc-user list)
+
+2004-03-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
+
+       * src/ds390/main.c (_ds390_genAssemblerPreamble): cosmetic change,
+       made ds390 register extensions look less like error messages
+
+2004-03-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+       * src/SDCCglue.c (printIvalPtr): fixed bug with pointer initializer
+       reported by Adam Wozniak in Sdcc-user list
+
+2004-03-10 Bernhard Held <bernhard AT bernhardheld.de>
+
+       * src/SDCCast.c (decorateType): fixed with bug and promotion in
+       arithmetic optimizations, added debug output
+
 2004-03-09 Bernhard Held <bernhard AT bernhardheld.de>
 
        * device/lib/time.c (mktime): fixed bug reported by Bert Thomas
@@ -6,6 +547,8 @@
        needed for literals of LEFT_OP and '+'
        * src/SDCCicode.c (geniCodeLogic): I must have been braindead when I
        introduced RESULT_TYPE_NOPROM
+       (geniCodeMultiply): fixed logic for decision if mul is optimized to 
+       left shift
        * src/SDCCsymt.c (computeType): op is int; added RESULT_TYPE_OTHER;
        limited promotion to int only for '*'
        * src/SDCCsymt.h (computeType): op is int, removed RESULT_TYPE_NOPROM