X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=ChangeLog;h=61accb82a155f20d4ae17d333433297ca9ebf97e;hb=67da89445478477cbda97171c16f8cc2666ce240;hp=1e3b1582848fd2fc5abaf4302e7d6166f4f7cdfe;hpb=2cc4017439441dbe210e4bf83a4d68f5b3d86339;p=fw%2Fsdcc diff --git a/ChangeLog b/ChangeLog index 1e3b1582..213ac051 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,9 +1,1451 @@ +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 + revision 1.188 (access to fields of a structure at an absolute address); + it breaks with bitfields, extern declarations, and gcse analysis. + * src/SDCCopt.c (isLocalWithoutDef): if ADDRESS_OF applied to a symbol, it + could be assigned through a pointer, so don't complain. + * src/SDCCast.c (astErrors), + * src/SDCCast.h, + * src/SDCCglue.c (emitRegularMap): fixed bug #847813 + +2003-11-26 Vangelis Rokas + + * src/pic16/main.c (_pic16_genIVT): fixed interrupt vector table + * src/pic16/main.c (_pic16_genAssemblerPreamble): re-enabled the + output of __config directives, since gpasm now supports them + * src/pic16/main.c (_pic16_finaliseOptions): define MCU + pre-processor macro, i.e. -DMCU=p18f452 + * src/pic16/ralloc.c: renamed packRegisters to pic16_packRegisters, + and modified to handle 'cast' icode similarly to '=' icode + * src/pic16/device.h (typedef struct PIC_device): added field + 'extMIface' to indicate that chip has external memory interface + * src/pic16/device.c: added chips 18F248, 18F258, 18F448, 18F458, + 18F6520, 18F6620, 18F6680, 18F6720, 18F8520, 18F8620, 18F8680, + 18F8720 + +2003-11-26 Erik Petrich + + * src/SDCC.y (pointer): fixed bug #846006 + * support/Util/SDCCerr.c: made W_PTR_TYPE_INVALID message clearer + * src/SDCCast.c (decorateType): fixed bug #846009 + * src/ds390/peeph.def, + * src/ds390/gen.c (genAnd, genOr), + * src/mcs51/peeph.def, + * src/mcs51/gen.c (genAnd, genOr): fixed bug #846777 + +2003-11-25 Erik Petrich + + Fixed several common-sub-expression bugs (#772861, #768380, & #755323) + * src/SDCCdflow.c + * src/SDCCcse.c + * src/SDCCcse.h + * src/SDCCBBlock.h + * src/SDCCBBlock.c + +2003-11-23 Klaus Flittner + + fixed bug #845089 + * src/SDCCbitv.h, + * src/SDCCbitv.c: added function to free a bitvector + * src/SDCClrange.h, + * src/SDCClrange.c: added function to recompute the liveranges + * src/avr/ralloc.c, + * src/ds390/ralloc.c, + * src/hc08/ralloc.c, + * src/mcs51/ralloc.c, + * src/pic/ralloc.c, + * src/pic16/ralloc.c, + * src/xa51/ralloc.c, + * src/z80/ralloc.c: recompute the liveranges after register packing + +2003-11-21 Klaus Flittner + + * src/SDCCloop.c (newInduction): fixed bug #845630 + +2003-11-21 Erik Petrich + + * src/SDCCsymt.c (compareTypesExact): disabled debugging output + inadvertantly left behind from my 2003-11-12 change + +2003-11-20 Erik Petrich + + Updated headers I neglected to commit yesterday. + * src/SDCClrange.h, + * src/SDCCicode.h + +2003-11-19 Erik Petrich + + * src/SDCCcse.c (algebraicOpts): fixed bug #773153 + * src/SDCClrange.c (rlivePoint): need to mark IC_RESULT used if POINTER_SET op + * src/SDCCopt.c (eBBlockFromiCode), + * src/SDCClrange.c (hashiCodeKeys, sequenceiCode, computeLiveRanges): seperated + the creation of the key hash table from the sequencing so it can be used + earlier (for some GCSE bug fixes still pending) + +2003-11-15 Frieder Ferlemann + + * src/mcs51/gen.c (genPlus): generate shortcut for adding 0xab00 + * support/regression/tests/addsub.c: testing genPlus shortcut + +2003-11-15 Borut Razem + + * src/SDCCmain.c: fixed bug #841645: -MM command line option passed to sdcpp + +2003-11-15 Erik Petrich + + * src/SDCCcse.c (cseBBlock): fixed bug #527779 + * src/SDCCcse.c (deleteGetPointers): rewrote so that the set + ordering is immaterial. + * src/SDCCdflow.c (mergeInExprs): fixed bug #587536 + +2003-11-14 Erik Petrich + + * src/SDCCicode.c (geniCodeAddressOf): fixed part of bug #840381 + * src/SDCCopt.c (replaceRegEqv, isLocalWithoutDef): fixed other part + (SIGSEV) of bug #840381 + * src/SDCCmain.c (linkEdit, assemble): fixed bug #841606 (don't + unlink new file before rename if new and old filenames are the same) + +2003-11-13 Frieder Ferlemann + + * src/mcs51/main.c: started fixing bug #737001 (SDCC not clearing + uninitialized variables) for the mcs51. Set environment variable + SDCC_GENRAMCLEAR to test. + xdata initialization slightly shorter + +2003-11-12 Erik Petrich + + * src/SDCCsymt.h, + * src/SDCCsymt.c (addSymTypeChain, compareTypesExact): fixed bugs + #838241 & 780691 (basicly the same bug) + * src/SDCCBBlock.c (iCode2eBBlock): fixed bug #840148 + * src/SDCCBBlock.c (iCodeFromeBBlock): fixed bug #840162 + +2003-11-11 Bernhard Held + + * src/SDCCmain.c (linkEdit): "fix" #834252 + +2003-11-11 Erik Petrich + + * src/SDCCast.c (removePostIncDecOps, removePreIncDecOps), + * src/SDCCast.h, + * src/SDCC.y: fixed bug #819403 + +2003-11-08 Erik Petrich + + * support/regression/fwk/lib/testfwk.c: printn is recursive and thus needs + the reentrant attribute. + * src/hc08/gen.c (genPackBits): added missing stack readjustment + * sim/ucsim/hc08.src/inst.cc (inst_mov): fixed bugs with mov instruction + simulation + * src/SDCCast.c (decorateType): fixed bug with storage class not being + updated during pointer dereference; f.e. ~(((char *)1)*) was being + erroneously reduced to a literal. + * src/hc08/ralloc.c (packRegisters, rematStr), + * src/hc08/gen.c (aopForRemat): allow literals to be rematerialized in + some cases + +2003-11-08 Frieder Ferlemann + + * src/mcs51/main.c: fixed bug #838385. Thanks to Josef Pavlik for finding and fixing + * doc/sdccman.lyx: changed from 'article' to 'book' + * doc/Makefile: readded test_suite_spec and cdbfileformat + +2003-11-08 Bernhard Held + + * device/include/stdlib.h: include malloc.h to comply with ANSI + * support/regression/tests/malloc.c: include stdlib.h instead of malloc.h + +2003-11-07 Frieder Ferlemann + + * doc/Makefile: sdccman.pdf should build with correct references (more info in commit msg) + * doc/clean.mk: also remove *.out files + * doc/sdccman.lyx: some additions, larger top/bottom margins + +2003-11-07 Erik Petrich + + * src/SDCC.y: fixed bug #837365 + * support/regression/tests/bitopcse.c + * src/hc08/gen.c (genPointerGet): Don't assume pointer operand is + a symbol (might be valop instead) + * device/lib/Makefile.in: added errno.c to HC08SOURCES + * device/lib/clean.mk: added hc08 to the cleaning list + +2003-11-04 Borut Razem + + * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h: reverted changes, + made 2003-11-04 + * support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c, + as/z80/aslist.c, as/z80/assym.c: removed inclusion of nonstandard malloc.h; + malloc is declared in standard stdlib.h + +2003-11-06 Erik Petrich + + * device/lib/hc08/Makefile: need to clean .rel not .o files + * src/hc08/gen.c (genDjnz): can't use djnz with extended addressing mode + +2003-11-06 Erik Petrich + + * src/port.h, + * src/hc08/main.c, + * src/mcs51/main.c, + * src/ds390/main.c, + * src/z80/main.c, + * src/avr/main.c, + * src/pic/main.c, + * src/pic16/main.c, + * src/xa51/main.c: added hasExtBitOp & oclsExpense functions to ports + * src/SDCCicode.c: changed several IS_FARSPACE tests to isOclsExpensive + tests (which uses the port's oclsExpense function) + * src/SDCC.y, + * src/SDCCast.c, + * src/SDCCicode.c, + * src/hc08/gen.c, + * src/ds390/gen.c, + * src/mcs51/gen.c: added support for the SWAP iCode (RFE #834167) + +2003-11-04 Erik Petrich + + * src/SDCCcse.c (ifxOptimize), + * src/SDCClabel.c (labelIfx, deleteIfx): When the condition to + an IFX iCode is volatile, convert to DUMMY_READ_VOLATILE instead + deleting the IFX iCode. + * src/hc08/ralloc.c: reduced unneeded slocs + * src/hc08/gen.c: fixed bug in asmopToBoolean + +2003-11-04 Borut Razem + + * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h, + support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c, + as/z80/aslist.c, as/z80/assym.c: decision to include malloc.h + transferred to configure + +2003-11-03 Bernhard Held + + Use headers defined in the C[++] standards: + * sim/ucsim/gui.src/serio.src/fileio.cc + * sim/ucsim/gui.src/serio.src/frontend.cc + * sim/ucsim/gui.src/serio.src/main.cc + * sim/ucsim/gui.src/serio.src/posix_signal.cc + * support/Util/NewAlloc.c + * as/hc08/lklibr.c + * as/mcs51/lklibr.c + * as/z80/aslist.c + * as/z80/assym.c + +2003-11-03 Jesus Calvino-Fraga + + * Added MSVC projects for hc08 assembler and linker: + all.dsp, config.dsp, sdcc.dsw, /as/hc08/as_hc08.dsp, + /as/hc08/link_hc08.dsp + +2003-11-03 Martin Helmling + + * debugger/mcs51/cmd.c: allows filename starting with digit(+ some debug) + +2003-11-02 Bernhard Held + + * src/SDCCmain.c (linkEdit): "fixed" again bug #833605 + +2003-11-01 Frieder Ferlemann + + * src/mcs51/main.c: xdata initialization is 13 bytes shorter now + +2003-10-31 Borut Razem + + * support/cpp2/cpplib.h, + support/cpp2/cpplib.c, + support/cpp2/cpplex.c, + support/cpp2/cppinit.c: introduced #pragma preproc_asm [ + | - ] + to switch _asm block preprocessing on / off. Default is + #pragma preproc_asm + + +2003-10-31 Borut Razem + + * support/cpp2/cpplex.c: Fixed _WIN32 problem with CR-CR-LF sequences + when outputting comment blocks (when executed with -C option) and + _asm (SDCPP specific) blocks + +2003-10-31 Erik Petrich + + * as/hc08/lkrloc.c (relr): Fixed ihx output, fixed lastAreaIndex warning + +2003-10-31 Klaus Flittner + + * src/SDCCcse.c (updateSpillLocation): fixed bug #808027 + +2003-10-31 Bernhard Held + + * src/SDCCmain.c (linkEdit): "fixed" bug #833605 + * src/SDCCast.c (decorateType): fixed bug #832664 + +2003-10-31 Borut Razem + + * support\cpp2\cpplex.c: fixed for SDCPP: + comments(when executed with -C option) and _asm blocks + were included even if they where in skipped #if block. + Applied solution from GCC cpp 3.3.2 + +2003-10-31 Borut Razem + + * src/SDCC.lex: sdcc now understands both formats: + '# ' and + '#line ' + * support/cpp2/cppmain.c: sdcpp now generates the standard + '# ' instead of former + '#line ' + +2003-10-30 Borut Razem + + * support/cpp2/cpphash.h, + * support/cpp2/cpplib.h + * support/cpp2/cpplex.c, + * support/cpp2/cppmain.c, + * support/cpp2/cppinit.c: fixed bug #828015 - Syntax variation for _asm character constants + +2003-10-30 Erik Petrich + + Fixed a number of problems revealed by bug #827883. + * src/SDCCloop.c (loopInvariants): Spill location of the + result operand should be recomputed if extracted from + a loop. Also, don't extract assignments of an iTemp + from a literal. + * src/SDCCast.c (isConformingBody): loop reversal should + not occur if the control variable is involved with a + relational operator. + +2003-10-28 Bernhard Held + + * .version: bumped to 2.3.6 to reflect the big improvements + made by Erik and Klaus. Thanks! + +2003-10-28 Klaus Flittner + + Replaced the livrange code. + * src/SDCClrange.c: added new LR code + * src/SDCCloop.c, + * src/SDCCBBlock.h: removed remainig parts from old LR code + * src/ds390/ralloc.c, + * src/ds390/gen.c: minor fixes to make it work with new code + +2003-10-28 Erik Petrich + + * as/hc08/asm.h, + * as/hc08/lkrloc.c, + * src/hc08/gen.c, + * src/hc08/ralloc.c: Fix various warnings related to the hc08 + * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): Fixed bug #829717 + (tweaked fix for bug #818696) + +2003-10-23 Erik Petrich + + * src/z80/ralloc.c (joinPushes): Fixed bug #828742 + +2003-10-23 Erik Petrich + + * src/SDCCmain.c, + * sdccconf_in.h: Fixed bug #828387 (--disable-hc08-port didn't work) + * src/mcs51/gen.c (gencjneshort), + * src/ds390/gen.c (gencjneshort): Made comparison with AOP_IMMD operand + more efficient (per Scott Bronson's suggestion) + +2003-10-22 Erik Petrich + + Extended the semantics of the critical keyword to include + individual statements. See RFE #827755 and #799831 + * src/SDCC.y + * src/SDCCicode.c + * src/SDCCopt.c + * src/SDCCast.c + * support/Util/SDCCerr.c + * support/Util/SDCCerr.h + * src/mcs51/gen.c + * src/ds390/gen.c + * src/hc08/gen.c + +2003-10-19 Borut Razem + + * src/SDCC.lex: fixed bug #825944 - defined yytext_ptr to make it compile with flex 2.5.31 + +2003-10-19 Erik Petrich + + * src/SDCCicode.c (geniCodePreInc, geniCodePreDec, ast2iCode): + Fixed bug #818696 + * src/SDCCast.c (ast_print): Fixed --dumptree so that preincrement + and predecrement operand is displayed + +2003-10-13 Bernhard Held + + * src/SDCCval.c (valMinus): fixed bug #826041 + +2003-10-15 Erik Petrich + + Some hc08 related updates that I missed earlier + * sim/ucsim/stypes.h + * support/regression/ports/hc08/spec.mk + +2003-10-15 Erik Petrich + + New target "hc08" for the Motorola 68hc08 family of micros + + * configure + * configure.in + * Makefile + * src/hc08/* + * src/SDCCmain.c + * src/port.h + * sim/ucsim/hc08.src/* + * sim/ucsim/configure.in + * src/ucsim/configure + * sim/ucsim/packages_in.mk + * as/hc08/* + * as/Makefile + * device/include/mc68hc908qy.h + * device/lib/hc08/* + * device/lib/Makefile.in + * support/regression/ports/hc08/* + * support/regression/Makefile + +2003-10-14 Erik Petrich + + * src/z80/gen.c: fixed bug revealed by ast_constant_folding.c + regression test + * src/ds390/gen.c (genCast): fixed bug #821957 + +2003-10-13 Bernhard Held + + * device/lib/logf.c: "fixed" overlay bug + * support/regression/ports/host/spec.mk: added m library + * support/regression/ports/mcs51-stack-auto/spec.mk: added float funcs + * support/regression/tests/float_trans: added (for Eric) + +2003-10-12 Bernhard Held + + * src/mcs51/gen.c (genCpl): fixed bug + http://sf.net/mailarchive/message.php?msg_id=6263915 + +2003-10-10 Bernhard Held + + * src/SDCCast.c (decorateType): added extended constant folding + * src/SDCCsymt.c (computeType): cleanup + * src/SDCCval.c (valShift): minor optimization + * support/regression/tests/ast_constant_folding.c: added + +2003-10-09 Erik Petrich + + * src/SDCCmain.c: removed some unintended changes + +2003-10-09 Erik Petrich + + * src/SDCCmain.c (setParseWithComma): fixed bug #816685 + * src/z80/gen.c: fixed part of bug #817589 + * src/SDCCsymt.c (checkFunction): fixed bug #817895 + +2003-10-08 Bernhard Held + + Replaced cast (void **) with (void *) to avoid gcc 3 warning: + * src/SDCCcflow.c + * src/SDCCcse.c + * src/SDCCdflow.c + * src/SDCClabel.c + * src/SDCClrange.c + * src/SDCCmem.c + * src/SDCCopt.c + * src/SDCCpeeph.c + * src/SDCCset.c + * src/avr/ralloc.c + * src/ds390/ralloc.c + * src/izt/ralloc.c + * src/mcs51/ralloc.c + * src/pic/ralloc.c + * src/pic16/ralloc.c + * src/xa51/ralloc.c + * src/z80/ralloc.c + * src/z80/gen.c: removed unused label "release:" + +2003-10-06 Borut Razem + + * src/SDCC.lex: removed definition of unused variables + save_optimize and save_options + +2003-10-06 Bernhard Held + + * clean.mk: removed '=' in "-maxdepth=1" + * src/SDCCloop.c: replace LRKLAUS with SDCC_LRKLAUS + * src/SDCClrange.c: replace LRKLAUS with SDCC_LRKLAUS + +2003-10-06 Borut Razem + + * src/SDCC.lex, src/SDCC.lex: use dbuf for "_asm" definitions; + my_unput() replaced by unput() + +2003-10-05 Bernhard Held + + * src/SDCCloop.c (assignmentsToSym, loopInduction): cast argument of + setToNull() to (void *) to avoid gcc3.x's warning: "dereferencing + type-punned pointer will break strict-aliasing rules" + Old LR behaviour is again default; Klaus' LR can be choosen by + defining the environment variable LRKLAUS + * src/SDCCBBlock.h + * src/SDCCloop.c + * src/SDCClrange.c + * src/ds390/ralloc.c (spillThis): applied Klaus' patch + * clean.mk: fixed removal of files in bin/CVS/ + * device/lib/clean.mk: fixed removal of directories small and large + * support/Util/SDCCerr.c: changed W_INT_OVL to ERROR_LEVEL_PEDANTIC + * src/SDCCicode.c, + * src/SDCCval.c: removed superflous test for pedantic + +2003-10-05 Borut Razem + + * src/SDCC.lex, support/Util/SDCCerr.c, sdcc/support/Util/SDCCerr.h: + Fixed bug #816692: introduced new ERROR_LEVEL_PEDANTIC warning + message "unmatched #pragma SAVE and #pragma RESTORE" + +2003-10-04 Frieder Ferlemann + + * doc/sdccman.lyx: various additions and updates (interrupts, inline + assembly, critical functions, atomic, nojtbound) + +2003-10-04 Bernhard Held + + Applied liferange patch from Klaus Flittner + * src/SDCCBBlock.h + * src/SDCCloop.c + * src/SDCCloop.h + * src/SDCClrange.c + +2003-10-03 Erik Petrich + + * src/z80/gen.h, + * src/z80/gen.c (aopOp, aopGet, aopPut, genDummyRead), + * src/mcs51/gen.h + * src/mcs51/gen.c (aopOp, aopGet, aopPut, genDummyRead), + * src/ds390/gen.h + * src/ds390/gen.c (aopOp, aopGet, aopPut, genDummyRead), + * src/SDCCicode.c (ast2iCode, geniCodeDummyRead): Fixed bug #663539 + * src/SDCCopt.c (killDeadCode): Fixed bugs #663539 & #816705 + +2003-10-02 Erik Petrich + + * src/z80/gen.c (genRet): fixed bug #524753 + * src/z80/gen.c (genCast): fixed internal error on cast from + pointer to long + * src/z80/gen.c (_saveRegsForCall, emitCall): adapted Johan's + fix for bug #477835 to the z80 + * src/z80/gen.c (genZ80code, _vemit2, _emit2): added support + for tracking iCodes in the peephole optimizer for z80 + +2003-10-01 Erik Petrich + + * src/SDCCicode.c (geniCodeJumpTable, geniCodeSwitch): fixed + the other part of bug #814548 + * src/SDCCpeeph.c (labelInRange): fixed bug #814558 + +2003-09-30 Bernhard Held + + * src/SDCCcse.c: fixed part of bug #814548 + +2003-09-28 Borut Razem + + * src/asm.c: rewrite of printILine() to use temporary file instead + a pipe + * src/xa51/main.c: commented out declaration of int rewinds + +2003-09-27 Erik Petrich + + * src/SDCCicode.c (geniCodeJumpTable): Fixed bug #813206 + +2003-09-26 Erik Petrich + + * src/SDCCdflow.c (computeDataFlow): Fixed bug #810746 + * src/asm.c (printILine): Fixed bug #811015 + +2003-09-22 Jesus Calvino-Fraga + + *link/z80/lklibr.c, as/mcs51/lklibr.c: Improved memory allocation and + freeing. + +2003-09-21 Erik Petrich + + * src/z80/gen.c (setupToPreserveCarry): Fixed bug #796955 + * src/z80/gen.c (setupPair, genMovePairPair): Fixed setupPair + to correctly handle general case of AOP_PAIRPTR + * src/z80/gen.c (aopGet, aopPut): Generalized AOP_PAIRPTR handling + +2003-09-21 Erik Petrich + + * src/mcs51/ralloc.c (fillGaps), + * src/ds390/ralloc.c (fillGaps): fixed bug #810093 (yet another + register positioning bug) + +2003-09-21 Bernhard Held + + * device/lib/_fsdiv.c: replaced (1<<31) by (1ul<<31) + +2003-09-19 Erik Petrich + + * src/mcs51/gen.c (loadDptrFromOperand, genFarPointerGet, + genCodePointerGet, genGenPointerGet, genFarPointerSet, + genGenPointerSet): handle AOP_DPTR correctly when loading dptr + (ralloc doesn't intentionally do this now, but perhaps later) + * src/mcs51/ralloc.c (serialRegAssign, fillGaps), + * src/ds390/ralloc.c (serialRegAssign, fillGaps): fixed some + register positioning bugs (Fixed bug #762602 and #795325) + * src/SDCCicode.c (geniCodeDerefPtr): Track output class correctly + (Fixed bug #808779) + * src/z80/gen.c: increased _vemit2's buffer[] to handle long + lines that --i-code-in-asm generates + +2003-09-18 Jesus Calvino-Fraga + + *link/z80/lklibr.c, as/mcs51/lklibr.c: Fixed Linux segfaults when + trying to fclose a FILE* that was already closed. + +2003-09-18 Erik Petrich + + * src/SDCCsymt.c (structElemType): fixed bug #808291 (members + of const struct should be treated as if const themselves) + +2003-09-18 Bernhard Held + + * src/SDCCval.c (valPlus, valMinus): fixed bug #808337 + +2003-07-06 Jesus Calvino-Fraga + + * support/librarian/sdcclib.c: Generate correct offsets for libraries with + Unix (/n) and DOS (/r/n) line terminations. + +2003-09-17 Erik Petrich + + * src/SDCCopt.c (cnvFromFloatCast, cnvToFloatCast): fixed + bug #613775 + +2003-09-16 Erik Petrich + + * src/mcs51/gen.c (genFunction, genEndFunction), + * src/ds390/gen.c (genFunction, genEndFunction): Moved save + and restore of EA so that stack offsets to parameters are + correct when using both critical and reentrant/stack-auto. + * src/z80/gen.c (aopOp): removed erroneous assertion about sloc + size (can be triggered in error if sloc is shared between + different sized objects) + * device/include/float.h: fixed macros to explicitly use + unsigned long where needed + +2003-09-15 Bernhard Held + + Feature req. 799831: added code to allow nesting of critical functions + * src/mcs51/gen.c (genFunction, genEndFunction) + * src/ds390/gen.c (genFunction, genEndFunction) + +2003-09-14 Erik Petrich + + * src/SDCCsymt.c (sclsFromPtr), + * src/SDCCsymt.h, + * src/SDCCast.c (decorateType): fixed bug #462971. Also, better + support for standard C idiom of memory mapped variables; for + example, *((xdata int*)0x1234) = 1 is now internally equivalent + to xdata int at 0x1234 tempvar = 1. + * sim/ucsim/z80.src/inst_xd.cc: fixed bug #805483 with patch + provided by Akiya ISHIDA + +2003-09-13 Bernhard Held + + * src/SDCCval.c (cheapestVal): reenabled to reduce int to char + * src/SDCCval.c (constVal): added reduction from int to char + * src/SDCCval.c (valMult, valDiv): fixed sign handling + * src/SDCCval.c (valShift): fixed after change of cheapestVal() + * src/SDCCval.c (valCompare): fixed EQ_OP and NE_OP; they have + to ignore the sign + * support/regression/tests/shifts.c: fixed + +2003-09-13 Erik Petrich + + * src/z80/gen.c (genXor): Fixed bug #805445 + +2003-09-12 Erik Petrich + + Fixed bug #621531 (const & volatile confusion in the type chain). + DCL_PTR_CONST, DCL_PTR_VOLATILE, & IS_PTR_CONST now exclusively + refer to the const or volatile state of the pointer itself. + + * src/SDCCast.c + * src/SDCCglue.c + * src/SDCCicode.c + * src/SDCCsymt.c + * src/SDCCval.c + * src/SDCC.y + * src/SDCCsymt.h + * src/pic/gen.c + * src/pic/ralloc.c + * src/pic16/gen.c + * src/pic16/ralloc.c + * support/regression/tests/const.c + +2003-09-10 Jesus Calvino-Fraga + + When checking for duplicated modules, use absolute paths + instead of relative paths. Files changed: + + * as/mcs51/lklib.c + * link/z80/lklib.c + +2003-09-09 Erik Petrich + + * src/SDCCicode.c (geniCodeLogic): fixed bug #797572 + +2003-09-07 Erik Petrich + + * device/include/string.h: added size_t typedef, changed + prototypes to use size_t, eliminated separate reentrant and + non-reentrant declarations, added _memmove declaration + * device/lib/_memcpy.c: changed to use size_t instead of int, + changed /4 to >>2 to avoid division library call + * device/lib/_memcmp.c, + * device/lib/_memset.c, + * device/lib/_strncat.c, + * device/lib/_strncpy.c, + * device/lib/_strncmp.c: changed to use size_t instead of int + * device/lib/_memmove.c: new file (fixed bug #772294) + * device/lib/Makefile.in: added _memmove.c + * device/lib/z80/asm_strings.s: fixed bug #772290 + * support/regression/tests/bitfields.c: attempt to fix host assertion + failure on amd64-unknown-linux2.2 + +2003-09-06 Erik Petrich + + * src/z80/gen.c (aopPut, spillPairReg): fixed bug #800998 + * src/z80/gen.c (genFunction, genEndFunction): fixed "bug" #774700 + * as/z80/asmain.c (main): fixed bug #801766 + +2003-09-06 Bernhard Held + + * src/SDCCicode.c (ast2iCode): fixed differences in iCode with different + compilers + +2003-09-05 Erik Petrich + + * src/SDCCast.c (isConformingBody): fixed loop reversal bug + reported in bug #800609 + +2003-09-04 Vangelis Rokas + + * Top header beautifications in src/pic16 directory: + device.c, device.h, gen.c, gen.h, genarith.c, glue.c, pcode.c, + pcodeflow.c, pcodeflow.h, pcode.h, pcodepeep.c, pcoderegs.c, + pcoderegs.h, ralloc.c, ralloc.h + * main.c: added top header and GPL license notice + * pcode.c: fixed the if-conditional warning + +2003-09-04 Bernhard Held + + * device/lib/_mullong.c: replaced int by short for gcc + +2003-08-31 Erik Petrich + + * src/SDCCpeeph.c (notVolatile, notVolatileVariable): handle IFX + and JUMPTABLE iCodes properly now (worked by accident before) + * src/mcs51/gen.c (leftRightUseAcc), + * src/ds390/gen.c (leftRightUseAcc): handle IFX and JUMPTABLE + iCode properly now. Use getSize instead of nRegs since a & b + aren't part of the nRegs tally. + +2003-08-31 Vangelis Rokas + + * src/pic16/main.c: corrected offsets of interrupt vectors in _pic16_genIVT() + * src/pic16/pcode.c: fix to disable inserting BANKSEL directive + before instructions that use the _STATUS register + +2003-08-31 Bernhard Held + + * src/mcs51/gen.c (freeAsmop): fixed off by one in stack offset (AOP_STK) + * src/mcs51/gen.c (genNearPointerSet): added missing opcode for + fetching of the pointer + * src/mcs51/gen.c (genNearPointerGet): added reuse of PREG, + copied from genNearPointerSet() + * src/mcs51/gen.c (genNearPointerGet): don't pop r0/r1, if RESULTONSTACK + * src/mcs51/gen.c: changed order of freeAsmop(left/right/result)-calls. + If they pop r0/r1 they must be called in the opposite order than aopOp(). + * device/lib/_mullong.c: fixed for "--model-large --int-long-reent" + (resp. --stack-auto), prepared for --xstack + +2003-08-28 Frieder Ferlemann + + * doc/sdccman.lyx: reverted tables to those in cvs 1.64 + +2003-08-28 Bernhard Held + + * device/lib/_startup.c: quick & dirty fix for ds390/ds400; + these ports have their own __sdcc_external_start() + +2003-08-26 Bernhard Held + + pic patch provided by Slade Rich + * src/pic/glue.c (pic14printPublics): fixed bug introduced when symbol + type for bits was changed. It resulted in bit variables becoming + global, which is not permitted in PIC 14 assembly output. + +2003-08-23 Frieder Ferlemann + + * doc/sdccman.lyx: various additions and updates. Rearranged sections + +2003-08-22 Jesus Calvino-Fraga + + Z80 and MCS51 linkers complaint if a public symbol is defined + in more than one library module: + + * as/mcs51/lklib.c + * link/z80/lklib.c + * as/mcs51/Makefile.in + +2003-08-22 Erik Petrich + + A few small changes that speed up the peephole optimizer. + + * src/SDCCpeeph.c + +2003-08-22 Erik Petrich + + Try to make the peephole optimizer smarter by maintaining + an association between the assembly source code and the + iCodes that originated them. Put this information to use + with a new peephole rule condition "notVolatile" so that + the rules can be aggressive yet still safe. + + * src/SDCCpeeph.c + * src/SDCCpeeph.h + * src/mcs51/gen.c + * src/mcs51/peeph.def + +2003-08-20 Erik Petrich + + Fixed bug #741761 + + * src/mcs51/gen.c (aopForSym, leftRightUseAcc), + * src/ds390/gen.c (aopForSym, leftRightUseAcc): preserve A and B + if the left or right operand symbols have the accuse flag set. + +2003-08-20 Erik Petrich + + Changed the type of the result of the ! (NOT) operator to char; + previously it returned the same type as the source. This allows + us to eliminate all the genFloatNot functions (all of its target + implementations were very buggy) since !float can use the same + code as !long now. + + * src/SDCCicode.c (ast2iCode): ! returns char + * src/mcs51/gen.c (genNot, genNotFloat), + * src/ds390/gen.c (genNot, genNotFloat), + * src/z80/gen.c (genNot, genNotFloat), + * src/pic/gen.c (genNot, genNotFloat), + * src/pic16/gen.c (genNot, genNotFloat): eliminated genNotFloat + +2003-08-19 Bernhard Held + + pic patch provided by Slade Rich + 1. Interrupt would not compile properly. Ensure PCLATH register is saved + during interrupts. Ensure WSAVE is located at a shared bank address. + 2. Fixed page selection in some places + 3. Fixed BTFSS/C to where necessary use registers directly and not simply + the registers name strings. + 4. Fixed "signed / unsigned compare" compiler warnings. + 5. The PIC port manages its own allocation of the general purpose + registers, but makes no attempt to reuse them. As a result when + compiling it soon runs out of general purpose registers. Some + additional code was added to the files pcode.c and device.c to walk + through the function call tree and rename the registers so that they + get reused. + + * src/pic/device.c + * src/pic/gen.c + * src/pic/glue.c + * src/pic/pcode.c + * src/pic/pcode.h + * src/pic/ralloc.c + * src/pic/ralloc.h + * src/pic/genarith.c: Fixed problems with PIC 14 port in functions + genPlus() & genMinus() when the result is the same as left or right + +2003-08-18 Erik Petrich + + * src/z80/gen.c (isUnsplitable, fetchPairLong): fixed bug #770454 + +2003-08-18 Erik Petrich + + Made bitfield a distinct type from bit so that bitfields + convert as per ANSI C and bits retain their traditional + boolean style behaviour. Implemented bitfield support in + the z80 port. + + * src/SDCCsymt.h, + * src/SDCCsymt.c, + * src/SDCCast.c, + * src/cdbFile.c, + * src/mcs51/gen.c, + * src/ds390/gen.c: bit v bitfield split + * src/z80/gen.c: New support for bitfields + * support/regression/tests/bitfields.c: reenabled z80, + added more tests + +2003-08-17 Frieder Ferlemann + + Rules 246.x, 247.x relate to bitfields, the others speed up + access to xdata mapped I/O devices. + + * src/mcs51/peeph.def: added 26 peepholes 246.x - 248.x, 180.x + +2003-08-16 Erik Petrich + + Cleaned up genPackBits and genUnpackBits and added two helper + functions, emitPtrByteGet & emitPtrByteSet. Added optimizations + for literal assignments in genPackBits (thanks to Frieder for + reminding me). + + * src/mcs51/gen.c + * src/ds390/gen.c + +2003-08-16 Erik Petrich + + Fixed bug #748310 (pointer to function type mishandled when the + function name is omitted). Also fixed a SIGSEGV when a function + attribute (reentrant, etc) is used on a non-function or on a + function but misplaced before the parameter list. + + * src/SDCC.y (abstract_declarator, abstract_declaractor2): fixed + bug #748310 + * src/SDCC.y (declarator2_function_attributes): avoided SIGSEGV + * support/Util/SDCCerr.h, + * support/Util/SDCCerr.c: Added func attr misuse error msg + +2003-08-13 Bernhard Held + + Fixed bug #787649 by anonymous + * src/SDCCglue.c (emitRegularMap): added emission of sloc for func ptr + * src/ds390/gen.c (aopForSym): fixed func ptr in sloc + +2003-08-14 Erik Petrich + + Fixed numerous bitfield problems. + + * src/SDCC.y: More bitfield related error checking + * src/SDCCsymt.h, + * src/SDCCsymt.c (compStructSize): fixed bitfield offset calc + * support/Util/SDCCerr.h, + * support/Util/SDCCerr.c: Added & edited some bitfield err msgs + * src/mcs51/gen.c (genPackBits, genUnpackBits): fixed mask bugs + * src/ds390/gen.c (genPackBits, genUnpackBits): fixed mask bugs + * support/regression/tests/bitfields.c: tests added + +2003-08-13 Erik Petrich + + Made the constant following the "interrupt" keyword optional. If + omitted, the function will not automatically be given an entry + in the interrupt vector table (similar to #pragma NOIV, but + less syntacticly kludgy). The interrupt number is also now + range checked. Also fixed a bug in the high order bit example + in the manual. + + * src/SDCC.y + * src/SDCCmem.c + * src/SDCCglue.c + * src/SDCCsymt.h + * support/Util/SDCCerr.c + * support/Util/SDCCerr.h + * doc/sdccman.lyx + +2003-08-13 Bernhard Held + + * src/SDCCcse.c (algebraicOpts): fix bug converting op from value to type + * src/SDCCicode.c (operandOperation): rewritten some ops + (*, ==, unary_minus) to fix possible overflows and to accord with ANSI + * src/SDCCsymt.c (computeType): literals are handled the same way as any + other type + * src/SDCCval.c (cheapestVal): removed, it doesn't accord with ANSI (can + be re-activated by defining REDUCE_LITERALS) + * src/SDCCval.c (constVal): fixed; hex and octal constants can be + unsigned, but are signed by default + * src/SDCCval.c (constVal): rearranged + * src/SDCCval.c (valMod): preliminary fix + * src/SDCCval.c (valCastLiteral): use TYPE_* types + * support/regression/literalop.c: added, work in progress + +2003-08-12 Erik Petrich + + Generate warnings for useless declarations like "char data;" + that don't do what new users expect. + + * src/SDCC.y + * support/Util/SDCCerr.h + * support/Util/SDCCerr.c + +2003-08-09 Bernhard Held + + * src/SDCCval.c (valMult): fix overflow detection of negative int + +2003-08-07 Erik Petrich + + * src/z80/ralloc.c (joinPushes): made compatible with new signedness + + Changes to support big endian targets: + + * src/ports.h + * src/SDCCglue.c + * src/avr/main.c + * src/ds390/main.c + * src/izt/i186.c + * src/mcs51/main.c + * src/pic/main.c + * src/pic16/main.c + * src/xa51/main.c + * src/z80/main.c + +2003-08-06 Bernhard Held + + * src/SDCCval.c (cheapestVal): changed behaviour to the same as constVal() + * device/lib/time.c: fixed warning "integer overflow in expression" + +2003-08-05 Bernhard Held + + * src/SDCCval.c (cheapestVal, valueFromLit): use TYPE_* types + * src/SDCCval.c (constVal): changed default to signed; hex and octal + constants are unsigned; added recognition of "u" flag for unsigned + * src/SDCCval.c (valMult): fixed signdness, added warning for overflow + * src/SDCCval.c (valDiv, valMod): fixed signdness + * src/SDCCicode.c (operandOperation): fixed critical typo; fixed + signedness of modulo, left and right shift + * support/Util/SDCCerr.c: added warning "integer overflow in expression" + * support/Util/SDCCerr.h: added warning W_INT_OVL + * src/SDCCast.c (decorateType): fixed gcc3.3 warning + * src/SDCCast.c (ast_print): improved output of constants + +2003-08-04 Jesus Calvino-Fraga + + Fixed some warnings when building with MSVC: + + * as\mcs51\asdata.c + * as\z80\asdata.c + * as\mcs51\asm.h + * as\z80\asm.h + * link\z80\aslink.h + * link\z80\lkdata.c + * link\z80\lkeval.c + * link\z80\lkgb.c + * link\z80\lkihx.c + * link\z80\lks19.c + * link\z80\lksym.c + * support\cpp2\cpplib.c + * src\ds390\gen.c + * src\mcs51\gen.c + +2003-08-03 Bernhard Held + + * src/SDCCast.c (constExprTree): fix bug #781827 by Carl Worth + +2003-08-01 Jesus Calvino-Fraga + + * support\librarian\clean.mk: Do not remove Makefile. + * support\librarian\Makefile: added. + +2003-08-01 Jesus Calvino-Fraga + + Added librarian to MSVC build: + * all.dsp + * sdcc.dsw + * support\librarian\librarian.dsp + + 'configure' not needed for librarian, removed: + * support\librarian\configure + * support\librarian\configure.in + * support\librarian\config_in.h + * support\librarian\Makefile.in + + Hopefully these ones built the librarian and the rest of sdcc properly: + * Makefile + * Makefile.common.in + + Messed up 'configure', so revert to previous version: + * configure + * configure.in + 2003-07-31 Bernhard Held * src/SDCCicode.c (operandOperation): 3. fix, this time for Alpha; ULONG has 64 bits there, while the mantissa of a double is "only" 53 bits wide. -2003-07-30 Jesus Calvino-Fraga +2003-07-31 Jesus Calvino-Fraga Adding sdcclib to the build. MSVC project coming soon. Files added/changed: @@ -16,6 +1458,10 @@ * support\librarian\Makefile.in * support\librarian\sdcclib.c * Makefile.bcc + * Makefile + * Makefile.common.in + * configure + * configure.in 2003-07-29 Jesus Calvino-Fraga @@ -41,7 +1487,7 @@ * link\z80\lkdata.c * link\z80\lklibr.c * link\z80\lkmain.c - * src\SDCCglue.c + * src\SDCCglue.c 2003-07-28 Jesus Calvino-Fraga @@ -907,7 +2353,7 @@ An sfr/sbit can have an "at #" AND an initializer * src/SDCCsymt.c (checkSClass): * src/SDCCmem.c (allocGlobal): - * src/SDCCmem.c (allocLocal): + * src/SDCCmem.c (allocLocal): * src/SDCCast.c (createBlock): 2003-03-17 Bernhard Held