X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=ChangeLog;h=213ac05185aaddcb2352f099386562cee184c9fa;hb=67da89445478477cbda97171c16f8cc2666ce240;hp=5fdaf8cc12c9c99da7ae90f2568713cf83c025f9;hpb=fc41563d33a3da06336117a698f00206800e7827;p=fw%2Fsdcc diff --git a/ChangeLog b/ChangeLog index 5fdaf8cc..213ac051 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,374 @@ +2004-01-06 Bernhard Held + + * 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 + +2004-01-06 Vangelis Rokas + + 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 + + * 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 + + * 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 + + * 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 + + 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 + + * src/SDCCsymt.h: missing from yesterday's commits + +2003-12-31 Erik Petrich + + * 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 + + * src/SDCCglobl.h: missing from yesterday's commits + +2003-12-28 Erik Petrich + + * 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 + + * 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 + + * device/lib/ds390/tinibios.c (CpuSpeed): suppress unreachable code + warning + +2003-12-20 Erik Petrich + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + (committed by Erik Petrich on Frieder's behalf) + * src/mcs51/main.c: fixed the fix for bug #737001 + +2003-12-15 Borut Razem + + * support/scripts/sdcc.nsi: updated for NSIS 2.0 beta 4 + +2003-12-14 Erik Petrich + + * support/makebin/makebin.c: put output in binary mode + +2003-12-13 Frieder Ferlemann + + * 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 + + * 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 + + * 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 + + * 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 + + * src/z80/ralloc.c: set DISABLE_PACK_HL = 1 as a temporary fix to bug #855165 + +2003-12-10 Erik Petrich + + * src/SDCCdebug.c (outputDebugSymbols, outputDebugStackSymbols, dumpSymInfo): + gracefully handle NULL memmap pointers + +2003-12-08 Erik Petrich + + * 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 + + 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 + + * src/SDCCsymt.c (addSymChain, compareTypeExact): fixed bug #838241 again + +2003-12-01 Erik Petrich + + * device/lib/hc08/_mullong.c: Removed extra #endif + +2003-12-01 Erik Petrich + + * 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 + + * 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 + + * 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 * src/SDCCast.c (decorateType): disabled a transformation I added in