X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=ChangeLog;h=8bb494c7b7fc7cf65332f22cfed1625886f363bc;hb=3e426896dde4a23fa67ba9a33811b2784154e0c9;hp=255e086dbc44f64aa8fb0a234625876468dce9e8;hpb=13bce9be22334b2b96daea87f24d4cf65803e2d6;p=fw%2Fsdcc diff --git a/ChangeLog b/ChangeLog index 255e086d..8bb494c7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,454 @@ +2006-03-20 Frieder Ferlemann + + * sim/ucsim/cmd.src/newcmdcl.h: applied patch fixing GCC 4.1 build + submitted by the Debian SDCC maintainer Aurelien Jarno: + "Credits goes to Martin Michlmayr, who rebuilt the whole Debian + archive with gcc 4.1 on mips and wrote the patch" + +2006-03-16 Raphael Neider + + * src/pic16/genarith.c (genAddLit): simplified and fixed case where + the left operand is shorter than the result (c* = lit-c* + int), + fixes bug #1450796 + * src/pic16/gen.c (genRightShift): check IS_SYMOP before accessing + OP_SYMBOL + +2006-03-14 Vangelis Rokas + + * src/.version: increased version number to 2.5.5 + * src/SDCCmain.c (linkEdit): do not test for PIC16 target since, PIC16 + linking is done manually in pic16 port's _linkEdit, + * src/SDCCsymt.c (compStructSize): for target PIC16 and shell variable + PIC16_PACKED_BITFIELDS, compact bitfield structures as much as possible, + * src/pic16/gen.c (aopForSym): when direct register name is WREG then + allocate asmop as AOP_ACC, + (aopForRemat): added parameter 'bool result' in function declaration, + (pic16_aopGet): return AOP_ACC when accessing WREG, + (pic16_popGetTempReg): minor modification, + (pic16_popRegFromIdx): first try with 'pic16_regWithIdx' then with + 'pic16_allocWithIdx', + (genPcall): removed ftype, usage of OP_SYM_TYPE asserted error when + calling function in absolute addresses, + (genAssign): take into account AOP_ACC asmop, + * src/pic16/pcode.c (pic16_newpCodeOpReg): minor modifications, + * src/pic16/pcoderegs.c: some debug functions and lines added, + * src/pic16/ralloc.c (decodeRegType): added but commented out, + * (pic16_typeRegWithIdx): search 'pic16_dynInternalRegs' for given + register too, + * (pic16_findFreeReg, pic16_findFreeRegNext): allocate new register via + call to allocReg, not by manually allocating a new one, + (pic16_assignRegisters): now before going through the register + allocating functions mark all registers as free. This eliminates some + side effects resulting from peephole parser done earlier in the backbone + +2006-03-13 Maarten Brock + + * src/SDCCicode.c (geniCodeLogic), + * src/SDCCast.c (decorateType): applied patch by Bernhard for rfe 1422617 + +2006-03-10 Maarten Brock + + * src/mcs51/gen.c (sameReg): new, checks if two aop regs are the same, + (genSend): bugfix, do not allocate and free twice, + (shiftRLong): handle partially overlapping aops + * support/regression/tests/bitopcse.c: fixed warning redefined idata + +2006-03-08 Borut Razem + + * support/regression/fwk/include/testfwk.h: added defines for xdata, idata + for pic16 + +2006-03-08 Maarten Brock + + * support/regression/tests/bug1409955.c: new, added + * src/mcs51/gen.h: changed asmop.freed:1 to asmop.allocated for tracking + * src/mcs51/gen.c (newAsmop): set asmop.allocated to 1, + (aopForSym, aopOp): increment asmop.allocated if reused, + (freeAsmop): decrement asmop.allocated and check for zero instead of + using asmop.freed, + (freeForBranchAsmop): use asmop.allocated instead of asmop.freed, + (genNot, genCpl, genUminus, genMinus, genMult, genDiv, genMod, genCmpGt, + genCmpLt, genAndOp, genOrOp, genAnd, genOr, genXor, genRRC, genRLC, + genGetHbit, genGetAbit, genGetByte, genGetWord, genSwap, + genLeftShiftLiteral, genLeftShift, genRightShiftLiteral, + genSignedRightShift, genRightShift, genDataPointerGet, + genPagedPointerGet, genFarPointerGet, genCodePointerGet, + genGenPointerGet, genDataPointerSet, genAssign, genCast): free asmop's + in reverse order from allocation, + (genPlus, genCmpEq): free asmop's in reverse order from allocation and + added swappedLR to keep track + * support/regression/fwk/include/testfwk.h: added defines for xdata, idata, + pdata & code for GCC, z80, gbz80 & hc08 + * support/regression/tests/zeropad.c: moved defines to testfwk.h + +2006-03-08 Raphael Neider + + * src/pic16/main.c (_hasNativeMulFor): fixed bug #1444425 + +2006-03-07 Maarten Brock + + * device/include/mcs51/c8051f410.h: new SiLabs mcu + * src/ds390/peeph.def: disabled 186.d and 227.a as fix for #1434401 + * support/regression/tests/array.c: added parenthesis, made arrays unsigned + +2006-03-06 Borut Razem + + * support/regression/ports/pic16/spec.mk: link with libm18f.lib, + made the linker quiet + +2006-03-06 Vangelis Rokas + + * src/pic16/gen.c (genPcall): fixed bug #1443644 + * src/pic16/device.h (struct pic16_options_t): added 'int CATregs' flag + which dumps before the function entry point a data byte which represents + the number of the local variables used by the specified function, added + 'xinst' for initial support for Extended Instruction Support, + * src/pic16/gen.c (aopForSym, pic16_aopGet): beautifications, + (pic16_testStackOverflow): do not prefix GSTACK_TEST_NAME with + port->fun_prefix anymore (may change later), + (genFunction, genEndFunction): do not store/restore local registers for + _main (this should take care the --main-return command line option in + the future), + (genOr): removed some legacy pic-port instructions, + * src/pic16/genarith.c (genAddLit): re-enabled old code because + performing operations with SFR's causes data to be written more than + once to each SFR. Perhaps SFRs should be handled in special cases... + * src/pic16/glue.c: macros BIG_ENDIAN and BYTE_IN_LONG are moved to + pcode.h + * src/pic16/main.c (_process_pragma): stack bound checking did not take + into account for stack starting position, + (struct OPTIONS pic16_optionsTable): added command line argument + --extended or -y for Extended Instruction Support, + * src/pic16/ralloc.c (pic16_decodeOp): added case for FUNCTION, + (deassignLRs): *** perhaps the most important change, old 'for' code + (commented out for reference), didn't account for some registers which + were left marked 'not free' after a pointer operation. The change + reduces register usage a lot in some cases + +2006-03-04 Borut Razem + + * support/regression/ports/hc08/spec.mk: remove *.asm in traget + _clean + * support/regression/tests/bug-524697.c: decreased array size for + mcs51 to fit into the internal RAM + * support/regression/Makefile.in: a little bit more verbose + +2006-03-03 Borut Razem + + * support/regression/fwk/lib/testfwk.c, + support/regression/fwk/include/testfwk.h: introduced function + _prints(), nonrecursive _printn(), call _initEmu() from main() + * support/regression/ports/gbz80/support.asm, + support/regression/ports/ucz80/support.asm, + support/regression/ports/z80/support.asm, + support/regression/ports/ds390/support.c, + support/regression/ports/hc08/support.c, + support/regression/ports/host/support.c, + support/regression/ports/mcs51/support.c, + support/regression/ports/xa51/support.c: added empty _initEmu() + function + * support/regression/ports/pic16/gpsim.cmd, + support/regression/ports/pic16/spec.mk, + support/regression/ports/pic16/support.c, + support/regression/Makefile.in: added pic16 regression test + +2006-03-01 Raphael Neider + + * src/pic16/gen.c (genPcall,pic16_derefPtr,genGenPointerGet, + genConstPointerGet): use safe way of generating MOVFF to cover + literals as well as registers, fixes bug #1440527 + * src/pic16/glue.c (pic16_printIvalBitFields): prevent NULL pointer + dereference + (pic16_printIvalUnion,pic16_isUnion): NEW, handle initialized unions + more correctly, fixes bug #1232186 + (pic16_printIval): use pic16_printIvalUnion() for initialized unions + * src/pic16/main.c (_pic16_linkEdit): reorder linker arguments to make + gplink guess the correct processor in more cases, applied patch + from Till Riedel attached to and fixing bug #1436552 + +2006-02-20 Frieder Ferlemann + + * support/regression/tests/array.c: added, contains check for #1434401 + * src/mcs51/peeph.def: disabled 186.d as temporary fix for #1434401 + +2006-02-16 Maarten Brock + + * device/include/mcs51/at89s8253.h: new, thanks to Krzysztof Polomka + * device/include/mcs51/at89S8252.h: fixed, thanks to Krzysztof Polomka + * device/include/mcs51/c8051f326.h, + * device/include/mcs51/c8051f340.h: new SiLabs mcu's + * device/include/mcs51/c8051f000.h, + * device/include/mcs51/c8051f018.h, + * device/include/mcs51/c8051f020.h: used () with __at, renamed IDLE,STOP to + PCON_IDLE,PCON_STOP and added sfr16 definitions + +2006-02-14 Maarten Brock + + * src/mcs51/gen.c (genPlus, genMinus, genMult, genGetAbit, genGetByte, + genGetWord): fixed bug 1409955 + +2006-02-14 Maarten Brock + + * device/include/hc08/mc68hc908gp32.h, + * device/include/hc08/mc68hc908jb8.h: removed AWUL, added PTA6 & PTA7 + +2006-02-13 Maarten Brock + + * src/SDCCast.c (constExprValue): return NULL if not a value + * src/SDCCglue.c (printIvalArray): fixed bug 1225568 + * src/hc08/gen.c(genUnpackBits, genUnpackBitsImmed): fixed bug 1019480 + * support/regression/tests/bitfields.c: enabled signed bitfield for all + +2006-02-13 Borut Razem + + * src/regression/ptrarg.c: added, fails due to bug #1430967 + * src/regression/Makefile: ptrarg.c added, ... + +2006-02-12 Maarten Brock + + * src/z80/gen.c (genUnpackBits): fixed bug 1019480 + * support/regression/tests/bitfields.c: enabled signed bitfield for z80 + +2006-02-11 Borut Razem + + * src/SDCCmain.c: Added "sdcc: Calling linker..." if --verbose, + print "Processor: xxx" message to stdout only if --verbose + +2006-02-11 Maarten Brock + + * src/SDCCglue.c (printIvalStruct): fixed bug 1426356 union initializer + * support/regression/tests/bug1426356.c: added + * support/regression/tests/bitfields.c: removed 2 tests + +2006-02-10 Maarten Brock + + * device/include/mcs51/at89c51snd1c.h: updated comments, see patch 1428901 + * device/include/mcs51/c8051f330.h, + * device/include/mcs51/c8051f350.h: used () with __at, renamed IDLE,STOP to + PCON_IDLE,PCON_STOP and added sfr16 definitions + * device/lib/_divsint.c, + * device/lib/_divuint.c, + * device/lib/_divulong.c, + * device/lib/_divulong.c: renamed a,b to x,y to avoid confusion, fixed + register bank bug for small stackauto + +2006-02-09 Maarten Brock + + * support/regression/fwk/lib/timeout.c: include for exit() + +2006-02-08 Maarten Brock + + * support/regression/ports/mcs51-xstack-auto/spec.mk: forgot -I(...)/mcs51 + * all.dsp: corrected several bin paths + * device/include/mcs51/c8051f120.h, + * device/include/mcs51/c8051f300.h, + * device/include/mcs51/c8051f310.h: used () with __at and renamed IDLE,STOP + to PCON_IDLE,PCON_STOP + * device/include/mcs51/c8051f320.h: see above, also added sfr16 definitions + * device/lib/printf_large.c (output_float): fixed bug 1388703 + * support/regression/tests/bug1057979.c: added test for bug 1388703 + +2006-02-08 Raphael Neider + + * src/pic/pcode.c (pciTRIS): fixed typo, + (BuildFlow,LinkFlow_pCode): added (disabled) debug output, + (LinkFlow): fixed handling of flows that end in a call, + (ReuseReg): perform safety check earlier + * src/pic/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed + to work with flows at the beginning of a pBlock, + fixes #1426557 (Symbol not previously defined), + (pic14_ReMapLiveRanges): NEW, destroy and rebuild register + usage information + (RemoveUnusedRegisters): update register usage info + * src/pic/ralloc.c (newReg): prevent duplicate registers from being + created, reuse existing ones instead + * src/pic/gen.c (genPcall): fixed #1424719 + +2006-02-07 Bernhard Held + + * link/z80/lkmain.c, + * link/z80/lklex.c, + * link/z80/lkdata.c, + * link/z80/aslink.h: fixed build on current cygwin: + replaced getline() by lk_getline() + +2006-02-01 Borut Razem + + * src/regression/add.c, src/regression/add2.c, src/regression/add3.c, + src/regression/add4.c, src/regression/and1.c, src/regression/and2.c, + src/regression/arrays.c, src/regression/b.c, src/regression/bank1.c, + src/regression/bool1.c, src/regression/bool2.c, + src/regression/bool3.c, src/regression/call1.c, + src/regression/compare.c, src/regression/compare10.c, + src/regression/compare2.c, src/regression/compare3.c, + src/regression/compare4.c, src/regression/compare5.c, + src/regression/compare6.c, src/regression/compare7.c, + src/regression/compare8.c, src/regression/compare9.c, + src/regression/configword.c, src/regression/for.c, + src/regression/inline.c, src/regression/mult1.c, + src/regression/nestfor.c, src/regression/or1.c, + src/regression/pointer1.c, src/regression/ptrfunc.c, + src/regression/rotate1.c, src/regression/rotate2.c, + src/regression/rotate3.c, src/regression/rotate4.c, + src/regression/rotate5.c, src/regression/rotate6.c, + src/regression/rotate7.c, src/regression/string1.c, + src/regression/struct1.c, src/regression/sub.c, + src/regression/sub2.c, src/regression/switch1.c, + src/regression/while.c, src/regression/xor.c, + src/regression/create_stc, src/regression/simulate, + src/regression/rt.sh, src/regression/Makefile: reenabled Scott's PIC14 + regression tests + * src/regression/gpsim_assert.h: added + +2006-01-28 Bernhard Held + + * src/ds390/gen.c (unsaveRegisters): fixed literal function pointer + ((void (code *) (void)) 0) (); + * as/hc08/aslex.c, + * as/hc08/aslink.h, + * as/hc08/asm.h, + * as/hc08/asmain.c, + * as/hc08/lkdata.c, + * as/hc08/lklex.c, + * as/hc08/lkmain.c, + * as/mcs51/aslex.c, + * as/mcs51/aslink.h, + * as/mcs51/asm.h, + * as/mcs51/asmain.c, + * as/mcs51/lkdata.c, + * as/mcs51/lklex.c, + * as/mcs51/lkmain.c, + * as/z80/aslex.c, + * as/z80/asm.h, + * as/z80/asmain.c: fixed build on current cygwin: + replaced getline() by as_getline() + +2006-01-27 Bernhard Held + + * src/SDCC.y: fixed bug #716242, exchanged pointer and function + declarator in the symbol chain + * src/SDCCsymt.h, + * src/SDCCsymt.c (processFuncPtrArgs): added, removes "(void)" + parameter list for function pointers + * src/SDCCast.c (decorateType): added call of processFuncPtrArgs() + * support/regression/tests/bug-716242.c: added + +2006-01-20 Bernhard Held + + * src/SDCCicode.c (geniCodeAdd, geniCodeArray): use char for array + offset if possible + * src/SDCCast.c (getLeftResultType): 255 fits in char, not 256 + +2006-01-18 Bernhard Held + + * src/SDCCast.c (backPatchLabels): fixed bug #1408066: made it + inifinitely recurseable, added static + * support/regression/tests/bug-1408066.c: added + +2006-01-17 Bernhard Held + + * src/SDCCicode.h, + * src/SDCCicode.c (newiTempPreheaderLabel, newiTempLoopHeaderLabel): + renamed, added possibility to create "postLoopLbl"-labels + * src/SDCCBBlock.c (iCodeBreakDown): renamed newiTempPreheaderLabel to + newiTempLoopHeaderLabel + * src/SDCCloop.c (newInduction, newRegion, backEdges, insertIntoLoop, + isNotInBlocks, addToExitsMarkDepth, createLoop, dominatedBy, + addDefInExprs, assignmentsToSym, isOperandInvariant, pointerAssigned, + hasNonPtrUse, loopInvariants, addressTaken, findInduction, + findDefInRegion, mergeRegions, ifMerged, mergeInnerLoops): made static, + (pinduction, pregion, hasIncomingDefs, findLoopEndSeq): disabled, + (basicInduction): fixed bug #136564, made static, + (loopInduction): changed parameter of basicInduction, made static, + (addPostLoopBlock): added + * src/SDCCloop.h: removed backEdges, pregion, pinduction, + loopOptimizations, addressTaken, findDefInRegion, hasIncomingDefs, + findLoopEndSeq + * support/regression/tests/bug-136564.c: added + * support/regression/ports/mcs51-xstack-auto/spec.mk: added + --std-sdcc99 to LIBSDCCFLAGS + +2006-01-16 Bernhard Held + + * src/SDCCicode.c (geniCodeIfx): fix bug 1406131: always false + while loop + * support/regression/tests/bug-1406131.c: added + +2005-12-31 Bernhard Held + + * src/SDCCast.c (decorateType): fix promotion of unary minus + * src/SDCCsymt.c (computeType): beautified + * src/SDCCval.c (cheapestVal): beautified, old non-Ansi version removed, + (valUnaryPM, valComplement): fix sign and promotion, + (valNot): ANSI: result type is int (SDCC: unsigned char) + * support/regression/tests/uminus.c: speedup by removing superflous + test case 'int' + * support/regression/tests/onebyte.c: added promotion and signedness + tests for unary minus + * support/regressions/tests/bug-477927.c: disable warning about + uninitialized variables + * support/regression/tests/not.c: added + +2005-12-28 Bernhard Held + + * device/lib/Makefile.in: added --std-sdcc99 to CFLAGS + * src/mcs51/gen.c (gen51Code): show final register usage after + fillGaps in asm with --i-code-in-asm + * src/SDCClrange.c (sequenceiCode, setLiveFrom, setLiveTo, + markLiveRanges, markAlive, findNextUseSym, findNextUse, unvisitBlocks, + incUsed, rliveClear, adjustIChain): made static, + (setFromRange): excluded because it's unused, + (findPrevUseSym, markWholeLoop): added, + (findPrevUse): rewritten; fixes bug 895992; now a complete search + through all branches of predecessors enables sdcc to emit the warning + W_LOCAL_NOINIT, marking of outermost loop was incomplete, + (rlivePoint): made static, added parameter emitWarnings which is only + true during the first run out of two, + (findRecursiveSucc, findRecursivePred): removed, + (computeLiveRanges): made static, added parameter emitWarnings, + (dumpIcRlive): added for debugging only + * src/SDCClrange.h: added boolean parameter to computeLiveRanges(), + removed prototype of setFromRange() + * src/SDCCopt.c (eBBlockFromiCode): added new parameter emitWarnings + in call of computeLiveRanges() + * support/regression/tests/bug-895992.c: added + * support/regression/tests/bug-971834.c: added + * support/valdiag/tests/bug-895992.c: added + * support/valdiag/tests/bug-971834.c: added + +2005-12-18 Raphael Neider + + * src/pic16/gen.c: added IS_DIRECT macro for "direct" operands, + (genUnpackBits): improved code for direct operands, + (genPackBits): improved code for literal assignment to bitfields + and for direct destination operands (no FSR indirection), + prevented redundant AND, fixes #1362800, + (AccLsh): added parameter to disable masking of the result + * src/pic16/pcode.c (pic16_safepCodeUnlink): fixed to work with + skip instructions with side-effects (like incfsz), + (pic16_pCodeIsAlive): suppress verbose output unless pcode_verbose, + * src/pic16/pcoderegs.c (RemoveRegsFromSet): removed annoying warning + * device/lib/pic16/Makefile.common.in: added --asm=@GPASM@ to CC, + fixes #1375263 + +2005-12-11 Bernhard Held + + * src/SDCCicode.c (geniCodeAssign): fixed bug 11369874, don't use + volatile variables as spill location + +2005-12-10 Bernhard Held + + * src/SDCCcse.c (findCheaperOp): fixed bug 1376320, copy signedness to + replacing literals + * support/regression/tests/bug-1376320.c: added + +2005-12-08 Raphael Neider + + * src/pic/device.c: renamed is_shared to pic14_is_shared + * src/pic/gen.c (genIfx): re-enabled handling of sbits + * src/pic/glue.c (emitSymbolToFile): added workaround for sbits, + (is_valid_identifier): added for above workaround + 2005-12-07 Maarten Brock * device/lib/Makefile.in: fixed to enable port-specific-objects