X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=ChangeLog;h=896e6ea00cbccd7d21ea495382ecf8c9910af8db;hb=3e1e4fc13111f5489f95ecda44ab105fcfa058d3;hp=1f5c40e1950411478bf1f5a77e8c19d80a8eb311;hpb=3e896c0ba619568082bc9e952265022cad9fe911;p=fw%2Fsdcc diff --git a/ChangeLog b/ChangeLog index 1f5c40e1..896e6ea0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,438 @@ +2004-08-21 Bernhard Held + + * sim/ucsim/cmd.src/Makefile.in: run lex only if $(PRJDIR)/devel exists + +2004-08-18 Erik Petrich + + * src/z80/ralloc.c (packRegsForAssign): ported some bug fixes from the + mcs51 port + +2004-08-16 Slade Rich + + * src/pic/gen.c: Restored fn genRet as previous fix was incorrect. + +2004-08-14 Frieder Ferlemann + + * src/mcs51/gen.c (genJumpTab): jumptables for more than 16 switch + cases use more compact code. + +2004-08-13 Slade Rich + + * src/pic/gen.c: Fixed problem with fn returning a variable bigger than a char. + +2004-08-12 Erik Petrich + + * src/SDCClrange.c (findPrevUse): fixed bug #1007371 + +2004-08-12 Erik Petrich + + * src/SDCCsymt.h, + * src/SDCCsymt.c (changePointer, checkDecl, addSymChain): changed + parameter of changePointer() from symbol* to sym_link* + * src/SDCCast.c (decorateType): call changePointer() for CAST op + * src/SDCCsymt.c (compareType): void* type is castable to other + pointers, but not necesarily an exact match. + * src/SDCCicode.c (geniCodeCast): allow void* casting here since it + is no longer blindly treated as an exact match. + * src/SDCCval.c (valCastLiteral): treat missing type as cast to void + +2004-08-12 Slade Rich + + * src/pic/glue.c: Added struct initialisation fn printIvalStruct. + +2004-08-11 Slade Rich + + * src/pic/gen.c, + * src/pic/pcode.c, + * src/pic/ralloc.h, + * src/pic/ralloc.c: Printing rIdx on internal verbose debug. + +2004-08-10 Slade Rich + + * src/pic/device.c, + * src/pic/device.h, + * src/pic/device.c: Will no longer exit if #pragma maxram has not been defined. + +2004-08-06 Erik Petrich + + * src/mcs51/gen.c (emitcode): fixed bug #992819 + +2004-08-05 Maarten Brock + + * src/pic/ralloc.c (deassignLR): allthough pic port is buggy already, + there's no need to make it worse + +2004-08-05 Erik Petrich + + * src/mcs51/ralloc.c (deassignLR), + * src/ds390/ralloc.c (deassignLR), + * src/hc08/ralloc.c (deassignLR), + * src/z80/ralloc.c (deassignLR), + * src/pic/ralloc.c (deassignLR), + * src/pic16/ralloc.c (deassignLR), + * src/avr/ralloc.c (deassignLR), + * src/SDCClrange.c (findRecursiveSucc, findRecursivePred, findPrevUse, + rlivePoint): fixed another part of bug #971834 + +2004-08-04 Erik Petrich + + * src/z80/main.c: enabled "critical" keyword + * src/z80/mappings.i, + * src/z80/gen.c (genFunction, genEndFunction): support for interrupt + functions (fixes bug #979646) + * doc/sdccman.lyx: added a subsection explaining z80 interrupt support + +2004-08-04 Jesus Calvino-Fraga + + * src/mcs51/gen.c (genInline): Add \n for labels, not DOS/WIN dirs + such as c:\mydir. + +2004-08-03 Maarten Brock + + * src/SDCCloop.c (loopInvariants): fixed bug 983545, hope this + doesn't disable too much optimizations + +2004-08-02 Slade Rich + + * src/pic/glue.c Disabled "WARNING: function 'main' undefined" when -S option is used. + +2004-08-02 Maarten Brock + + * src/SDCClrange.c (rlivePoint): fixed bug 988568, thanks to anonymous + +2004-08-02 Slade Rich + + * src/pic/gen.c tidied up tabs + * src/pic/genarith.c tidied up tabs and fixed bug with literal multiple where same register was used for hi and low byte + * src/pic/main.c tidied up tabs + * src/pic/pcode.c tidied up tabs and disabled verbose code generation + * src/pic/pcoderegs.c tidied up tabs + * src/pic/ralloc.c tidied up tabs + +2004-07-30 Vangelis Rokas + + * src/SDCCmem.c (allocGlobal): don't turn S_REGISTER storage class + to S_FIXED for pic16 port and when symbol is not in level 0, + allocate for S_REGISTER storage class and pic16 port, too, + * src/pic16/device.h: prototype for checkSym, + * src/pic16/device.c (pic16_dump_access, checkSym): NEW, + * (pic16_assignConfigWordValue): test the value and the mask to + validate that the value is suitable for the configuration word, + * src/pic16/glue.c (pic16_printIvalFuncPtr): use 'externs' to + collect extern declared symbols, don't emit symbol twice, check + first if symbol is in publics set first, + * src/pic16/main.c (_pic16_keywords[]): added keyword 'register', + * added command line '--fstack' which enables an experimental + feature for stack access, too buggy to be used yet... + * src/pic16/ralloc.c (pic16_accessregWithName): NEW, + * (pic16_allocDirReg): when register has storage class S_REGISTER + allocate in pic16_dynAccessRegs, + * device/include/pic16/pic18f????.h: modified configuration word + naming convention, words started as CONFIG0H but should be CONFIG1H + +2004-07-29 Maarten Brock + + * device/include/mcs51reg.h: fixed bug 970993 + +2004-07-27 Maarten Brock + + * added lib/calloc.c, lib/free.c, lib/realloc.c, include/stddef.h + * updated lib/malloc.c, lib/libsdcc.lib, lib/Makefile.in, include/malloc.h + * src/SDCC.lex (doPragma): added pragma disable_warning + * src/SDCCmain.c (parseCmdLine): added option --disable-warning + * src/ds390/gen.c (genPlusIncr): fixed bug when incrementing generic pointers + * support/Util/SDCCerr.c (vwerror): suppress disabled warnings and output + error/warning numbers, + added function setWarningDisabled() + * support/Util/SDCCerr.h: added setWarningDisabled() and MAX_ERROR_WARNING + * support/regression/ports/mcs51-stack-auto/spec.mk: added dependencies + _memcmp.c _memmove.c calloc.c realloc.c free.c + * support/regression/tests/malloc.c: added tests for new functionality + * support/regression/tests/zeropad.c: added tests for truncated initializers + and initialized char arrays starting with '\x0' + * src/mcs51/peeph.def: fixed regression, added peephole 177.f + +2004-07-26 Bernhard Held + + * support/valdiag/tests/overflow.c: fixed warning on (1 >> 40) + +2004-07-26 Frieder Ferlemann + + * doc/sdccman.lyx: updated example in section "Absolute Addressing" + * src/mcs51/peeph.def: added contributed fix for "bug" #995347 as + peephole 177.e. Thanks to anonymous + +2004-07-25 Vangelis Rokas + + * src/pic16/glue.c (pic16_printIvalFuncPtr): when an extern + function isn't used in the source but referenced as a + variable initializer then declare it as extern in .asm file + +2004-07-24 Vangelis Rokas + + * .version: increased version number to 2.4.3 + + Adding version extension according to ChangeLog CVS revision + * src/Makefile.in (target all): added dependency 'version.h' + * (rule version.h): added rule to create version.h from ChangeLog, + * (rule dep): added dependency version.h, + * src/version.awk: AWK script to create version.h + * src/SDCCdwarf2.c (dwWriteModule), + * src/SDCCglue.c (initialComments), + * src/SDCCmain.c (printVersionInfo): modified to write after + version string the version extension number, + * src/SDCCutil.c: included "version.h" + * (getBuildNumber): NEW, returns SDCC's ChangeLog minor revision + number, + * src/SDCCutil.h: added prototype for getBuildNumber + + * src/SDCCmain.c (parseCmdLine): when sOpt is 'I' add rest in + includeDirsSet, too, + * src/SDCCsymt.c (checkSClass): don't emit error when a variable, + const char [] is found in function prototype... + + * src/pic16/genarith.c (pic16_genUMult8XLit_8): optimization to omit + moving to WREG with source is already in WREG, + * src/pic16/gen.h: added AOP_FSR0 and AOP_FSR2 in enum, + * src/pic16/gen.c (getFreePtr): updated to look for FSR0 and FSR2, + * (aopForSym): stack'ed symbols are partially supported, added + if-clause to support symbols in FARSPACE, + * (sameRegs): added test for AOP_ACC to see if registers are same, + * (pic16_freeAsmop): added case for AOP_FSR0 and AOP_FSR2, + * (pic16_aopGet): added case for AOP_FSR0 and AOP_FSR2, + * (pic16_popRegFromString): will not allocate a new register if it + doesn't find one by name, bug may have introduced... + * (pic16_popGet): added case for AOP_FSR0 and AOP_FSR2, + * (genIpush): revived to use pic16 port's stack, + * (genAddrOf): added incomplete case for stack'ed operand, + * (genCast): optimized a pair of MOVFW,MOVWF to MOVFF + * src/pic16/genutils.c (pic16_genNot): almot new vesrion for NOT, + can handle multibyte operands, + * src/pic16/glue.c (pic16_printIval*): some debug info added, + * (pic16initialComments): added message for MPLAB compatibility + mode enabled, + * src/pic16/main.h: prototype for pic16_mplab_comp, + * src/pic16/main.c (pic16_optionsTable): new option --mplab-comp, + which enabled MPLAB compatibility mode (i.e. no #LINE/#FILE, BANKED) + * (_pic16_linkEdit): NEW, handles link stage, transferred here + because of increased complexity of procedure, + * (_process_pragma): stack pragma changed to format 'stack pos len', + emit symbol '_stack_end' to conform with gplink, + * src/pic16/pcode.c (pic16_newpCodeOpBit): using pic16_regWithName + to search for register, + * (pic16_get_op, pic16_get_op2): added case for PO_W, PO_WREG and + PO_GPR_REGISTER, + * (pic16_pCode2str): when in MPLAB compatibility mode, comment out + #LINE directives and replace 'B' with 'BANKED' in instruction opcodes + * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added + case for PO_GPR_REGISTER, + * (pic16_AnalyzeBanking): removed the old message for inc2h.pl, past + dies, the new era is ahead !... + * src/pic16/ralloc.c: added hash reposits pic16_dynAllocRegNames and + pic16_dynInternalRegs, + * (pic16_allocregWithName, pic16_procregWithName, pic16_regWithname): NEW, + * (pic16_allocDirReg): minor optimizations and bug fixes, + * (pic16_allocWithIdx): when searching pic16_dynProcessorRegs use fixed, + + * device/lib/pic16/startup/crt0*.c: extern definition of stack_end, + load stack and frame pointer with address of 'stack_end' symbol + +2004-07-23 Vangelis Rokas + + * src/pic16/glue.c (pic16emitStaticSeg): fixed bug with files + without source code but only variable initializers + +2004-07-20 Vangelis Rokas + + * src/pic16/glue.c (pic16emitRegularMap): unused functions marked as + external are not declared as extern to reduce overhead while linking + +2004-07-20 Maarten Brock + + * src/SDCCast.c (decorateType): removed buggy fix for bug #979599 + +2004-07-11 Maarten Brock + + * src/SDCCglue.c (printIvalArray): fixed bug #984229, thanks to Phuah + Yee Keat for the patch + * src/SDCCast.c (decorateType): fixed bug #979599 + * src/ds390/gen.h: removed local fReturnSizeDS390 + * src/ds390/gen.c: made fReturnSizeDS390 signed short to remove a warning + * src/ds390/gen.c (genAnd, genOr, genXor), + * src/mcs51/gen.c (genAnd, genOr, genXor): generate better optimized code + +2004-07-04 Vangelis Rokas + + * src/SDCCmain.c (linkEdit): modifications only for pic16 port, + add relFilesSet to $3, manipulate $2 to handle linking of object + files without source files in command line, + * device/include/pic16 (all headers): added ID location macros, + * src/pic16/device.c (struct PIC16_device Pics16[]): added field + entries for ID location bytes, + * (pic16_assignIdByteValue): NEW, + * src/pic16/device.h: new structures idRegInfo_t and idBytesInfo_t, + added field dumpcalltree to pic16_options_t, + * src/pic16/gen.c (genCmp): fixed bug case so a temporary register + is used instead of pic16_Gstack_base_addr, check if (ifx) before + emitting rFalseIfx label after check_carry label, + * src/pic16/glue.c (PIC16_IS_IDLOC_ADDRESS, PIC16_IS_HWREG_ADDRESS, + pic16_emitDIRegs), NEW + * (pic16glue): dump .calltree file when option --calltree found, + * src/pic16/main.c (OPTION _pic16_optionsTable): new option --calltree + * (_pic16_genAssemblerPreamble): emit ID locations after + configuration registers, + * (pic16_linkCmd): modifications of the link command, + * src/pic16/pcode.c (pic16_pciMOVFF): PCC_REGISTER replaces PCC_REGISTER2 + * (pic16_pCodeInitRegisters): don't init stack registers, + * (pic16_findPrevInstruction): fixed bug, + * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): fixed + bug with immediate registers, + * (buildCallTree): traces stack push and pop, + * (pct2): dump also stack usage for each function, + * src/pic16/ralloc.c (dynrIdx): registers names start from 0x00 + * (pic16_allocDirReg): various modifications, + * (pic16_typeRegWithIdx): when searching pic16_dynProcessorRegs set + fixed to 1, + +2004-07-02 Vangelis Rokas + + * src/pic16/pcode.c: removed buggy double colon + +2004-07-01 Borut Razem + + * support/scripts/sdcc.nsi: added include/pic16 to setup + +2004-06-30 Vangelis Rokas + + * device/lib/Makefile.in: fixed bug in target objects-pic16, + * device/lib/pic16/Makefile: prefixed with dash (-) command under + target 'clean', + * doc/sdccman.lyx: changed version to 2.4.2 and added some port + specific command line arguments. Also added sample lkr script + for placing a variable at a specific memory bank. + * src/pic16/device.c (pic16_dump_gsection): NEW, to dump variables + at a specific memory bank, + * (pic16_dump_isection): fixed bug which caused string literals to + be omitted when dumping idata section, + * (pic16_groupRegistersInSection): added code to handle registers + in specific memory banks, + * src/pic16/gen.c: labelOffset is prefixed with pic16_ and made + public, all references are renamed too, + * (pic16_aopGet): removed switch cases for AOP_R0,AOP_R1,AOP_DPTR, + AOP_DPTR2, + * (pic16_storeForReturn): added case to handle when dest is WREG, + * src/pic16/genarith.c (pic16_pCodeOpSubType): NEW, + * src/pic16/glue.c (pic16emitRegularMap): when adding a register in + pic16_rel_udata, check to see if that register is marked as being + a member of a specific memory bank, + * (pic16_printIvalCharPtr): added code to add string literals either + to code or the idata sections, + * src/pic16/main.c (_process_pragma): added \n to WHITE constant, + also accept the 'udata' pragma, + * src/pic16/main.h: new structure types sectName and sectSym + * src/pic16/pcode.c: added new pCodeInstruction entry for BANKSEL + * (newpCodeOpBit): added PIC_OPTYPE subt in function prototype, + * (pic16_findPrevInstruction): fixed, it returned nothing, + * (insertBankSwitch): fixed to emit banksel/skip and skip/banksel + instruction combinations, + * (pic16_FixRegisterBanking): heavily reorganised, + * (pic16_AnalyzeBanking): if generating banksel directives is + disabled, then don't call FixRegisterBanking at all, + * src/pic16/ralloc.c (bitEQUs, aliasEQUs, allDefsOutOfRange): + completely removed, + * (pic16_writeUsedRegisters): added call to pic16_dump_gsection + +2004-06-29 Bernhard Held + + * src/SDCCglue.c (printChar): fixed bug #973350, patch provided by + Phuah Yee Keat + +2004-06-28 Vangelis Rokas + + * src/pic16/glue.c (pic16createInterruptVect): function now emits + correctly the IVT even if it is relocated to some other location + +2004-06-28 Vangelis Rokas + + * device/include/pic16/pic18fregs.h: added case for pic18f2220.h + * device/include/pic16/pic18f2220.h: NEW, + * device/lib/pic16/libdev/pic18f2220.c: NEW, + * device/lib/pic16/libdev/Makefile: added 18f2220 in DEVS, + * src/pic16/device.c (struct Pics16): added info for 18f2220, + * src/pic16/device.h (struct pic16_options): added ivt_loc and + nodefaultlibs, ivt_loc is the location of the interrupt vector + table, and nodefaultlibs signs that default libraries should not be + linked in link stage, + * src/pic16/gen.c (genFunction): relocate interrupt vector functions + according to --ivt-loc argument, + * src/pic16/main.c (_process_pragma): emit '_stack' as public symbol + when pragma stack is found, + +2004-06-25 Frieder Ferlemann + + * src/mcs51/peeph.def: added peepholes 182.d (return 0.0), + 256 (range check), 257 (do while), 258.a-f (bit banging + f.e. on 3-wire SPI bus) + +2004-06-21 Erik Petrich + + * src/SDCClrange.c (findNextUseSym): fixed a live range bug with + variables used exclusively within a loop + +2004-06-21 Bernhard Held + + * src/mcs51/gen.c (genCpl): quick fix for bug #974835 + +2004-06-21 Erik Petrich + + * src/SDCClrange.c (computeClash): fixed bug #971834 + +2004-06-20 Erik Petrich + + * src/mcs51/gen.c (genCmp): fixed bug #975903 + * src/hc08/gen.c (operandsEqu), + * src/ds390/gen.c (operandsEqu), + * src/z80/gen.c (operandsEqu), + * src/pic/gen.c (operandsEqu), + * src/pic16/gen.c (operandsEqu), + * src/mcs51/gen.c (operandsEqu): fixed bug #976283 + * src/SDCCmain.c (parseCmdLine): report --unknown-option only once + +2004-06-15 Erik Petrich + + * src/SDCCcse.c (cseBBlock): fixed bug #966963 + +2004-06-12 Vangelis Rokas + + * src/pic16/gen.c (genPointerGet): added E_INTERNAL_ERROR for + default case in switch statement, + * glue.c (pic16_initPointer): expr is initialised via decoarteType + to eliminate problem with initialisation of pointers, but problem + still exists, + * (pic16_pointerTypeToGPByte): removed, no needed for pic16, + * (emitStaticSegment): removed various lines emitting debug info, + * src/pic16/pcode.c, src/pic16/pcode.h, src/pic16/ralloc.h: + added processor registers for utilizing EEPROM, + * src/pic16/pcode.c (pic16_emitDB): number of DBs emitted is not + configurable and set 8 + +2004-06-08 Vangelis Rokas + + * .version: increased version number to 2.4.2, + + Cumulative patch for pic16 port + * src/pic16/device.c: changed scheme to dump initial values for + variables in idata segment, all print_idata* functions were removed, + now the pic16_printIval* will be called, + * src/pic16/glue.c: (pic16_initPointer, pic16_pointerTypeToGPByte, + * _pic16_printPointerType, pic16_printPointerType, + * pic16_printGPointerType, pic16_printIvalArray, pic16_printIvalStruct, + * pic16_printIvalBitFields, pic16_printIvalFuncPtr, pic16_printIvalPtr: + NEW, similar to the respective functions in SDCCglue.c, + * src/pic16/pcode.c (pic16_emitDB, pic16_flushDB): reverted to old + way, emitting hex bytes, + * (pic16_emitDS): NEW, emits a string for pointer initialisation, + 2004-06-08 Erik Petrich * src/avr/ralloc.c (serialRegAssign), @@ -8,7 +443,7 @@ * src/z80/ralloc.c (serialRegAssign), * src/ds390/ralloc.c (serialRegAssign), * src/mcs51/ralloc.c (serialRegAssign): fixed bug #964479 - + 2004-06-08 Erik Petrich * src/SDCCicode.c (geniCodeJumpTable): fixed bug #967601 @@ -33,7 +468,7 @@ command argument --denable-peeps, for testing, * device/lib/pic16/startup/Makefile: added --no-peep,--pomit-config-words, --pomit-ivt in COMPILE_FLAGS - + 2004-06-06 Maarten Brock * src/pic16/pcode.c (pic16_emitDB): removed double semicolon which fails @@ -6060,3 +6495,5 @@ * as/mcs51/aslink.h: accept everything as symbol name in rel-files, bug fix ID 452601 * as/mcs51/lklex.c: accept everything as symbol name in rel-files, bug fix ID 452601 * as/mcs51/lksym.c: accept everything as symbol name in rel-files, bug fix ID 452601 + +$Revision$ \ No newline at end of file