* sim/ucsim/cmd.src/Makefile.in: run lex only if $(PRJDIR)/devel exists
[fw/sdcc] / ChangeLog
index 4f3c0d5ff0ef0c126613334c778ed1bbf7f7aff0..896e6ea00cbccd7d21ea495382ecf8c9910af8db 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,407 @@
+2004-08-21 Bernhard Held <bernhard AT bernhardheld.de>
+
+       * sim/ucsim/cmd.src/Makefile.in: run lex only if $(PRJDIR)/devel exists
+
+2004-08-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+       * src/z80/ralloc.c (packRegsForAssign): ported some bug fixes from the
+       mcs51 port
+
+2004-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
+
+       * src/pic/gen.c: Restored fn genRet as previous fix was incorrect.
+
+2004-08-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
+
+       * src/mcs51/gen.c (genJumpTab): jumptables for more than 16 switch
+       cases use more compact code.
+
+2004-08-13 Slade Rich <slade_rich AT users.sourceforge.net>
+
+       * src/pic/gen.c: Fixed problem with fn returning a variable bigger than a char.
+
+2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+       * src/SDCClrange.c (findPrevUse): fixed bug #1007371
+
+2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+       * src/SDCCsymt.h,
+       * src/SDCCsymt.c (changePointer, checkDecl, addSymChain): changed
+       parameter of changePointer() from symbol* to sym_link*
+       * src/SDCCast.c (decorateType): call changePointer() for CAST op
+       * src/SDCCsymt.c (compareType): void* type is castable to other
+       pointers, but not necesarily an exact match.
+       * src/SDCCicode.c (geniCodeCast): allow void* casting here since it
+       is no longer blindly treated as an exact match.
+       * src/SDCCval.c (valCastLiteral): treat missing type as cast to void
+
+2004-08-12 Slade Rich <slade_rich AT users.sourceforge.net>
+
+       * src/pic/glue.c: Added struct initialisation fn printIvalStruct.
+
+2004-08-11 Slade Rich <slade_rich AT users.sourceforge.net>
+
+       * src/pic/gen.c,
+       * src/pic/pcode.c,
+       * src/pic/ralloc.h,
+       * src/pic/ralloc.c: Printing rIdx on internal verbose debug.
+
+2004-08-10 Slade Rich <slade_rich AT users.sourceforge.net>
+
+       * src/pic/device.c,
+       * src/pic/device.h,
+       * src/pic/device.c: Will no longer exit if #pragma maxram has not been defined.
+
+2004-08-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+       * src/mcs51/gen.c (emitcode): fixed bug #992819
+
+2004-08-05 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * src/pic/ralloc.c (deassignLR): allthough pic port is buggy already,
+         there's no need to make it worse
+
+2004-08-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+       * src/mcs51/ralloc.c (deassignLR),
+       * src/ds390/ralloc.c (deassignLR),
+       * src/hc08/ralloc.c (deassignLR),
+       * src/z80/ralloc.c (deassignLR),
+       * src/pic/ralloc.c (deassignLR),
+       * src/pic16/ralloc.c (deassignLR),
+       * src/avr/ralloc.c (deassignLR),
+       * src/SDCClrange.c (findRecursiveSucc, findRecursivePred, findPrevUse,
+       rlivePoint): fixed another part of bug #971834
+
+2004-08-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+       * src/z80/main.c: enabled "critical" keyword
+       * src/z80/mappings.i,
+       * src/z80/gen.c (genFunction, genEndFunction): support for interrupt
+       functions (fixes bug #979646)
+       * doc/sdccman.lyx: added a subsection explaining z80 interrupt support
+
+2004-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
+
+       * src/mcs51/gen.c (genInline): Add \n for labels, not DOS/WIN dirs
+         such as c:\mydir.
+
+2004-08-03 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * src/SDCCloop.c (loopInvariants): fixed bug 983545, hope this
+         doesn't disable too much optimizations
+
+2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
+
+       * src/pic/glue.c Disabled "WARNING: function 'main' undefined" when -S option is used.
+
+2004-08-02 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * src/SDCClrange.c (rlivePoint): fixed bug 988568, thanks to anonymous
+
+2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
+
+       * src/pic/gen.c tidied up tabs
+       * src/pic/genarith.c tidied up tabs and fixed bug with literal multiple where same register was used for hi and low byte
+       * src/pic/main.c tidied up tabs
+       * src/pic/pcode.c tidied up tabs and disabled verbose code generation
+       * src/pic/pcoderegs.c tidied up tabs
+       * src/pic/ralloc.c tidied up tabs
+
+2004-07-30 Vangelis Rokas <vrokas AT otenet.gr>
+
+       * src/SDCCmem.c (allocGlobal): don't turn S_REGISTER storage class
+       to S_FIXED for pic16 port and when symbol is not in level 0,
+       allocate for S_REGISTER storage class and pic16 port, too,
+       * src/pic16/device.h: prototype for checkSym,
+       * src/pic16/device.c (pic16_dump_access, checkSym): NEW,
+       * (pic16_assignConfigWordValue): test the value and the mask to
+       validate that the value is suitable for the configuration word,
+       * src/pic16/glue.c (pic16_printIvalFuncPtr): use 'externs' to
+       collect extern declared symbols, don't emit symbol twice, check
+       first if symbol is in publics set first,
+       * src/pic16/main.c (_pic16_keywords[]): added keyword 'register',
+       * added command line '--fstack' which enables an experimental
+       feature for stack access, too buggy to be used yet...
+       * src/pic16/ralloc.c (pic16_accessregWithName): NEW,
+       * (pic16_allocDirReg): when register has storage class S_REGISTER
+       allocate in pic16_dynAccessRegs,
+       * device/include/pic16/pic18f????.h: modified configuration word
+       naming convention, words started as CONFIG0H but should be CONFIG1H
+
+2004-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * device/include/mcs51reg.h: fixed bug 970993
+
+2004-07-27 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * added lib/calloc.c, lib/free.c, lib/realloc.c, include/stddef.h
+       * updated lib/malloc.c, lib/libsdcc.lib, lib/Makefile.in, include/malloc.h
+       * src/SDCC.lex (doPragma): added pragma disable_warning <nnn>
+       * src/SDCCmain.c (parseCmdLine): added option --disable-warning <nnn>
+       * src/ds390/gen.c (genPlusIncr): fixed bug when incrementing generic pointers
+       * support/Util/SDCCerr.c (vwerror): suppress disabled warnings and output
+         error/warning numbers,
+         added function setWarningDisabled()
+       * support/Util/SDCCerr.h: added setWarningDisabled() and MAX_ERROR_WARNING
+       * support/regression/ports/mcs51-stack-auto/spec.mk: added dependencies
+         _memcmp.c _memmove.c calloc.c realloc.c free.c
+       * support/regression/tests/malloc.c: added tests for new functionality
+       * support/regression/tests/zeropad.c: added tests for truncated initializers
+         and initialized char arrays starting with '\x0'
+       * src/mcs51/peeph.def: fixed regression, added peephole 177.f
+
+2004-07-26 Bernhard Held <bernhard AT bernhardheld.de>
+
+       * support/valdiag/tests/overflow.c: fixed warning on (1 >> 40)
+
+2004-07-26 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
+
+       * doc/sdccman.lyx: updated example in section "Absolute Addressing"
+       * src/mcs51/peeph.def: added contributed fix for "bug" #995347 as
+       peephole 177.e. Thanks to anonymous
+
+2004-07-25 Vangelis Rokas <vrokas AT otenet.gr>
+
+       * src/pic16/glue.c (pic16_printIvalFuncPtr): when an extern
+       function isn't used in the source but referenced as a
+       variable initializer then declare it as extern in .asm file
+
+2004-07-24 Vangelis Rokas <vrokas AT otenet.gr>
+
+       * .version: increased version number to 2.4.3
+
+       Adding version extension according to ChangeLog CVS revision
+       * src/Makefile.in (target all): added dependency 'version.h'
+       * (rule version.h): added rule to create version.h from ChangeLog,
+       * (rule dep): added dependency version.h,
+       * src/version.awk: AWK script to create version.h
+       * src/SDCCdwarf2.c (dwWriteModule),
+       * src/SDCCglue.c (initialComments),
+       * src/SDCCmain.c (printVersionInfo): modified to write after
+       version string the version extension number,
+       * src/SDCCutil.c: included "version.h"
+       * (getBuildNumber): NEW, returns SDCC's ChangeLog minor revision
+       number,
+       * src/SDCCutil.h: added prototype for getBuildNumber
+
+       * src/SDCCmain.c (parseCmdLine): when sOpt is 'I' add rest in
+       includeDirsSet, too,
+       * src/SDCCsymt.c (checkSClass): don't emit error when a variable,
+       const char [] is found in function prototype...
+
+       * src/pic16/genarith.c (pic16_genUMult8XLit_8): optimization to omit
+       moving to WREG with source is already in WREG,
+       * src/pic16/gen.h: added AOP_FSR0 and AOP_FSR2 in enum,
+       * src/pic16/gen.c (getFreePtr): updated to look for FSR0 and FSR2,
+       * (aopForSym): stack'ed symbols are partially supported, added
+       if-clause to support symbols in FARSPACE,
+       * (sameRegs): added test for AOP_ACC to see if registers are same,
+       * (pic16_freeAsmop): added case for AOP_FSR0 and AOP_FSR2,
+       * (pic16_aopGet): added case for AOP_FSR0 and AOP_FSR2,
+       * (pic16_popRegFromString): will not allocate a new register if it
+       doesn't find one by name, bug may have introduced...
+       * (pic16_popGet): added case for AOP_FSR0 and AOP_FSR2,
+       * (genIpush): revived to use pic16 port's stack,
+       * (genAddrOf): added incomplete case for stack'ed operand,
+       * (genCast): optimized a pair of MOVFW,MOVWF to MOVFF
+       * src/pic16/genutils.c (pic16_genNot): almot new vesrion for NOT,
+       can handle multibyte operands,
+       * src/pic16/glue.c (pic16_printIval*): some debug info added,
+       * (pic16initialComments): added message for MPLAB compatibility
+       mode enabled,
+       * src/pic16/main.h: prototype for pic16_mplab_comp,
+       * src/pic16/main.c (pic16_optionsTable): new option --mplab-comp,
+       which enabled MPLAB compatibility mode (i.e. no #LINE/#FILE, BANKED)
+       * (_pic16_linkEdit): NEW, handles link stage, transferred here
+       because of increased complexity of procedure,
+       * (_process_pragma): stack pragma changed to format 'stack pos len',
+       emit symbol '_stack_end' to conform with gplink,
+       * src/pic16/pcode.c (pic16_newpCodeOpBit): using pic16_regWithName
+       to search for register,
+       * (pic16_get_op, pic16_get_op2): added case for PO_W, PO_WREG and
+       PO_GPR_REGISTER,
+       * (pic16_pCode2str): when in MPLAB compatibility mode, comment out
+       #LINE directives and replace 'B' with 'BANKED' in instruction opcodes
+       * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
+       case for PO_GPR_REGISTER,
+       * (pic16_AnalyzeBanking): removed the old message for inc2h.pl, past
+       dies, the new era is ahead !...
+       * src/pic16/ralloc.c: added hash reposits pic16_dynAllocRegNames and
+       pic16_dynInternalRegs,
+       * (pic16_allocregWithName, pic16_procregWithName, pic16_regWithname): NEW,
+       * (pic16_allocDirReg): minor optimizations and bug fixes,
+       * (pic16_allocWithIdx): when searching pic16_dynProcessorRegs use fixed,
+
+       * device/lib/pic16/startup/crt0*.c: extern definition of stack_end,
+       load stack and frame pointer with address of 'stack_end' symbol
+
+2004-07-23 Vangelis Rokas <vrokas AT otenet.gr>
+
+       * src/pic16/glue.c (pic16emitStaticSeg): fixed bug with files
+       without source code but only variable initializers
+
+2004-07-20 Vangelis Rokas <vrokas AT otenet.gr>
+
+       * src/pic16/glue.c (pic16emitRegularMap): unused functions marked as
+       external are not declared as extern to reduce overhead while linking
+
+2004-07-20 Maarten Brock <sourceforge.brock AT dse.nl>
+
+        * src/SDCCast.c (decorateType): removed buggy fix for bug #979599
+
+2004-07-11 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * src/SDCCglue.c (printIvalArray): fixed bug #984229, thanks to Phuah
+          Yee Keat for the patch
+        * src/SDCCast.c (decorateType): fixed bug #979599
+        * src/ds390/gen.h: removed local fReturnSizeDS390
+        * src/ds390/gen.c: made fReturnSizeDS390 signed short to remove a warning
+        * src/ds390/gen.c (genAnd, genOr, genXor),
+        * src/mcs51/gen.c (genAnd, genOr, genXor): generate better optimized code
+
+2004-07-04 Vangelis Rokas <vrokas AT otenet.gr>
+
+       * src/SDCCmain.c (linkEdit): modifications only for pic16 port,
+       add relFilesSet to $3, manipulate $2 to handle linking of object
+       files without source files in command line,
+       * device/include/pic16 (all headers): added ID location macros,
+       * src/pic16/device.c (struct PIC16_device Pics16[]): added field
+       entries for ID location bytes,
+       * (pic16_assignIdByteValue): NEW,
+       * src/pic16/device.h: new structures idRegInfo_t and idBytesInfo_t,
+       added field dumpcalltree to pic16_options_t,
+       * src/pic16/gen.c (genCmp): fixed bug case so a temporary register
+       is used instead of pic16_Gstack_base_addr, check if (ifx) before
+       emitting rFalseIfx label after check_carry label,
+       * src/pic16/glue.c (PIC16_IS_IDLOC_ADDRESS, PIC16_IS_HWREG_ADDRESS,
+       pic16_emitDIRegs), NEW
+       * (pic16glue): dump .calltree file when option --calltree found,
+       * src/pic16/main.c (OPTION _pic16_optionsTable): new option --calltree
+       * (_pic16_genAssemblerPreamble): emit ID locations after
+       configuration registers,
+       * (pic16_linkCmd): modifications of the link command,
+       * src/pic16/pcode.c (pic16_pciMOVFF): PCC_REGISTER replaces PCC_REGISTER2
+       * (pic16_pCodeInitRegisters): don't init stack registers,
+       * (pic16_findPrevInstruction): fixed bug,
+       * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): fixed
+       bug with immediate registers,
+       * (buildCallTree): traces stack push and pop,
+       * (pct2): dump also stack usage for each function,
+       * src/pic16/ralloc.c (dynrIdx): registers names start from 0x00
+       * (pic16_allocDirReg): various modifications,
+       * (pic16_typeRegWithIdx): when searching pic16_dynProcessorRegs set
+       fixed to 1,
+
+2004-07-02 Vangelis Rokas <vrokas AT otenet.gr>
+
+       * src/pic16/pcode.c: removed buggy double colon
+
+2004-07-01 Borut Razem <borut.razem AT siol.net>
+
+       * support/scripts/sdcc.nsi: added include/pic16 to setup
+
+2004-06-30 Vangelis Rokas <vrokas AT otenet.gr>
+
+       * device/lib/Makefile.in: fixed bug in target objects-pic16,
+       * device/lib/pic16/Makefile: prefixed with dash (-) command under
+       target 'clean',
+       * doc/sdccman.lyx: changed version to 2.4.2 and added some port
+       specific command line arguments. Also added sample lkr script
+       for placing a variable at a specific memory bank.
+       * src/pic16/device.c (pic16_dump_gsection): NEW, to dump variables
+       at a specific memory bank,
+       * (pic16_dump_isection): fixed bug which caused string literals to
+       be omitted when dumping idata section,
+       * (pic16_groupRegistersInSection): added code to handle registers
+       in specific memory banks,
+       * src/pic16/gen.c: labelOffset is prefixed with pic16_ and made
+       public, all references are renamed too,
+       * (pic16_aopGet): removed switch cases for AOP_R0,AOP_R1,AOP_DPTR,
+       AOP_DPTR2,
+       * (pic16_storeForReturn): added case to handle when dest is WREG,
+       * src/pic16/genarith.c (pic16_pCodeOpSubType): NEW,
+       * src/pic16/glue.c (pic16emitRegularMap): when adding a register in
+       pic16_rel_udata, check to see if that register is marked as being
+       a member of a specific memory bank,
+       * (pic16_printIvalCharPtr): added code to add string literals either
+       to code or the idata sections,
+       * src/pic16/main.c (_process_pragma): added \n to WHITE constant,
+       also accept the 'udata' pragma,
+       * src/pic16/main.h: new structure types sectName and sectSym
+       * src/pic16/pcode.c: added new pCodeInstruction entry for BANKSEL
+       * (newpCodeOpBit): added PIC_OPTYPE subt in function prototype,
+       * (pic16_findPrevInstruction): fixed, it returned nothing,
+       * (insertBankSwitch): fixed to emit banksel/skip and skip/banksel
+       instruction combinations,
+       * (pic16_FixRegisterBanking): heavily reorganised,
+       * (pic16_AnalyzeBanking): if generating banksel directives is
+       disabled, then don't call FixRegisterBanking at all,
+       * src/pic16/ralloc.c (bitEQUs, aliasEQUs, allDefsOutOfRange):
+       completely removed,
+       * (pic16_writeUsedRegisters): added call to pic16_dump_gsection
+
+2004-06-29 Bernhard Held <bernhard AT bernhardheld.de>
+
+       * src/SDCCglue.c (printChar): fixed bug #973350, patch provided by
+       Phuah Yee Keat <yk.phuah AT nestac.com>
+
+2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
+
+       * src/pic16/glue.c (pic16createInterruptVect): function now emits
+       correctly the IVT even if it is relocated to some other location
+
+2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
+
+       * device/include/pic16/pic18fregs.h: added case for pic18f2220.h
+       * device/include/pic16/pic18f2220.h: NEW,
+       * device/lib/pic16/libdev/pic18f2220.c: NEW,
+       * device/lib/pic16/libdev/Makefile: added 18f2220 in DEVS,
+       * src/pic16/device.c (struct Pics16): added info for 18f2220,
+       * src/pic16/device.h (struct pic16_options): added ivt_loc and
+       nodefaultlibs, ivt_loc is the location of the interrupt vector
+       table, and nodefaultlibs signs that default libraries should not be
+       linked in link stage,
+       * src/pic16/gen.c (genFunction): relocate interrupt vector functions
+       according to --ivt-loc argument,
+       * src/pic16/main.c (_process_pragma): emit '_stack' as public symbol
+       when pragma stack is found,
+
+2004-06-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
+
+       * src/mcs51/peeph.def: added peepholes 182.d (return 0.0),
+       256 (range check), 257 (do while), 258.a-f (bit banging
+       f.e. on 3-wire SPI bus)
+
+2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+       * src/SDCClrange.c (findNextUseSym): fixed a live range bug with
+       variables used exclusively within a loop
+
+2004-06-21 Bernhard Held <bernhard AT bernhardheld.de>
+
+       * src/mcs51/gen.c (genCpl): quick fix for bug #974835
+
+2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+       * src/SDCClrange.c (computeClash): fixed bug #971834
+
+2004-06-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+       * src/mcs51/gen.c (genCmp): fixed bug #975903
+       * src/hc08/gen.c (operandsEqu),
+       * src/ds390/gen.c (operandsEqu),
+       * src/z80/gen.c (operandsEqu),
+       * src/pic/gen.c (operandsEqu),
+       * src/pic16/gen.c (operandsEqu),
+       * src/mcs51/gen.c (operandsEqu): fixed bug #976283
+       * src/SDCCmain.c (parseCmdLine): report --unknown-option only once
+
+2004-06-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+       * src/SDCCcse.c (cseBBlock): fixed bug #966963
+
 2004-06-12 Vangelis Rokas <vrokas AT otenet.gr>
 
        * src/pic16/gen.c (genPointerGet): added E_INTERNAL_ERROR for
        * src/pic16/pcode.c (pic16_emitDB): number of DBs emitted is not
        configurable and set 8
 
-2004-06-07 Vangelis Rokas <vrokas AT otenet.gr>
+2004-06-08 Vangelis Rokas <vrokas AT otenet.gr>
 
        * .version: increased version number to 2.4.2,
 
        * src/z80/ralloc.c (serialRegAssign),
        * src/ds390/ralloc.c (serialRegAssign),
        * src/mcs51/ralloc.c (serialRegAssign): fixed bug #964479
-       
+
 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
 
        * src/SDCCicode.c (geniCodeJumpTable): fixed bug #967601
        command argument --denable-peeps, for testing,
         * device/lib/pic16/startup/Makefile: added --no-peep,--pomit-config-words,
         --pomit-ivt in COMPILE_FLAGS
+
 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
 
        * src/pic16/pcode.c (pic16_emitDB): removed double semicolon which fails
   * as/mcs51/aslink.h: accept everything as symbol name in rel-files, bug fix ID 452601
   * as/mcs51/lklex.c:  accept everything as symbol name in rel-files, bug fix ID 452601
   * as/mcs51/lksym.c:  accept everything as symbol name in rel-files, bug fix ID 452601
+
+$Revision$
\ No newline at end of file