* src/hc08/gen.c (genPlusIncr, genUminus, genMinusDec, genCmp,
[fw/sdcc] / ChangeLog
index 52acb65e55d5b1a926d17bdfc6ed9501de5bb319..24d5cd4575a06a1e589fb52289963a3e03111c00 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,854 @@
+2004-01-20 Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+       * src/hc08/gen.c (genPlusIncr, genUminus, genMinusDec, genCmp,
+       shiftL2Left2Result): fixed bug #879326
+       (genAnd, genOr, genXor): fixed bug when result was of type AOP_CRY
+       (genMultOneByte): fixed bug in signed vs unsigned multiplication
+       * sim/ucsim/hc08.src/inst.cc (inst_clr): added missing effective
+       address fetch for clr instruction
+       * device/lib/hc08/_mulint.c: created optimized assembly version
+       * src/SDCCdflow.c (computeDataFlow): fixed bug #878209
+
+2004-01-19 Bernhard Held <bernhard@bernhardheld.de>
+
+       * src/SDCCicode.c (geniCodeArray): applied patch from Stas Sergeev
+       proposed in FR #877103
+
+2004-01-18 Bernhard Held <bernhard@bernhardheld.de>
+
+       * src/SDCCval.c (cheapestVal): added missing checks
+       * src/SDCCicode.c (usualBinaryConversions): fixed condition
+       * src/SDCCicode.c (geniCodeAdd): fixed part of bug #877103
+
+2004-01-16 Klaus Flittner <klaus_flittner@gmx.de>
+
+       * src/ds390/gen.c (aopOp3): fixed the assignment of different dptrs to
+       equal operands
+
+2004-01-16 Vangelis Rokas <vrokas@otenet.gr>
+
+       * src/SDCCmain.c (linkEdit): variable $3 of the linker command is
+       loaded with the linker search paths (-L arguments) and the libraries
+       to be linked with the current source (-l arguments). Changes
+       currently will affect only the pic16 port.
+       * src/pic16/main.c (_pic16_finaliseOptions): add to the linker
+       include path the port specific paths and port specific libraries,
+       * gplink command now contains the $3 argument,
+       * src/pic16/device.h,
+       * src/pic16/device.c,: structure PIC_device is made public and
+       renamed to PIC16_device, the same for variable Pics which is renamed
+       to Pics16. Updated all references to them.
+       * src/pic16/glue.c (pic16glue): corrected bug with code
+       initialization which bypassed the variable initializations block.
+
+       * device/lib/pic16/Makefile.rules: removed --penable-stack from
+       COMPILE_FLAGS and added the --nostdinc option
+
+2004-01-15 Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+       * device/include/mc68hc908jb8.h: Register defs for another member
+       of the hc08 family. Contributed by Bjorn Bringert - thanks!
+
+2004-01-14 Vangelis Rokas <vrokas@otenet.gr>
+
+       Documenting changes from previous commits.
+       * configure.in (version 1.56),
+       * configure: initially I've added AC_CONFIG_SUBDIRS(device/lib/pic16)
+       when generating output files to configure the pic16 library,
+       but now I've commented it out, since gputils aren't installed in the
+       SF compile farm, so library won't compile
+
+       * device/lib/Makefile.in (version 1.56): initially I've added in
+       target 'all' the prerequestive 'model-pic16' so it compiled the
+       pic16 library, but now I've commented it out for the same reasons
+       above,
+       * added targets 'model-pic16' and 'objects-pic16' to compile the
+       library
+       * added target 'port-specific-objects-pic16' to handle the
+       generated libraries and copy them into the build/ directory
+       * added target 'clean-intermediate-pic16' to clean intermediate
+       files into pic16 directory
+       * in target 'installdirs' added line to create directory pic16 in
+       the installation path
+
+       * device/include/Makefile.in (version 1.11): in target 'install'
+       added lines to copy all header files to installation path,
+       * in target 'installdirs' added line create directory for pic16
+       headers in the installation path
+
+2004-01-13 Klaus Flittner <klaus_flittner@gmx.de>
+
+       * src/ds390/gen.c (genCall): fixed a double use of acc and b after
+        a function call
+
+2004-01-13 Bernhard Held <bernhard@bernhardheld.de>
+
+       * configure,
+       * device/lib/configure.in,
+       * device/lib/configure: fixed for autoconf 2.57
+
+2004-01-13 Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+       * src/z80/main.c (_parseOptions): fixed the portmode= command line
+       option so that it actually works. Made it specific to the z80, since
+       the gbz80 doesn't have these kinds of I/O ports.
+
+2004-01-13 Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+       * device/include/z180.h,
+       * device/lib/_memcpy.c,
+       * device/lib/_memmove.c,
+       * device/lib/_mulint.c,
+       * device/lib/ser_ir.c,
+       * device/lib/ser_ir_cts_rts.c,
+       * device/lib/_strcmp.c,
+       * device/lib/_strtok.c: fixed pragmas to non-deprecated form
+       * src/z80/main.c (_process_pragma): add support for pragmas bank and
+       portmode; added deprecation warning for bank= and protmode= forms.
+       Also, guard against buffer overflow.
+       * src/z80/gen.c (aopGet): generate better code for sfr banked read
+
+2004-01-13 Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+       * src/hc08/main.c (_hc08_genAssemblerPreamble): fixed bug #875487. Also
+       changed interrupt vector table generation to only emit declared vectors.
+       * device/include/Makefile.in: added missing backslash
+       * device/lib/pic16/Makefile.rules: add $(MODELFLAGS) to $(CFLAGS)
+
+2004-01-13 Vangelis Rokas <vrokas@otenet.gr>
+
+       Mainly changes to support compilation of the device libraries
+       * src/pic16/device.c: stack is allocated via symbol and not
+       via literal number. The symbol is placed in the corresponding
+       position of the data ram
+       * (pic16_dump_section): relocatable and absolute uninitialized
+       data are now emitted in sorted order to reduce section naming,
+       * src/pic16/ralloc.c (newReg): fixed bug with SFR's that
+       weren't marked as being in the access bank,
+
+2004-01-13 Vangelis Rokas <vrokas@otenet.gr>
+
+       Added portion of GNU PIC Library under the directory
+       device/include/pic16 and device/lib/pic16. These files
+       contain the declarations of SFRs for the PIC18Fxx2 devices.
+       The directory is initialized via configure from toplevel.
+       
+2004-01-12 Klaus Flittner <klaus_flittner@gmx.de>
+
+       * src/ds390/gen.c (operandsEqu): fixed a little typo, that prevented
+       the spilllocations to be compared correctly
+
+2004-01-12 Bernhard Held <bernhard@bernhardheld.de>
+
+       * src/SDCCast.c (decorateType): fixed bug introduced today
+
+2004-01-12  Borut Razem <borut.razem@siol.net>
+
+       * src/SDCC.lex, support/Util/SDCCerr.h, support/Util/SDCCerr.c,
+       doc/sdccman.lyx: upper case pragmas are deprecated
+
+2004-01-12 Bernhard Held <bernhard@bernhardheld.de>
+
+       * src/SDCCast.c (decorateType): replacing 'ul > 0' by  '!ul' results
+       in simpler and even better code
+
+2004-01-11 Bernhard Held <bernhard@bernhardheld.de>
+
+       * src/SDCCicode.c (operandOperation): fixed bug #874819
+       * src/SDCCast.c (decorateType): fixed
+       char foo (unsigned long ul) { return ul > 0; }
+
+2004-01-11 Frieder Ferlemann <Frieder.Ferlemann@web.de>
+
+       * doc/sdccman.lyx: Moved and added some sections, small changes
+       all over. Telling LaTeX to be less strict with word spacing
+       to better keep the right margin. Changed some notes about
+       maintainance of the ports in section 3.2.1 - is it OK like this?
+
+2004-01-11 Vangelis Rokas <vrokas@otenet.gr>
+
+       SDCC source changes:
+       * src/SDCCopt.c (cntToFcall, cnvToFloatCast, cnvFromFloatCast,
+       convilong): modified to inform the pic16 port that builtin functions
+       are external
+
+       PIC16 PORT specific changes:
+       * src/pic16/device.c pic16_dump_equates() added,
+       processor registers declared internally by the port are emitted in
+       the translation as equates,
+       * src/pic16/gen.c: inline code is passed unprocessed to the
+       translation,
+       * (pic16_popGetLit2): fnuction modified to take second operand as
+       pCodeOp pointer and not as literal,
+       * (popRegFromIdx): prefixed with pic16_,
+       * (pic16_popCombine2): modified to receive already allocated pCode
+       operands,
+       * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): added
+       * (genFunction): initializes local stack frame and pushes on stack
+       all the registers used by this function,
+       * (genEndFunction): restores all registers from stack and restores
+       stack frame,
+       * src/pic16/glue.c (pic16emitRegularMap): various changes and
+       improvements,
+       * (pic16glue): changed the program startup sequence,
+       * added new dbName code 'A' for functions placed in absolute section
+       * src/pic16/main.c: added function attribute _naked,
+       * added pragma 'code' to place a fnuction at an absolute address,
+       * added command line arguments --debug-ralloc and --pcode-verbose,
+       * (_pic16_finiliseOptions): options.all_callee_saves is set by default
+       * src/pic16/pcode.c (pic16_pBlockConvert2Absolute) added,
+       * (pic16_newpCodeOpLit2): modified to take the second operand as
+       pCodeOp pointer,
+       * (pic16_printpBlock): modified to emit each function in a separate
+       section,
+       * (pic16_get_op): modified to use the gpasm modifiers LOW,HIGH and
+       UPPER for immediate operands,
+       * src/pic16/pcodepeeph.c: added peephole support for the LFSR
+       instruction,
+       * src/pic16/peeph.def: all peepholes with movff are commented out,
+       because there is a problem in the pcode peep optimizer,
+       * src/pic16/ralloc.c: the register allocator can now reuse local
+       function symbols for another function. This saves register usage.
+       * src/pic16/ralloc.h: added flag isLocal in structure regs,
+
+       Added file src/pic16/NOTES with information about program writing on
+       the current port version.
+
+2004-01-11 Frieder Ferlemann <Frieder.Ferlemann@web.de>
+
+       * src/mcs51/peephole.def: added peepholes 177.c,d (redundant moves)
+       and peephole 252 (array access)
+
+2004-01-09  Borut Razem <borut.razem@siol.net>
+
+       * src/SDCCmain.c : fixed #872250: -l command line defined library
+         files are scanned before standard library files
+
+2004-01-10 Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+       * src/SDCCast.c (decorateType): fixed bug #874046
+
+2004-01-09  Borut Razem <borut.razem@siol.net>
+
+       * support/scripts/sdcc.nsi: remove previous installation
+
+2004-01-09 Frieder Ferlemann <Frieder.Ferlemann@web.de>
+
+       * src/SDCCglue.c (createInterruptVect): don't append 7(5) padding
+       bytes for last interrupt vector (mcs51)
+       * sdcc.spec: fixed typo
+
+2004-01-09 Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+       * src/mcs51/gen.c (genFunction, genEndFunction, genReceive, getTempRegs,
+       gen51Code): more efficient parameter receive for --model-large
+       ("bug" #845294)
+
+2004-01-09 Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+       * src/ds390/main.c,
+       * src/z80/main.c: added missed needLinkerScript flags (more than
+       one port structure defined in these file)
+       * src/ds390/gen.c (aopForSym, aopOp, operandsEqu, aopOp3): fixed
+       bug #795325
+
+2004-01-08 Vangelis Rokas <vrokas@otenet.gr>
+
+       * src/SDCCmain.c: removed various references to DEFAULT_PORT
+       * src/port.h: added flag needLinkerScript in port->linker
+       structure to inform whether to create a .lnk file or not,
+       * 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: changed appropriately to configure
+       needLinkerScript flag
+       * src/pic/gen.c,
+       * src/pic16/gen.c (genAddrOf): fixed bug #863624
+       * src/pic/glue.c: added variable udata_section_name to
+       override default uninitialized data segment definition for
+       devices only with SHAREBANK memory (reported from Erik Epetrich)
+       * (pic14emitOverlay): modified to emit a commented overlay segment
+       directive when no overlay data exist
+       * (picglue): modified to emit uninitialized data segment
+       according to udata_section_name
+       * src/pic/main.c (_pic14_parseOptions): added command line
+       options --udata-section-name=[name] to override default
+       udata definition name
+       * modified _linkCmd and _asmCmd to include compiler passed
+       arguments via -W option
+       * src/pic16/main.c: added $l in _asmCmd, changed extension for
+       object file from '.rel' to '.o' in port->linker structure,
+       changed size of fptr from 2 to 3 in port structure
+
+2004-01-07  Borut Razem <borut.razem@siol.net>
+
+       * support/scripts/sdcc.nsi: update PATH
+       * support/scripts/sdcc.ico: craeted
+
+2004-01-07 Bernhard Held <bernhard@bernhardheld.de>
+
+       * device/include/Makefile.in: fix install
+       * doc/Makefile: fix install
+
+2004-01-07 Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+       * src/SDCCsymt.c (processFuncArgs): fixed superflous allocation noted
+       in bug #860505
+       * src/SDCCmem.c (printAllocInfoSeg, printAllocInfo): minor changes to
+       how the function variable allocation summary is displayed; also
+       include information about variables allocated to the overlay
+       segment
+
+2004-01-06  Jesus Calvino-Fraga <jesusc@ece.ubc.ca>
+
+       * as/mcs51/lkmain.c: Help about -Y option
+       * as/mcs51/lkarea.c: Fixed gcc warnings
+
+2004-01-06 Bernhard Held <bernhard@bernhardheld.de>
+
+       * src/SDCCval.c (valShift): changed from 16 to 32 bit shift count,
+       fixed warning
+       * support/valdiag/tests/overflow.c: added
+       * src/SDCCast.c (decorateType),
+       * src/SDCCicode.c (geniCodeLeftShift): added promotion to int for
+       LEFT_OP (left shift)
+
+2004-01-06  Jesus Calvino-Fraga <jesusc@ece.ubc.ca>
+
+       * as/mcs51/lkmain.c: stack must be after data when option -Y is not used
+       (default behaviour).
+
+2004-01-06 Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+       A python script to validate compiler diagnostic messages. It can be
+       used to verify that sdcc complains about bad c source code and
+       gives a good location of the error.
+       * support/valdiag/Makefile,
+       * support/valdiag/valdiag.py,
+       * support/valdiag/tests/*
+
+2004-01-06 Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+       * src/SDCC.y (enum_specifier, enumerator_list, opt_assign_expr),
+       * src/SDCCsymt.c (newEnumType),
+       * src/SDCCsymt.h
+       * support/Util/SDCCerr.c,
+       * support/Util/SDCCerr.h: fixed bug #871258 and some other unreported
+       enum related bugs.
+       * support/regression/tests/enum.c: added test for enum values that
+       require at least 2 bytes of storage.
+
+2004-01-06 Vangelis Rokas <vrokas@otenet.gr>
+
+       * src/common.h: added ifndef/define/endif macros
+       around the header file.
+       Bug reported from Jesus Calvino-Fraga
+
+2004-01-06 Bernhard Held <bernhard@bernhardheld.de>
+
+       * sdcc.spec: updated
+       * device/include/Makefile.in: don't install CVS directories
+       * device/lib/Makefile.in: added removal of CVS directories after install
+       * doc/Makefile: fixed install, added local_icons
+       * sim/ucsim/gui.src/Makefile.in: fixed an old typo
+       * src/mcs51/gen.c (genRightShift): fixed bug #870788
+       * src/ds390/gen.c (genRightShift): fixed bug #870788
+       * src/SDCCast.c (decorateType): fixed bug #870781
+
+2004-01-06 Vangelis Rokas <vrokas@otenet.gr>
+
+       PIC16 port related changes:
+       * device.c: removed pic16_finalMapping and pic16_finalMappingSize,
+       added variable stackPos,
+
+       * gen.c: genCall, assignResultValue: added support for
+       pushing/retrieving function parameters to/from stack,
+       genFunction,genEndFunction: setup stack frame for the
+       generated function,
+       genAddrOf: will be changed according to bug 863624
+
+       * added files genutils.c and genutils.h which contain gen*
+       debugged and optimised functions extracted from gen.c
+       
+       * glue.c: added variable 'externs' which holds extern symbols,
+       pic16emitRegularMap: is modified to properly handle relocatable
+        symbols under the new scheme,
+       pic16createInterruptVect: is modified
+       pic16printPublics: is modified to emit 'global' assembler directives,
+       added pic16_printExterns to print extern symbols,
+       pic16glue: initializes stack/frame pointer in the beginning of
+       the assembly output. Temporary hack, will be corrected later,
+       because gplink yet does not support stack and SDCC does not
+       yet support a type of crt0.o object to create the final binary.
+       
+       * Removed many lines that contain 8051 legacy code.
+       * The code is finally placed under a 'code' directive.
+       * Added port specific options.
+       
+       * _process_pragma: simplified since now we do not need *special*
+       include file to define SFR registers. But a separate header
+       will be needed. This will be developed later.
+       * _pic16_parseOptions: added, parses port specific options:
+       --pgen-banksel, --obanksel=, --pomit-config-words, --pomit-ivt,
+       --pleave-reset-vector, --penable-stack, --pstack-model, --debug-xtra
+       --preplace-udata-with=
+       
+       * _pic16_setDefaultOptions: modified to initialize section names,
+       but hack is temporarly out of order since it needs improvement.
+       * _pic16_genAssemblerPreamble: configuration words are emitted by
+       their address instead of their name. This part is incomplete and
+       supports only the 18Fxx2 devices. Other devices will emit an error
+       during assembly since they do not contain the same set of config
+       registers
+       * _pic16_genIVT: is modified,
+       
+       * pcode.c: added definitions for some hardware registers that are needed
+       for stack support
+       * added flag is2LitOp and variable pci_magic in pCodeInstruction.
+       All PCI entries are updated. Now LFSR is supported.
+       * Removed pic16_pciTRIS is mentioned by mdubuc in source
+       * added pic16_newpCodeOpLit2 to support instructions with
+       two literal arguments
+       * pic16_pCode2str: corrected code that emits assembler instructions
+       with two literal operands and those that have an access bit modifier
+       * genericPrint: now PC_ASMDIR pCodes, can emit a label if it exists,
+       this fixes a bug which caused some labels to be lost, when an
+       assembler directive was added, i.e. banksel,
+       * pic16_FixRegisterBanking: improved logic that causes the insertion
+       of bank switching,
+       * InlineFunction: functions that are called once, are not any more
+       inlined. This can be a port option in the future,
+       
+       * pcode.h: added pCodeOpLit2 and added variable label in pCodeAsmDir
+       
+       * ralloc.c: added pic16_rel_udata and pic16_fix_udata variables which
+       hold the corresponding uninitialized symbols,
+       * pic16_allocProcessorRegister: registers have explicit marked the
+       accessBank field,
+       * pic16_allocInternalRegister: registers are explicit marked as
+       not used,
+       * pic16_writeUsedRegs: pic16_dynDirectBitRegs was missing from the
+       processing list, so bit registers were lost,
+       * 
+
+       * ralloc.h: added field 'accessBank' and original symbol operand
+       in register definition,
+       * removed the field isMapped from register definition,
+
+       ** Several functions have been removed from various sources:
+       BanksUsedFlow2,BanksUsedFlow,FixBankFlow,InstructionRegBank,
+       pic16_addMemRange,pic16_isREGinBank,pic16_dump_map,pic16_dump_cblock
+       isSFR,validAddress,mapRegister,assignRegister,pic16_assignFixedRegisters
+       pic16_assignRelocatableRegisters
+       
+       ** others have been introduced:
+       pic16_areRegsSame,pic16_dump_section,checkAddReg,pic16_groupRegistersInSection
+       pic16_popGetLit2,pic16_popCombine2,pushw,pushaop
+       
+2004-01-05 Vangelis Rokas <vrokas@otenet.gr>
+
+       * support/scripts/inc2h.pl: changed definition of BIT_AT
+       to emit 'sbit at' instead of 'bit at'. This was a request.
+
+       PIC16 port related preliminary changes:
+       * gen.c: prefixed function popRegFromString with
+       pic16_ and all references to it corrected
+       * pcode.c: all pic16_pc_* hardware registers prefixed
+       with underscore (_),
+       pic16_popCopyGPR2Bit(): function sets register wasUsed=1
+       * ralloc.c: newReg(): when register is REG_SFR then
+       set address to rIdx,
+       pic16_allocProcessorRegister(): marks register wasUsed=0
+       pic16_writeUsedRegs(): added a call to assign processor
+       registers via pic16_assignFixedRegisters
+
+2004-01-04  Jesus Calvino-Fraga <jesusc@ece.ubc.ca>
+
+       * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c,
+       as/mcs51/lkmain.c, as/mcs51/lkmem.c: 8051 linker can now pack
+       variables in unused register banks.  Also the SSEG is placed
+       wherever there is enough space for it, and IDATA can be anywhere
+       in internal RAM.  For now compile using -Wl-Y[stack_size].
+       The mem file is different for this option as well, since it
+       makes no sense of talking about DSEG lenght.
+
+2004-01-02 Vangelis Rokas <vrokas@otenet.gr>
+
+       * src/SDCClrange.c: fixed bug 869095 that caused segfault
+       in certain cases, e.g. when ROM assignment, patch provided
+       from Albert den Haan.
+
+2004-01-01 Bernhard Held <bernhard@bernhardheld.de>
+
+       Many signedness and type propagation fixes:
+       * src/SDCCicode.c: made geniCodeCast() static
+       replaced SPEC_ by IS_ (cosmetic)
+       (operandOperation): fixed div and mod operation
+       (usualBinaryConversions): added support for promotion of char
+       (geniCodeMultiply): replaced (unsigned long) by (TYPE_UDWORD)
+       (geniCodeDivision): replaced (unsigned long) by (TYPE_UDWORD)
+       (geniCodeAdd): an array index will stay unsigned, even if promoted
+       from char to int
+       (geniCodeArray): ditto
+       * src/SDCCicode.h: made geniCodeCast() static: removed prototype
+       * src/SDCCsymt.c (computeType): added more support for char;
+       promotion of char is selectable by promoteCharToInt, fixed signedness
+       for all cases
+       (powof2): replaced (unsigned long) by (TYPE_UDWORD)
+       * src/SDCCsymt.h (powof2): replaced (unsigned long) by (TYPE_UDWORD)
+       * src/SDCCval (val*): replaced signedness calculation by
+       computeType()
+       rearranged if-branches (cosmetic)
+       (valShift): added warning W_SHIFT_CHANGED
+       (valCompare): fixed problem with different types
+       * src/hc08/rallo.c (leastUsedLR): fixed gcc 3.3 warning
+       * support/regression/tests/literalop.c: added many cases
+       * support/regression/tests/ast_constant_folding.c: changed finally to
+       'unsigned int'
+       * .version: new year, new version: 2.3.7
+       * src/SDCCmain.c (main): applied patch #866468
+       * debugger/mcs51/sdcdb.c (parseCmdLine): added -k for ucsim, patch
+       provided by Scott Bronson
+       * doc/sdccman.lyx: updated documentation for sdcdb
+       updated and added chapter tips
+
+2004-01-01 Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+       * src/SDCCsymt.h: missing from yesterday's commits
+
+2003-12-31 Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+       * src/SDCC.y (struct_or_union_specifier),
+       * support/Util/SDCCerr.c,
+       * support/Util/SDCCerr.h: verify that struct & union tags are used
+       as declared.
+
+2003-12-29 Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+       * src/SDCCglobl.h: missing from yesterday's commits
+
+2003-12-28 Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+       * src/SDCC.y (external_definition, type_specifier2, sfr_reg_bit,
+       sft_attributes, struct_declaration, parameter_declaration,
+       type_name, start_block, declaration_list),
+       * src/SDCC.lex (check_type): support redefinition of typedef names
+
+2003-12-22 Frieder Ferlemann <Frieder.Ferlemann@web.de>
+
+       * src/mcs51/gen.c (genPlus): added special handling for 256 byte
+       aligned xdata arrays. Erik helped me with the if clause.
+
+2003-12-20 Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+       * device/lib/ds390/tinibios.c (CpuSpeed): suppress unreachable code
+       warning
+
+2003-12-20 Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+       * src/SDCCast.h,
+       * src/SDCCast.c (newAst_),
+       * src/SDCCicode.h,
+       * src/SDCCicode.c (ast2iCode, newiCode),
+       * src/SDCCglobl.h,
+       * src/SDCC.y (logical_and_expr, logical_or_expr, conditional_expr,
+       expr, statement, expression_statement, selection_statement,
+       iteration_statement, expr_opt, jump_statement): foundation for tracking
+       sequence points
+       * src/SDCCopt.c (killDeadCode): fixed bug #861580 (needs the sequence
+       point code too)
+
+2003-12-19 Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+       * support/Util/SDCCerr.c,
+       * src/SDCCast.h,
+       * src/SDCCast.c (createCase, createDefault, decorateType),
+       * src/SDCClabel.c (labelUnreach),
+       * src/SDCC.y (labeled_statement, jump_statement): More improvements
+       to error messages.
+       * support/Util/SDCCerr.c (werrorfl): fixed a non-standard declaration
+       (with thanks to Stas Sergeev)
+       * device/include/time.h,
+       * device/lib/time.c (CheckTime): suppress unreachable code warning
+
+2003-12-18 Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+       * src/SDCCast.c (createIvalCharPtr),
+       * src/SDCCglue.c (printChar): fixed bug #862241 (an error in my fix for
+       bug #753752)
+       * support/regression/tests/nullstring.c: tests for these two bugs
+
+2003-12-18 Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+       * support/Util/SDCCerr.h,
+       * support/Util/SDCCerr.c (E_NOT_ALLOWED),
+       * src/SDCC.y (struct_declaration, struct_or_union_specifier): complain
+       about storage class and 'at' used inside struct or union
+       * src/SDCCBBlock.c (iCodeFromeBBlock),
+       * src/SDCCcse.c (ifxOptimize),
+       * src/SDCCglue.c (emitRegularMap, initPointer, printIvalStruct,
+       printIvalArray, printiValFuncPtr, printIvalCharPtr, printIvalPtr,
+       printIval, emitStaticSeg, emitOverlay),
+       * src/SDCClabel.c (deleteIfx),
+       * src/SDCCopt.c (replaceRegEqv, eBBlockFromiCode),
+       * src/SDCCast.c (resolveSymbols, createIvalStruct, createIvalArray,
+       gatherAutoInit, processParms),
+       * support/Util/SDCCerr.h,
+       * support/Util/SDCCerr.c (werrorfl): Support for better error location
+       reporting for post-parse errors.
+
+2003-12-16 Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+       * src/SDCCval.c (valPlus, valMinus, valShift): fixed some problems with
+       implicit casts via union; they don't work on big endian systems
+       (possible fix for bug #861138)
+
+2003-12-16 Frieder Ferlemann <Frieder.Ferlemann@web.de>
+
+       (committed by Erik Petrich <epetrich@ivorytower.norman.ok.us> on Frieder's behalf)
+       * src/mcs51/main.c: fixed the fix for bug #737001
+
+2003-12-15  Borut Razem <borut.razem@siol.net>
+
+       * support/scripts/sdcc.nsi: updated for NSIS 2.0 beta 4
+
+2003-12-14 Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+       * support/makebin/makebin.c: put output in binary mode
+
+2003-12-13 Frieder Ferlemann <Frieder.Ferlemann@web.de>
+
+       * src/mcs51/main.c: fixed bug #737001 for the mcs51. SDCC clears
+       xdata and data memory on startup. Set the environment variable
+       SDCC_NOGENRAMCLEAR to disable this.
+       * src/mcs51/peephole.def,
+       * src/ds390/peephole.def: using the atomic test and clear instruction jbc
+       (allows non-interrupt and interrupt code to safely compete for a resource
+       without the non-interrupt code having to disable interrupts)
+
+2003-12-13 Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+       * src/SDCCicode.c (geniCodeAdd),
+       * src/SDCCast.c (decorateType): fixed bug #857753 (need to be careful
+       with valFromType if type might be a pointer and host is big endian).
+       * src/SDCCast.c (decorateType): unary plus compatible with all arithmetic
+       types, not just integer types.
+       * src/SDCCsymt.c (addSymChain): clarified error message when symbol is
+       multiply defined with mismatching "at" address.
+
+2003-12-12 Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+       * src/ds390/main.c (PORT tininative_port): fixed bug #858416
+       * src/SDCCglue.c (printChar, printIvalChar, emitStaticSeg),
+       * src/SDCCast.c (createIvalCharPtr, stringToSymbol): handle strings
+       with embedded nulls (fixed bug #753752)
+
+2003-12-12 Frieder Ferlemann <Frieder.Ferlemann@web.de>
+
+       * src/mcs51/main.c(_mcs51_genRAMCLEAR): using r0 instead of r1/r2.
+       Apparently this did not see much testing (endless loop)
+
+2003-12-11 Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+       * src/z80/ralloc.c: set DISABLE_PACK_HL = 1 as a temporary fix to bug #855165
+
+2003-12-10 Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+       * src/SDCCdebug.c (outputDebugSymbols, outputDebugStackSymbols, dumpSymInfo):
+       gracefully handle NULL memmap pointers
+
+2003-12-08 Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+       * src/SDCCopt.c (killDeadCode): change iCode type to DUMMY_READ_VOLATILE
+       instead of deleting the iCode when an operand is volatile
+       * src/z80/gen.c (genDummyRead),
+       * src/mcs51/gen.c (genDummyRead),
+       * src/ds390/gen.c (genDummyRead),
+       * src/hc08/gen.c (genDummyRead): handle operands in IC_LEFT and/or IC_RIGHT,
+       not just IC_RIGHT
+       * src/SDCCicode.c (geniCodeCall): fixed bug #851607
+       * src/SDCC.y: fixed bug #850420
+
+2003-12-05 Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+       Applied z80 i/o port patch from Peter Townson and fixed some operators
+       to better handle operands in A register.
+       * device/include/z180.h
+       * src/SDCC.y
+       * src/SDCCglue.c
+       * src/z80/gen.c
+       * src/z80/gen.h
+       * src/z80/main.c
+       * src/z80/peeph-z80.def
+       * src/z80/peeph.def
+       * src/z80/z80.h
+
+2003-12-03 Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+       * src/SDCCsymt.c (addSymChain, compareTypeExact): fixed bug #838241 again
+
+2003-12-01 Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+       * device/lib/hc08/_mullong.c: Removed extra #endif
+
+2003-12-01 Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+       * sim/ucsim/hc08.src/inst.cc,
+       * sim/ucsim/hc08.src/hc08mac.h: fixed some problems with CC flag bits and
+       carries from x to h
+       * src/hc08/gen.c (aopAdrStr): fixed problem with 16 bit immediate
+       * src/hc08/gen.c (XAccRsh): fixed problem with right shift
+       * device/include/stdarg.h: fixed varargs for hc08
+       * device/lib/Makefile.in,
+       * device/lib/hc08/Makefile,
+       * device/lib/hc08/_mulint.c,
+       * device/lib/hc08/_mullong.c: fixed some endian problems
+
+2003-11-28 Frieder Ferlemann <Frieder.Ferlemann@web.de>
+
+       * sdcc/src/mcs51/gen.c (genMultOneByte): help peephole 105
+       * sdcc/src/mcs51/peeph.def: added peephole 186.e array access in code space
+       * device/lib/_gptrget.c,
+       * device/lib/_gptrput.c: P2 not used any more (related to #850747, #785979)
+
+2003-11-27 Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+       * src/SDCClrange.c (findNextUseSym, rlivePoint): fixed bug #849795
+       * src/SDCCast.c (astErrors): fixed bug #846007
+       * src/SDCCsymt.c (checkFunction): fixed follow-up bug on bug #846007
+
+2003-11-26 Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+       * src/SDCCast.c (decorateType): disabled a transformation I added in
+       revision 1.188 (access to fields of a structure at an absolute address);
+       it breaks with bitfields, extern declarations, and gcse analysis.
+       * src/SDCCopt.c (isLocalWithoutDef): if ADDRESS_OF applied to a symbol, it
+       could be assigned through a pointer, so don't complain.
+       * src/SDCCast.c (astErrors),
+       * src/SDCCast.h,
+       * src/SDCCglue.c (emitRegularMap): fixed bug #847813
+
+2003-11-26 Vangelis Rokas <vrokas@otenet.gr>
+       
+       * src/pic16/main.c (_pic16_genIVT): fixed interrupt vector table
+       * src/pic16/main.c (_pic16_genAssemblerPreamble): re-enabled the
+       output of __config directives, since gpasm now supports them
+       * src/pic16/main.c (_pic16_finaliseOptions): define MCU
+       pre-processor macro, i.e. -DMCU=p18f452
+       * src/pic16/ralloc.c: renamed packRegisters to pic16_packRegisters,
+       and modified to handle 'cast' icode similarly to '=' icode
+       * src/pic16/device.h (typedef struct PIC_device): added field
+       'extMIface' to indicate that chip has external memory interface
+       * src/pic16/device.c: added chips 18F248, 18F258, 18F448, 18F458,
+       18F6520, 18F6620, 18F6680, 18F6720, 18F8520, 18F8620, 18F8680,
+       18F8720
+
+2003-11-26 Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+       * src/SDCC.y (pointer): fixed bug #846006
+       * support/Util/SDCCerr.c: made W_PTR_TYPE_INVALID message clearer
+       * src/SDCCast.c (decorateType): fixed bug #846009
+       * src/ds390/peeph.def,        
+       * src/ds390/gen.c (genAnd, genOr),
+       * src/mcs51/peeph.def,        
+       * src/mcs51/gen.c (genAnd, genOr): fixed bug #846777
+
+2003-11-25 Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+       Fixed several common-sub-expression bugs (#772861, #768380, & #755323)
+       * src/SDCCdflow.c
+       * src/SDCCcse.c
+       * src/SDCCcse.h
+       * src/SDCCBBlock.h
+       * src/SDCCBBlock.c
+
+2003-11-23 Klaus Flittner <klaus_flittner@gmx.de>
+
+       fixed bug #845089
+       * src/SDCCbitv.h,
+       * src/SDCCbitv.c: added function to free a bitvector
+       * src/SDCClrange.h,
+       * src/SDCClrange.c: added function to recompute the liveranges
+       * src/avr/ralloc.c,
+       * src/ds390/ralloc.c,
+       * src/hc08/ralloc.c,
+       * src/mcs51/ralloc.c,
+       * src/pic/ralloc.c,
+       * src/pic16/ralloc.c,
+       * src/xa51/ralloc.c,
+       * src/z80/ralloc.c: recompute the liveranges after register packing
+
+2003-11-21 Klaus Flittner <klaus_flittner@gmx.de>
+
+       * src/SDCCloop.c (newInduction): fixed bug #845630
+
+2003-11-21 Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+       * src/SDCCsymt.c (compareTypesExact): disabled debugging output
+       inadvertantly left behind from my 2003-11-12 change
+
+2003-11-20 Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+       Updated headers I neglected to commit yesterday.
+       * src/SDCClrange.h,
+       * src/SDCCicode.h
+
+2003-11-19 Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+       * src/SDCCcse.c (algebraicOpts): fixed bug #773153
+       * src/SDCClrange.c (rlivePoint): need to mark IC_RESULT used if POINTER_SET op
+       * src/SDCCopt.c (eBBlockFromiCode),
+       * src/SDCClrange.c (hashiCodeKeys, sequenceiCode, computeLiveRanges): seperated
+       the creation of the key hash table from the sequencing so it can be used
+       earlier (for some GCSE bug fixes still pending)
+
+2003-11-15 Frieder Ferlemann <Frieder.Ferlemann@web.de>
+
+       * src/mcs51/gen.c (genPlus): generate shortcut for adding 0xab00
+       * support/regression/tests/addsub.c: testing genPlus shortcut
+
+2003-11-15  Borut Razem <borut.razem@siol.net>
+
+       * src/SDCCmain.c: fixed bug #841645: -MM command line option passed to sdcpp
+
+2003-11-15 Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+       * src/SDCCcse.c (cseBBlock): fixed bug #527779
+       * src/SDCCcse.c (deleteGetPointers): rewrote so that the set
+       ordering is immaterial.
+       * src/SDCCdflow.c (mergeInExprs): fixed bug #587536
+
+2003-11-14 Erik Petrich <epetrich@ivorytower.norman.ok.us>
+       
+       * src/SDCCicode.c (geniCodeAddressOf): fixed part of bug #840381
+       * src/SDCCopt.c (replaceRegEqv, isLocalWithoutDef): fixed other part
+       (SIGSEV) of bug #840381
+       * src/SDCCmain.c (linkEdit, assemble): fixed bug #841606 (don't
+       unlink new file before rename if new and old filenames are the same)
+
+2003-11-13 Frieder Ferlemann <Frieder.Ferlemann@web.de>
+
+       * src/mcs51/main.c: started fixing bug #737001 (SDCC not clearing
+       uninitialized variables) for the mcs51. Set environment variable 
+       SDCC_GENRAMCLEAR to test. 
+       xdata initialization slightly shorter
+
+2003-11-12 Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+       * src/SDCCsymt.h,
+       * src/SDCCsymt.c (addSymTypeChain, compareTypesExact): fixed bugs
+       #838241 & 780691 (basicly the same bug)
+       * src/SDCCBBlock.c (iCode2eBBlock): fixed bug #840148
+       * src/SDCCBBlock.c (iCodeFromeBBlock): fixed bug #840162
+
+2003-11-11 Bernhard Held <bernhard@bernhardheld.de>
+
+       * src/SDCCmain.c (linkEdit): "fix" #834252
+
 2003-11-11 Erik Petrich <epetrich@ivorytower.norman.ok.us>
 
        * src/SDCCast.c (removePostIncDecOps, removePreIncDecOps),