X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=ChangeLog;h=d50f997b120002d2f58b1c98cef44e3fbf620c8e;hb=3774d10bc17b9409d341b4897b7f332003cec3cb;hp=617213d970538097304222744c350ab8e0d510bf;hpb=e29f063119f26b54fe88c61fa3d797375e821a08;p=fw%2Fsdcc diff --git a/ChangeLog b/ChangeLog index 617213d9..d50f997b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,9 +1,442 @@ +2004-02-29 Borut Razem + + * src/Makefile.in, src/SDCCutil.c, support/Util/findme.c, + support/Util/findme.h, support/Util/system.h: enhance binary relative + search for lib and include by using findProgramPath() + +2004-02-28 Erik Petrich + + * src/SDCCpeeph.h, + * src/SDCCpeeph.c (pcDistance), + * src/port.h, + * src/mcs51/ralloc.h, + * src/mcs51/ralloc.c (mcs51_regWithIdx), + * src/mcs51/main.h, + * src/mcs51/main.c (instructionSize, asmLineNode, updateOpRW, + mcs51opcodeCompare, asmLineNodeFromLineNode, getInstructionSize, + mcs51operandCompare, getRegsRead, getRegsWritten): made instruction + size calculation port specific, started basis for some register + optimizations + * src/mcs51/gen.c (genFunction, genEndFunction): added case to handle + missing push/pop of r0/r1. Optimized push/pops + * src/mcs51/ralloc.c (packregisters): fixed bug #727095 + * device/lib/_modsint.c (_modsint), + * device/lib/_modslong.c (_modslong): fixed sign of result in non-asm + and stack version so regression tests pass + +2004-02-26 Bernhard Held + + * src/Makefile.in (dep): include SLIBOBJS in dependency check + * src/SDCCast.c (decorateType): catch another small optimization + with '?' operator + * src/SDCCsymt.c (computeType): added comments and cosmetic changes + * src/SDCCval.c (valMult, valDiv, valMod, valPlus, valMinus, valShift): + modified to finally use computeType() all over SDCC, + see Feature Request #877103 + * src/SDCCval.h: cosmetic + * src/SDCCicode.c (operandOperation): fixed EQ_OP bug, now same as in + valCompare(); regression tested in muldiv.c + * support/regression/tests/muldiv.c (testMod): mod sign follows + dividend only + +2004-02-23 Bernhard Held + + * src/SDCCast.c (decorateType): fixed bug #902362 + * doc/INSTALL.txt: fixed install instructions for win32 + +2004-02-21 Bernhard Held + + * device/include/Makefile.in (install): fixed by replacing spaces + by tabs + * doc/README.txt, + * doc/INSTALL.txt: updated for release + * doc/sdccman.lyx: added warning for --xstack being buggy + +2004-02-20 Bernhard Held + + * src/pic16/ralloc.c (packRegsForAccUse): disabled functions with #if + to eliminate build warnings. + * src/pic16/gen.c (pic16_popGet): fixed for gcc 2.95.4 + +2004-02-20 Vangelis Rokas + Hans-Juergen Dorn + + * doc/sdccman.lyx: removed PIC16 from PIC16 Port Specific Options, + removed -penable-stack, added comment for stack pragma, added + warning for not initializing the stack/frame registers, removed + comment at interrupts section + + Stack is made permanent, there is no ability to disable stack usage. + * src/pic16/device.h, + * src/pic16/device.c: removed all references to USE_STACK macro, + * src/pic16/device.c (pic16_dump_section): when no elements in + rlist, free rlist before return, + * (pic16_dump_int_registers): NEW, internal registers are a new set + of general purpose registers reused by each function, + * (checkAddReg): returns 1 if registers is added to set, + * (pic16_groupRegistersInSection): when a registers is of type + PO_GPR_TEMP add it in pic16_int_regs and not in pic16_rel_udata, + * src/pic16/device.h: memRange and Assigned Memory are deleted, + SRCASECMP macro is moved here from device.c + * src/pic16/genarith.c (pic16_pCodeOpType): added cases for + PO_PCLATU, PO_PRODL, PO_PRODH, + * (pic16_pCodeOpType, genMinus, + changed compares to "a" register, with AOP_ACC, + * (pic16_genPlus): fixed some bugs and indented properly, + * (pic16_addSign): changed size to size+offset in the MOVWF + instruction, + * (pic16_genUMult8XLit_8): NEW, uses processor MULLW instruction to + multiply 8-bit operand by literal, result is 8-bit, + * (pic16_genUMult8X8_8): NEW, uses processor MULWF instruction to + multiply 2 8-bit operand, result is 8-bit, + * (pic16_genMult8X8_8): modified to call genUMult8X*_8 functions and not + genUMult8X*_16, + * src/pic16/gen.c: changed accUse to contain WREG only, + * (pic16_emitcomment): renamed to pic16_emitpcomment, + * (aopForSym): allocated dir register when IN_DIRSPACE(space) is, + true, do not use immediate addressing any more unless sym is a + pointer in codespace, + * (aopForRemat): do not use immediate addressing when symbol not in + codespace and when symbol's address is requested, + * (aopOp): for-loop in if(sym->accUse) is modified for the new + accUse size (= 1), + * (aopGet): added case for AOP_ACC and don't return "accumulator + bug" but WREG instead, + * (popGetTempReg): pushes contents of temporary register in stack, + * (popReleaseTempReg): pops contents of temporary register from + stack. Use popGetTempReg/popReleaseTempReg in aligned pairs, + * (pic16_popGet): separated case AOP_ACC to return register WREG + from processor registers, AOP_PCODE not checks if pcop is PO_DIR + or PO_IMMEDIATE and initializes their instance/offset appropriately, + * The whole issue with aopForSym,aopForRemat,popGet) is to minimize + the use of immediate pointers to certain cases only. + + * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): use pic16_popGet2p, + * (pic16_loadFromReturn, pic16_storeForReturn: NEW, + * (assignResultValue, genCall, genRet): modified to use the new + function return value scheme with WREG,PRODL,PRODH,FSR0L and FSR0, + genPcall is still broken, + * (genFunction): added code to create 'A' type pBlocks when + interrupt functions are generated, code not extensively tested yet, + ISRs push WREG,STATUS,BSR,PRODL,PRODH,FSR0L,FSR0H registers on stack, + * (genEndFunction): modified so ISRs pop stored registers from stack, + * (genMultOneByte): cleanup, + * (AccRsh): added flag andmask, to and result with appropriate mask, + * (genUnpackBits,genPackBits): fixed and can handle bit fields, + * (genDataPointerGet): fixed and reenabled its use, + * (genNearDataPointerGet): bugs fixed, + * (genDataPointerSet): bugs fixed, + * src/pic16/genutils.c: added functions pic16_DumpValue,pic16_DumpAop, + pic16_DumpSymbol, pic16_DumpOp, + * src/pic16/genutils.h: function prototypes for the above functions, + * src/pic16/glue.c: new flags initsfpnt, to initialize stack/frame + pointers, + * (pic16emitRegularMap): many many many improvements, but needs a + major cleanup, + * src/pic16/main.c: enable_stack in pic16_options is removed, + * (_pic16_parseOptions): removed command line options -penable-stack, + * (_process_pragma): emit stack symbol only when stack pragma is + processed, + * src/pic16/pcode.c: pic16_pc_fsr0 is removed, all operations are + redirected to FSR0L/FSR0H pair, + * (pic16_get_op, pic16_get_op2): modifications and improvements, + * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added + cases PO_PRODL,PO_PRODH, pic16_getRegFromInstruction2 returns sane + for immediates, + * (insertBankSwitch): modified to handle cases like: (alfa + 1) + * (dumpPicOptype): NEW, + * src/pic16/pcode.h: added PO_PCLATU,PO_PRODL,PO_PRODH in enum, + * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed bug + with movff instruction, + * src/pic16/ralloc.c: renamed typeRegWithIdx to pic16_typeRegWithIdx, + added pic16_int_regs, some packRegsFor* functions are commented out, + because produce errors, + * src/pic16/NOTES: minor modifications + +2004-02-18 Jesus Calvino-Fraga + + * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c, as/mcs51/lkmain.c, + as/mcs51/lkmem.c, src/SDCCglob.h, src/SDCCmain.c: added options --stack-size and + --pack-iram. + * doc/sdccman.lyx: described options --stack-size and --pack-iram. + * as/mcs51/lkaomf51.c: fixed bug #895763 + +2004-02-17 Bernhard Held + + * device/include/c8051f320.h: added. Contributed by Maarten Brock. + +2004-02-17 Erik Petrich + + * doc/sdccman.lyx: added details about the HC08 storage classes and + interrupts, fixed the register usage info for z80 & gbz80 + +2004-02-17 Vangelis Rokas + + * doc/sdccman.lyx: added more pic16 port documentation + * device/include/pic16/: added header pic18fregs.h + +2004-02-16 Bernhard Held + + * doc/sdccman.lyx: added Vangelis' contribution + +2004-02-16 Erik Petrich + + * src/SDCClrange.c (rlivePoint): live range of SEND operand should + extend to the next CALL or PCALL, not just to the next CALL. + +2004-02-16 Vangelis Rokas + + * src/pic16/gen.c (genInline): fixed bug #896482 with inline assembly + +2004-02-15 Erik Petrich + + * src/mcs51/ralloc.c (packRegsForAssign, reassignAliasedSym): fixed + bug #895752 and a better fix for bug #716790 + +2004-02-15 Erik Petrich + + * src/SDCCsymt.c (processFuncArgs): fixed bug #896796 + +2004-02-14 Frieder Ferlemann + + * doc/sdccman.lyx: minor changes, minor changed + +2004-02-13 Bernhard Held + + * src/SDCCicode.c (usualBinaryConversions): removed pic16 from ports + which can't handle SDCC_NEWONEBYTEOPS, + (geniCodeMultiply): removed conversion from mult to shift for pic14 + and pic16 + +2004-02-12 Erik Petrich + + * src/hc08/gen.h, + * src/hc08/gen.c (storeRegToAop, aopOp, aopAdrStr, accopWithAop, + rmwWithAop): Ported my 2003-10-02 fix for bug #663539 to the hc08, + thus fixing bug #895406 + +2004-02-11 Bernhard Held + + * device/lib/_modsint.c, + * device/lib/_modslong.c: sign follows divisor only + * src/hc08/gen.c (genMultOneByte): if result size is 1, + signs or signedness can be ignored + * src/SDCCast.c (addCast): cosmetic - added lineno to CAST + * src/SDCCast.c (resultTypePropagate): added even more ops: +, - and *, + added optimization for IFX, + (decorateType): Mult/Div/ModOneByte ops can handle all kind of signed + arguments; + reenabled optimization for IFX, which was removed on 2004-01-11 + * src/SDCCast.h: added return type IFX + * src/SDCCicode.c: Mult/Div/ModOneByte ops can handle all kind of signed + arguments with 8 or 16 bit results; pic14 and pic16 ports use old + promotion behaviour; env. var. SDCC_NEWONEBYTEOPS selects the new, + SDCC_OLDONEBYTEOPS selects the old behaviour + * src/SDCCsymt.c (computeType): type2 can be NULL (for LEFT_OP); + changed again and commented promotion rule + * src/SDCCval.c (valDiv): promotion no longer necessary + * src/ds390/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte), + * src/mcs51/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte): + rewritten + * support/regression/tests/onebyte.c: added + +2004-02-11 Vangelis Rokas + + * gen.c (genInline): reverted to old code for assemnling inline + code because of bug reported James Chadd + +2004-02-10 Vangelis Rokas + + * ralloc.h: missing declarations from previous patch, + seems that patch for ralloc.h was never applied, fixed + +2004-02-10 Hans-Juergen Dorn + patch committed by Vangelis Rokas + + * pcode.c, + * pcode.h, + * ralloc.h: added FSR0L, FSR0H and other missing PIC16 SFR's for + indirect addressing. Marked FSR0 as deprecated + * gen.c (pointerCode): commented out, not needed now + (pic16_popGet2p): new MOVFF helper function + (genGenPointerGet), + (genGenPointerSet): reimplemented with MOVFF and POSTINC0 + (shiftRLong): removed duplicate debugging info + +2004-02-10 Erik Petrich + + * src/ds390/gen.c (genNearPointerGet), + * src/mcs51/gen.c (genNearPointerGet): allow the genDataPointerGet() + optimization with bits, but not bitfields. + * src/ds390/ralloc.c (packRegisters), + * src/mcs51/ralloc.c (packRegisters): fixed bug #884453 & #880832 + +2004-02-09 Bernhard Held + + * src/SDCCcse.c (algebraicOpts): copy operands before modification + +2004-02-09 Erik Petrich + + * src/SDCCsymt.h, + * src/SDCCicode.c (operandFromSymbol), + * src/mcs51/ralloc.c (verifyRegsAssigned, serialRegAssign), + * src/ds390/ralloc.c (verifyRegsAssigned, serialRegAssign), + * src/z80/ralloc.c (verifyRegsAssigned, serialRegAssign), + * src/hc08/ralloc.c (verifyRegsAssigned, serialRegAssign), + * src/pic/ralloc.c (verifyRegsAssigned, serialRegAssign), + * src/pic16/ralloc.c (verifyRegsAssigned, serialRegAssign): fixed + bug #892038 + * src/SDCCast.c (createIvalStruct, createIvalArray, gatherAutoInit), + * src/SDCCglue.c (emitRegularMap, printIvalStruct, printIvalArray, + printIvalCharPtr, printIvalPtr, printIval, emitStaticSeg, emitOverlay) + * src/SDCCsymt.c (newSymbol), + * src/SDCC.y (struct_or_union_specifier, enum_specifier, + enumerator_list), + * src/SDCCval.h, + * src/SDCCval.c (newiList): fixed bug #885705 + +2004-02-08 Jesus Calvino-Fraga + + * doc/sdccman.lyx: added section 3.1.4: sdcclib. + * as/mcs51/lkmem.c: report the size of the stack in .mem file. + +2004-02-08 Frieder Ferlemann + + * device/include/c8051f120.h, + * device/include/c8051f300.h, + * device/include/c8051f310.h: added/updated header files for Silicon + Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock. + * doc/sdccman.lyx: minor changes, recommended diff -Naur and diff -u + in new section Submitting patches + +2004-02-08 Erik Petrich + + * src/mcs51/gen.c (genNearPointerGet, genPagedPointerGet, + genFarPointerGet, genCodePointerGet, genGenPointerGet, + genNearPointerSet, genPagedPointerSet, genFarPointerSet, + genGenPointerSet), + * src/ds390/gen.c (genNearPointerGet, genPagedPointerGet, + genFarPointerGet, genCodePointerGet, genGenPointerGet, + genNearPointerSet, genPagedPointerSet, genFarPointerSet, + genGenPointerSet), + * src/pic16/gen.c (genNearPointerGet, genPagedPointerGet, + genFarPointerGet, genCodePointerGet, genGenPointerGet, + genNearPointerSet, genPagedPointerSet, genFarPointerSet, + genGenPointerSet), + * src/pic/gen.c (genNearPointerGet, genPagedPointerGet, + genFarPointerGet, genCodePointerGet, genGenPointerGet, + genNearPointerSet, genPagedPointerSet, genFarPointerSet, + genGenPointerSet): fixed bug #892400 + * src/pic16/gen.c (genSkipz, AccRol): disabled functions with #if 0 + to eliminate build warnings. + * src/SDCCast.c (processParms), + * src/SDCC.y (function_declarator2, declarator2_function_attributes): + fixed bug 751859 + * support/valdiag/valdiag.py: added GCC to the list of defines active + when compiling with gcc + +2004-02-07 Erik Petrich + + * support/Util/SDCCerr.h, + * support/Util/SDCCerr.c, + * src/SDCCast.c (decorateType, sizeofOp): complain when sizeof is used + with an incomplete type (fixed bug #883734) + * src/SDCCicode.c (geniCodeCast): fixed bug #890510 + +2004-02-07 Erik Petrich + + * src/pic16/gen.c (genCmpEq, shiftRLong): fixed declarations + +2004-02-06 Erik Petrich + + * src/SDCCast.c (decorateType), + * src/SDCCicode.c (geniCodeParms, geniCodeCall): fixed bugs in my ANSI + function pointer implementation + * support/regression/tests/funptrs.c: added tests to verify both forms + of function pointers work correctly. Added tests to verify parameters + are passed in the correct order. + +2004-02-06 Vangelis Rokas + + * device.c (regCompare): registers are sorted by ascending + address and increasing size, + * main.c (_pic16_finaliseOptions): removed the declaration + of compiler macro MCU. Now a macro of the format pic18fxxxx + will be defined from the command line + +2004-02-06 Hans-Juergen Dorn + patch committed by Vangelis Rokas + + * pcode.c (pic16initMnemonics): fixed typo in assignment to PCOP_RLNCF + PCOP_RLCF was overwritten! + * gen.c (genSkip): commented out calls to pic16_emitcode, + * (genCmpEQ): fixed "long" compares, only high word did get compared, + * (genlshTwo), + * (genRRC): added debugging info, + * (shiftL2Left2Result): Fixed bug, if offr > offl. Result got + overwritten while shifting, + * (shiftR2Left2Result): Fixed bug, if offr < offl. Result got + overwritten while shifting, + * (AccLsh), + * (AccRsh), + * (shiftLLeftOrResult), + * (shiftRLeftOrResult), + * (shiftRLong), + * (shiftLLong): Implemented with pic16_emitpcode + * (genlshFour): Replaced pic16_aopPut with pic16_emitpcode, + * (genLeftShift): Fixed bug, operand for shift by variable always + was "and"ed with 0x0f, + * (genLeftShiftLiteral), + * (genrshTwo), + * (genRightShiftLiteral): added debugging info, + * (genrshFour): added comment, + * (genRightShift): determined signedness from operand "left" + instead of "result" + +2004-02-04 Erik Petrich + + * src/SDCCicode.c (geniCodeParms), + * src/SDCCast.c (decorateType, processParms): support for ANSI-style + function pointers, fixed function pointer bugs #861242 and #861896 + +2004-01-31 Frieder Ferlemann + + * device/include/c8051f000.h, + * device/include/c8051f120.h, + * device/include/c8051f300.h: added header files for Silicon + Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock. + +2004-01-31 Bernhard Held + + * src/SDCCast.c (processParams): added new type flow and restructured + (gatherAutoInit): added new type flow + (addCast): cosmetic changes + (getLeftResultType): added new type flow for array indices, patch + provided by Stas, see FR #877103 + (decorateType): SDCC_NEWTYPEFLOW removed, new type flow is now standard; + array index patch by Stas + * src/SDCCast.h: added prototype getResultTypeFromType() + * src/SDCCval.h, + * src/SDCCval.c (resolveIvalSym) (resolveIvalSym), + * src/pic/glue.c (pic14emitStaticSeg), + * src/pic16/glue.c (pic16emitStaticSeg), + * src/SDCCglue.c (emitRegularMap) (emitStaticSeg): added new type flow + for initialization of symbols + * src/SDCCicode.c (geniCodeArray): removed warning W_ARRAY_BOUND + * support/Util/SDCCerr.h: + * support/Util/SDCCerr.c: replaced W_ARRAY_BOUND by W_IDX_OUT_OF_BOUNDS + * .version: bumped version number to 2.3.8 + * device/include/Makefile.in (install), + * doc/Makefile (install): changed to 'rm `find ...`' construct to + avoid warnings + 2004-01-30 Bernhard Held * support/regression/tests/libmullong.c: fixed for 64 bit hosts Slade Rich fixed an optimization bug * src/pic/pcodepeep.c, * src/pic/pcoderegs.c + * doc/Makefile (install): added test for directory 2004-01-30 Erik Petrich