X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=ChangeLog;h=24d5cd4575a06a1e589fb52289963a3e03111c00;hb=3ce766b71ad2b6d9f192e0e6c5d3a5f129804812;hp=52acb65e55d5b1a926d17bdfc6ed9501de5bb319;hpb=390778daf6c7d78a63950d9429a9a70be5f90675;p=fw%2Fsdcc diff --git a/ChangeLog b/ChangeLog index 52acb65e..24d5cd45 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,854 @@ +2004-01-20 Erik Petrich + + * src/hc08/gen.c (genPlusIncr, genUminus, genMinusDec, genCmp, + shiftL2Left2Result): fixed bug #879326 + (genAnd, genOr, genXor): fixed bug when result was of type AOP_CRY + (genMultOneByte): fixed bug in signed vs unsigned multiplication + * sim/ucsim/hc08.src/inst.cc (inst_clr): added missing effective + address fetch for clr instruction + * device/lib/hc08/_mulint.c: created optimized assembly version + * src/SDCCdflow.c (computeDataFlow): fixed bug #878209 + +2004-01-19 Bernhard Held + + * src/SDCCicode.c (geniCodeArray): applied patch from Stas Sergeev + proposed in FR #877103 + +2004-01-18 Bernhard Held + + * src/SDCCval.c (cheapestVal): added missing checks + * src/SDCCicode.c (usualBinaryConversions): fixed condition + * src/SDCCicode.c (geniCodeAdd): fixed part of bug #877103 + +2004-01-16 Klaus Flittner + + * src/ds390/gen.c (aopOp3): fixed the assignment of different dptrs to + equal operands + +2004-01-16 Vangelis Rokas + + * src/SDCCmain.c (linkEdit): variable $3 of the linker command is + loaded with the linker search paths (-L arguments) and the libraries + to be linked with the current source (-l arguments). Changes + currently will affect only the pic16 port. + * src/pic16/main.c (_pic16_finaliseOptions): add to the linker + include path the port specific paths and port specific libraries, + * gplink command now contains the $3 argument, + * src/pic16/device.h, + * src/pic16/device.c,: structure PIC_device is made public and + renamed to PIC16_device, the same for variable Pics which is renamed + to Pics16. Updated all references to them. + * src/pic16/glue.c (pic16glue): corrected bug with code + initialization which bypassed the variable initializations block. + + * device/lib/pic16/Makefile.rules: removed --penable-stack from + COMPILE_FLAGS and added the --nostdinc option + +2004-01-15 Erik Petrich + + * device/include/mc68hc908jb8.h: Register defs for another member + of the hc08 family. Contributed by Bjorn Bringert - thanks! + +2004-01-14 Vangelis Rokas + + Documenting changes from previous commits. + * configure.in (version 1.56), + * configure: initially I've added AC_CONFIG_SUBDIRS(device/lib/pic16) + when generating output files to configure the pic16 library, + but now I've commented it out, since gputils aren't installed in the + SF compile farm, so library won't compile + + * device/lib/Makefile.in (version 1.56): initially I've added in + target 'all' the prerequestive 'model-pic16' so it compiled the + pic16 library, but now I've commented it out for the same reasons + above, + * added targets 'model-pic16' and 'objects-pic16' to compile the + library + * added target 'port-specific-objects-pic16' to handle the + generated libraries and copy them into the build/ directory + * added target 'clean-intermediate-pic16' to clean intermediate + files into pic16 directory + * in target 'installdirs' added line to create directory pic16 in + the installation path + + * device/include/Makefile.in (version 1.11): in target 'install' + added lines to copy all header files to installation path, + * in target 'installdirs' added line create directory for pic16 + headers in the installation path + +2004-01-13 Klaus Flittner + + * src/ds390/gen.c (genCall): fixed a double use of acc and b after + a function call + +2004-01-13 Bernhard Held + + * configure, + * device/lib/configure.in, + * device/lib/configure: fixed for autoconf 2.57 + +2004-01-13 Erik Petrich + + * src/z80/main.c (_parseOptions): fixed the portmode= command line + option so that it actually works. Made it specific to the z80, since + the gbz80 doesn't have these kinds of I/O ports. + +2004-01-13 Erik Petrich + + * device/include/z180.h, + * device/lib/_memcpy.c, + * device/lib/_memmove.c, + * device/lib/_mulint.c, + * device/lib/ser_ir.c, + * device/lib/ser_ir_cts_rts.c, + * device/lib/_strcmp.c, + * device/lib/_strtok.c: fixed pragmas to non-deprecated form + * src/z80/main.c (_process_pragma): add support for pragmas bank and + portmode; added deprecation warning for bank= and protmode= forms. + Also, guard against buffer overflow. + * src/z80/gen.c (aopGet): generate better code for sfr banked read + +2004-01-13 Erik Petrich + + * src/hc08/main.c (_hc08_genAssemblerPreamble): fixed bug #875487. Also + changed interrupt vector table generation to only emit declared vectors. + * device/include/Makefile.in: added missing backslash + * device/lib/pic16/Makefile.rules: add $(MODELFLAGS) to $(CFLAGS) + +2004-01-13 Vangelis Rokas + + Mainly changes to support compilation of the device libraries + * src/pic16/device.c: stack is allocated via symbol and not + via literal number. The symbol is placed in the corresponding + position of the data ram + * (pic16_dump_section): relocatable and absolute uninitialized + data are now emitted in sorted order to reduce section naming, + * src/pic16/ralloc.c (newReg): fixed bug with SFR's that + weren't marked as being in the access bank, + +2004-01-13 Vangelis Rokas + + Added portion of GNU PIC Library under the directory + device/include/pic16 and device/lib/pic16. These files + contain the declarations of SFRs for the PIC18Fxx2 devices. + The directory is initialized via configure from toplevel. + +2004-01-12 Klaus Flittner + + * src/ds390/gen.c (operandsEqu): fixed a little typo, that prevented + the spilllocations to be compared correctly + +2004-01-12 Bernhard Held + + * src/SDCCast.c (decorateType): fixed bug introduced today + +2004-01-12 Borut Razem + + * src/SDCC.lex, support/Util/SDCCerr.h, support/Util/SDCCerr.c, + doc/sdccman.lyx: upper case pragmas are deprecated + +2004-01-12 Bernhard Held + + * src/SDCCast.c (decorateType): replacing 'ul > 0' by '!ul' results + in simpler and even better code + +2004-01-11 Bernhard Held + + * src/SDCCicode.c (operandOperation): fixed bug #874819 + * src/SDCCast.c (decorateType): fixed + char foo (unsigned long ul) { return ul > 0; } + +2004-01-11 Frieder Ferlemann + + * doc/sdccman.lyx: Moved and added some sections, small changes + all over. Telling LaTeX to be less strict with word spacing + to better keep the right margin. Changed some notes about + maintainance of the ports in section 3.2.1 - is it OK like this? + +2004-01-11 Vangelis Rokas + + SDCC source changes: + * src/SDCCopt.c (cntToFcall, cnvToFloatCast, cnvFromFloatCast, + convilong): modified to inform the pic16 port that builtin functions + are external + + PIC16 PORT specific changes: + * src/pic16/device.c pic16_dump_equates() added, + processor registers declared internally by the port are emitted in + the translation as equates, + * src/pic16/gen.c: inline code is passed unprocessed to the + translation, + * (pic16_popGetLit2): fnuction modified to take second operand as + pCodeOp pointer and not as literal, + * (popRegFromIdx): prefixed with pic16_, + * (pic16_popCombine2): modified to receive already allocated pCode + operands, + * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): added + * (genFunction): initializes local stack frame and pushes on stack + all the registers used by this function, + * (genEndFunction): restores all registers from stack and restores + stack frame, + * src/pic16/glue.c (pic16emitRegularMap): various changes and + improvements, + * (pic16glue): changed the program startup sequence, + * added new dbName code 'A' for functions placed in absolute section + * src/pic16/main.c: added function attribute _naked, + * added pragma 'code' to place a fnuction at an absolute address, + * added command line arguments --debug-ralloc and --pcode-verbose, + * (_pic16_finiliseOptions): options.all_callee_saves is set by default + * src/pic16/pcode.c (pic16_pBlockConvert2Absolute) added, + * (pic16_newpCodeOpLit2): modified to take the second operand as + pCodeOp pointer, + * (pic16_printpBlock): modified to emit each function in a separate + section, + * (pic16_get_op): modified to use the gpasm modifiers LOW,HIGH and + UPPER for immediate operands, + * src/pic16/pcodepeeph.c: added peephole support for the LFSR + instruction, + * src/pic16/peeph.def: all peepholes with movff are commented out, + because there is a problem in the pcode peep optimizer, + * src/pic16/ralloc.c: the register allocator can now reuse local + function symbols for another function. This saves register usage. + * src/pic16/ralloc.h: added flag isLocal in structure regs, + + Added file src/pic16/NOTES with information about program writing on + the current port version. + +2004-01-11 Frieder Ferlemann + + * src/mcs51/peephole.def: added peepholes 177.c,d (redundant moves) + and peephole 252 (array access) + +2004-01-09 Borut Razem + + * src/SDCCmain.c : fixed #872250: -l command line defined library + files are scanned before standard library files + +2004-01-10 Erik Petrich + + * src/SDCCast.c (decorateType): fixed bug #874046 + +2004-01-09 Borut Razem + + * support/scripts/sdcc.nsi: remove previous installation + +2004-01-09 Frieder Ferlemann + + * src/SDCCglue.c (createInterruptVect): don't append 7(5) padding + bytes for last interrupt vector (mcs51) + * sdcc.spec: fixed typo + +2004-01-09 Erik Petrich + + * src/mcs51/gen.c (genFunction, genEndFunction, genReceive, getTempRegs, + gen51Code): more efficient parameter receive for --model-large + ("bug" #845294) + +2004-01-09 Erik Petrich + + * src/ds390/main.c, + * src/z80/main.c: added missed needLinkerScript flags (more than + one port structure defined in these file) + * src/ds390/gen.c (aopForSym, aopOp, operandsEqu, aopOp3): fixed + bug #795325 + +2004-01-08 Vangelis Rokas + + * src/SDCCmain.c: removed various references to DEFAULT_PORT + * src/port.h: added flag needLinkerScript in port->linker + structure to inform whether to create a .lnk file or not, + * src/avr/main.c, + * src/ds390/main.c, + * src/hc08/main.c, + * src/mcs51/main.c, + * src/pic/main.c, + * src/pic16/main.c, + * src/xa51/main.c, + * src/z80/main.c: changed appropriately to configure + needLinkerScript flag + * src/pic/gen.c, + * src/pic16/gen.c (genAddrOf): fixed bug #863624 + * src/pic/glue.c: added variable udata_section_name to + override default uninitialized data segment definition for + devices only with SHAREBANK memory (reported from Erik Epetrich) + * (pic14emitOverlay): modified to emit a commented overlay segment + directive when no overlay data exist + * (picglue): modified to emit uninitialized data segment + according to udata_section_name + * src/pic/main.c (_pic14_parseOptions): added command line + options --udata-section-name=[name] to override default + udata definition name + * modified _linkCmd and _asmCmd to include compiler passed + arguments via -W option + * src/pic16/main.c: added $l in _asmCmd, changed extension for + object file from '.rel' to '.o' in port->linker structure, + changed size of fptr from 2 to 3 in port structure + +2004-01-07 Borut Razem + + * support/scripts/sdcc.nsi: update PATH + * support/scripts/sdcc.ico: craeted + +2004-01-07 Bernhard Held + + * device/include/Makefile.in: fix install + * doc/Makefile: fix install + +2004-01-07 Erik Petrich + + * src/SDCCsymt.c (processFuncArgs): fixed superflous allocation noted + in bug #860505 + * src/SDCCmem.c (printAllocInfoSeg, printAllocInfo): minor changes to + how the function variable allocation summary is displayed; also + include information about variables allocated to the overlay + segment + +2004-01-06 Jesus Calvino-Fraga + + * as/mcs51/lkmain.c: Help about -Y option + * as/mcs51/lkarea.c: Fixed gcc warnings + +2004-01-06 Bernhard Held + + * src/SDCCval.c (valShift): changed from 16 to 32 bit shift count, + fixed warning + * support/valdiag/tests/overflow.c: added + * src/SDCCast.c (decorateType), + * src/SDCCicode.c (geniCodeLeftShift): added promotion to int for + LEFT_OP (left shift) + +2004-01-06 Jesus Calvino-Fraga + + * as/mcs51/lkmain.c: stack must be after data when option -Y is not used + (default behaviour). + +2004-01-06 Erik Petrich + + A python script to validate compiler diagnostic messages. It can be + used to verify that sdcc complains about bad c source code and + gives a good location of the error. + * support/valdiag/Makefile, + * support/valdiag/valdiag.py, + * support/valdiag/tests/* + +2004-01-06 Erik Petrich + + * src/SDCC.y (enum_specifier, enumerator_list, opt_assign_expr), + * src/SDCCsymt.c (newEnumType), + * src/SDCCsymt.h + * support/Util/SDCCerr.c, + * support/Util/SDCCerr.h: fixed bug #871258 and some other unreported + enum related bugs. + * support/regression/tests/enum.c: added test for enum values that + require at least 2 bytes of storage. + +2004-01-06 Vangelis Rokas + + * src/common.h: added ifndef/define/endif macros + around the header file. + Bug reported from Jesus Calvino-Fraga + +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 + * src/ds390/gen.c (genRightShift): fixed bug #870788 + * src/SDCCast.c (decorateType): fixed bug #870781 + +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),