X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=ChangeLog;h=03d5dcfb4be5eec1bb64c3973ad0b6d28944df18;hb=f833cd818ea9013fd5de963f7844e4a05215b42d;hp=11ff71a66a1b3e4d985b2a01636d4c27276eaba0;hpb=59f36a6e785092bf8cfeba1c6d71b62e4ddc7544;p=fw%2Fsdcc diff --git a/ChangeLog b/ChangeLog index 11ff71a6..03d5dcfb 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,10 +1,411 @@ +2004-05-14 Jesus Calvino-Fraga + + * as/mcs51/lkmem.c, as/mcs51/lkaomf51: fixed bug 954173 + +2004-05-14 Erik Petrich + + * 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 + + * 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 + + * 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 + + * src/hc08/gen.c (genJumpTab, emitcode, genhc08code): fixed stack error + and inappropriate peephole optimization in jump tables + +2004-04-30 Jesus Calvino-Fraga + + * as/hc08/m08pst.c, + * src/SDCCglue.c: sdccopt works for the hc08 port now + +2004-04-27 Bernhard Held + + * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): fixed bug #942130 + +2004-04-27 Jesus Calvino-Fraga + + * as/hc08/lkelf.c: sdccconf.h is not available in WIN32 + +2004-04-24 Erik Petrich + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * as/link_hc08.dsp: Added as/hc08/lkelf.c to project. + +2004-04-20 Erik Petrich + + * 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 + + * 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 + + * as/mcs51/lkihx.c: Fixed bug #899105. + +2004-04-16 Jesus Calvino-Fraga + + * doc/sdccman.lyx: Added instructons on how to convert MSVC .dsw and + .dsp files from Unix to DOS. + +2004-04-16 Erik Petrich + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * src/SDCCast.c (addCast): don't cast float to char + * device/lib/libsdcc.lib: added _memmove + +2004-03-28 Bernhard Held + + * device/lib/large/Makefile: fixed parallel execution by + replacing `make` by `$(MAKE)` + +2004-03-28 Erik Petrich + + * src/hc08/gen.c (genPointerGetSetOfs): correctly handle 1 byte array + offsets (fixes bug #923936) + +2004-03-26 Bernhard Held + + * device/lib/small/Makefile: fixed parallel execution by + replacing `make` by `$(MAKE)` + +2004-03-23 Bernhard Held + + * device/lib/vprintf.c (vsprintf): minor optimization, see bug #801101 + +2004-03-23 Scott Dattalo + + * src/pic/gen.c (genCpl): multi-byte complements were not working. + * src/regression/Makefile: Regression test was not running. + +2004-03-23 Bernhard Held + + * 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 + + * 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 + * 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 + + * src/SDCC.y (labeled_statement): case and default no longer require + a following statement (RFE #893037) + +2004-03-19 Erik Petrich + + * 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 + + * 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 + + * 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 + + * 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 + + * device/include/mc68hc908qy.h: corrected declarations of FLBPR and + OSCTRIMVAL as noted in bug #916008 + +2004-03-14 Erik Petrich + + * 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 + + * src/ds390/main.c (_ds390_genAssemblerPreamble): cosmetic change, + made ds390 register extensions look less like error messages + 2004-03-12 Erik Petrich * src/SDCCglue.c (printIvalPtr): fixed bug with pointer initializer reported by Adam Wozniak in Sdcc-user list 2004-03-10 Bernhard Held - + * src/SDCCast.c (decorateType): fixed with bug and promotion in arithmetic optimizations, added debug output