X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=ChangeLog;h=611ff37fd2c4c432e4d0a4ca7b86a474bf848cb9;hb=6c42874b8f9111fd428b19cd6f8597415a5145aa;hp=2885d07d39937a33ae92314b4cec12ce24a7fc16;hpb=88525995d968a51fe19a7edbbac43c09efc84cd4;p=fw%2Fsdcc diff --git a/ChangeLog b/ChangeLog index 2885d07d..7e73b0c5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,1270 @@ +2006-04-24 Borut Razem + + * device/examples/main8051.c: deleted - it was removed from CVS + 24.mar.2000 and after that modified 18.feb.2001, so it reappered + after the transition to Subversion + * src/SDCCalloc.h: deleted - it was removed from CVS + 3.feb.2001 and after that modified 18.feb.2001, so it reappered + after the transition to Subversion + * sim/ucsim/cpu.gif, sim/ucsim/interrupt.gif, sim/ucsim/new.gif, + sim/ucsim/serial1.gif, sim/ucsim/serial2.gif, + sim/ucsim/term_cpuopt.gif, sim/ucsim/timers.gif, sim/ucsim/wins.gif, + sim/ucsim/post.jpg, sim/ucsim/UCsim.jpg: corrected + +2006-04-22 Maarten Brock + + * as/asx8051.dsp: added mcs51/strcmpi.h + * as/hc08/as_hc08.dsp: added asm.h, m6808.h, strcmpi.h + * as/hc08/aslink.h: updated lnksect prototype + * as/hc08/asm.h, + * as/mcs51/asm.h: added a_addr to struct area and s_org to struct sym + * as/hc08/asmain.c, + * as/mcs51/asmain.c (asmbl): init dot.s_org for S_ORG, + (newdot): handle A_ABS + * as/hc08/asout.c, + * as/mcs51/asout.c (outarea): output address + * as/hc08/lkaomf51.c, + * as/mcs51/lkaomf51.c: disabled unused array UsageType + * as/hc08/m08pst.c, + * as/mcs51/i51pst.c, + * as/z80/z80pst.c: "ABS" is not A_OVR + * as/hc08/lkarea.c (newarea): read a_addr, + (lnkarea): added codemap array, sort absolute areas to the front, + combine all GSINITx/GSFINAL, + (find_empty_space, allocate_space): new functions, + (lnksect): return next address, handle absolute sections + * as/mcs51/lkarea.c (newarea): read a_addr, + lnksect2 prototype changed, + (lnkarea2): define codemap unsigned, combine all GSINITx/GSFINAL, + (find_empty_space, allocate_space): new, factored out of lnksect2, + (lnksect2): return next address, handle absolute sections + * as/hc08/lkhead.c, + * as/mcs51/lkhead.c (newhead): head is absolute but not overlay + * as/hc08/lklibr.c (addfile, fndsym), + * as/mcs51/lklibr.c (addfile, buildlibraryindex, fndsym): prevent + index out of range and detect both '\' and '/' + * device/include/mcs51/c8051f200.h: added _XPAGE, removed bad comment + * device/include/stdbool.h: removed SDCC_ds390 from check to pass + regression tests (ds390 cannot return bool yet) + * doc/sdccman.lyx: changed version number, document changed --no-peep, + document critical interrupts on z80, document changed SDCC define + * src/asm.c (_asxxxx_mapping): fixed .org directive, + (_a390_mapping): added .org directive + * src/hc08/gen.c (transferAopAop): made bytemask log to fix warning, + (genMultOneByte): fixed warnings + * src/hc08/hc08.dsp: lowered warning level to 2 to suppress pedantic + ones + * src/pic16/device.c: removed newReg prototype, removed BYTE_IN_LONG + * src/pic16/gen.c (pic16_popGetLabel): made parameter key signed, + (pic16_genLeftShiftLiteral, genRightShiftLiteral): fixed warnings + * src/pic16/gen.h: changed prototype for pic16_popGetLabel + * src/pic16/main.c: removed newReg prototype + * src/pic16/pcode.c, + * src/pic16/pcode.h (pic16_emitDB): changed parameter c to int to fix + warnings + * src/pic16/pic16.dsp: lowered warning level to 2 to suppress pedantic + ones + * src/pic16/ralloc.c + * src/pic16/ralloc.h (newReg): changed type to int and size to unsigned + to fix warnings + * src/pic/pcode.c (allocInternalRegister): changed parameter optype + from short to PIC_OPTYPE + * src/pic/pic.dsp: lowered warning level to 2 to suppress pedantic ones + * src/pic/ralloc.c (newReg, allocInternalRegister): changed parameter + optype from short to PIC_OPTYPE + * src/port.h: made int_size unsigned to fix warnings + * src/SDCC.y: fixed warning on MSVC + * src/SDCCicode.c (getArraySizePtr): return unsigned int + * src/SDCCopt.c (convertToFcall): fixed warnings + * src/SDCCsymt.h: removed double prototype for genSymName + * src/xa51/ralloc.c (allocReg): made size unsigned int, type int and + offset int to fix warnings + +2006-04-22 Borut Razem + + * doc/sdccman.lyx, */Makefile, */Makefile.in: + references to CVS replaced with Subversion + +2006-04-21 Borut Razem + + * doc/sdccman.lyx, */Makefile, */Makefile.in: + references to CVS replaced with Subversion + +2006-04-19 Borut Razem + + * src/version.awk: adapted for svn + * /asxxxx/asxhtml/*.gif: set property svn:mime-type to image/gif + sim/ucsim/doc/*.gif: set property svn:mime-type to image/gif + sim/ucsim/doc/*.jpg: set property svn:mime-type to image/jpeg + /binutils-avr/etc/*.vi, *.jin: removed all properties + support/scripts/sdcc.ico: set property svn:mime-type to image/x-icon + +2006-04-19 Borut Razem + + * CVS to Subversion migration completed + +2006-04-18 Borut Razem + + * support/scripts/sdcc.nsi: removed unexisting ${DEV_ROOT}\lib\pic\*.o, + ${DEV_ROOT}\lib\src\pic\libdev\*.S, ${DEV_ROOT}\lib\src\pic\libdev\*.inc + +2006-04-17 Borut Razem + + * device/include/Makefile.in: added pic/*.inc to the installation + +2006-04-15 Bernhard Held + + * support/regression/collate-results.py: fixed output in case of + a valdiag error + * support/regression/generate-cases.py: fixed splitting of pathnames + with dots + * as/hc08/lklibr.c (addfile), + * as/mcs51/lklibr.c (addfile): fixed off-by-one bug + +2006-04-11 Raphael Neider + + * src/pic16/gen.c (getFreePtr, pic16_popRegFromString), + * src/pic16/ralloc.c (pic16_allocregWithName): removed debug output + * src/pic16/pcode.c (assignValnums): fixed #1460578 + +2006-04-11 Raphael Neider + + * device/lib/pic/libdev/*.c, + * device/include/pic/*.h: replaced sfr and data with __sfr and __data, + fixes #1468739, enables compilation in --std-c99 mode + * support/scripts/inc2h.pl: emit __sfr/__data instead of sfr/data + +2006-04-11 Raphael Neider + + * src/pic/device.c (find_device): removed debug output + (list_valid_pics): enabled verbose listing of supported devices + * device/include/stdbool.h: define bool as char for pic14/16 as well + +2006-04-07 Frieder Ferlemann + + * src/SDCC.y: allow using brackets here: "__interrupt (1) __using (1)" + +2006-04-07 Maarten Brock + + * .version: bumped version to 2.5.6 + * src/pic/ralloc.c (newReg): MSVC doesn't support __builtin_return_address + +2006-04-06 Raphael Neider + + * .version: bumped version to 2.5.6 (pic14 ABI changed) + * src/SDCCmain.c: add -DSDCC_PROCESSOR= for pic14 port + * src/pic/glue.c (emitSymbolToFile,pic14_constructAbsMap, + pic14emitRegularMap,pic14emitMaps): moved output for absolute symbols to + pic14_constructAbsMap + (pic14printPublics): declare absolute global symbols as global + (pic14createInterruptVect), + * src/pic/ralloc.c (IS_CONFIG_ADDRESS): support second config word, + (newReg): assume new registers unused, use correct name in + hashtable (reg->name instead of name), more debugLog output + * src/pic/device.h (PIC_device): added fields for verbose output + * src/pic/device.c: moved device definition to pic14devices.txt, + added routines for runtime parsing of pic14devices.txt, + added support for second config word + * src/pic/main.c (_process_pragma): removed #pragma maxram, + (_pic14_keywords): no longer accept "bit" and "sbit" keywords + (_pic14_initPaths): add search paths with "pic" suffix (not "pic14") + (_pic14_parseOptions): moved pCodeInitRegisters here + (_pic14_do_link): add "pic$(ARCH).lib" to linker arguments + * src/pic/pcode.c (AnalyzeBanking): bail out on unset processor, + (pCodeInitRegisters): rewrapped comments, perpared new approach to + handling the pseudo stack + * device/lib/Makefile.in: ignore failures in objects-pic16, + * device/lib/pic/{configure,configure.in,Makefile}: added libdev/ + * device/lib/pic/NEWS: document new dependency on picXXX.lib + * device/lib/pic/Makefile.subdir, + * device/lib/pic16/Makefile.subdir: improved clean rules + * device/lib/pic/libdev/: NEW, pic14 device libraries + * device/lib/pic/libsdcc/_gptr{get,put}{1,2,3,4}.S: use _X not X + * device/lib/pic/libsdcc/macros.inc: use _X not X, declare default SFRs + * device/include/Makefile.in: create subdir and install pic14 headers + * device/include/pic/p16f_common.inc: removed unused declarations + * device/include/pic/pic16*.h: added header files for 100+ 14 bit + PICs from inc2h.pl v1.6, + replaced BIT_AT macros with struct declarations + * device/include/pic/pic14devices.txt: definition of supported devices, + all above improvements contributed by Zik Saleeba, thanks + * support/scripts/inc2h.pl: removed BIT_AT, replaced with structs + * support/scripts/sdcc.nsi: also install pic14 device libraries and + headers + +2006-04-06 Maarten Brock + + * device/include/mcs51/c8051f410.h: added interrupt numbers, + * device/include/mcs51/c8051f200.h: old SiLabs mcu completes the list, + thanks to Charles Olds + +2006-04-06 Frieder Ferlemann + + * debugger/mcs51/cmd.c (infoRegisters): show return address on stack + +2006-04-06 Maarten Brock + + * src/SDCCpeeph.c (labelIsReturnOnly): fixed bug 1464657 + * src/mcs51/gen.c (genJumpTab): fixed bug in medium model + * support/regression/bug1464657.c: added, new test + +2006-04-05 Maarten Brock + + * src/SDCCmain.c (preProcess): implemented RFE 1449908, define SDCC as the + version number + +2006-04-05 Maarten Brock + + * src/SDCCpeeph.c (initPeepHole): implemented RFE 1460196, when both + --no-peep and --peep-file are used don't use default rules but + do use the + +2006-04-05 Maarten Brock + + * src/mcs51/gen.c (genCall): fixed bug 1457608 + +2006-03-30 Frieder Ferlemann + + * doc/sdccman.lyx: reverted to version 1.129 of december as my latest + changes seem to cause (trigger?) problems with the build system. + +2006-03-29 Maarten Brock + + * src/SDCCpeeph.c (operandsLiteral): new, added, + (callFuncByName): inserted operandsLiteral + * src/mcs51/peeph.def: reenabled 132.e, added extra check to 132.x + +2006-03-28 Frieder Ferlemann + + * doc/sdccman.lyx: added paragraph "Use of SDCC in Education" + * src/mcs51/peeph.def: disabled rule 132.e fixing bug #1453093 + +2006-03-24 Maarten Brock + + * src/z80/gen.c (genFunction, genEndFunction): fixed bug 1160666, + implemented patch 1120823 Thanks to Willy De la Court (normal + interrupts need an interrupt number now if they are made critical), + and enabled nesting of critical functions though not for gbz80 + (genCritical, genEndCritical): added functions + (genZ80Code): added cases for CRITICAL and ENDCRITICAL + * src/z80/mappings.i: added "ei" to all mappings + +2006-03-20 Frieder Ferlemann + + * sim/ucsim/cmd.src/newcmdcl.h: applied patch fixing GCC 4.1 build + submitted by the Debian SDCC maintainer Aurelien Jarno: + "Credits goes to Martin Michlmayr, who rebuilt the whole Debian + archive with gcc 4.1 on mips and wrote the patch" + +2006-03-16 Raphael Neider + + * src/pic16/genarith.c (genAddLit): simplified and fixed case where + the left operand is shorter than the result (c* = lit-c* + int), + fixes bug #1450796 + * src/pic16/gen.c (genRightShift): check IS_SYMOP before accessing + OP_SYMBOL + +2006-03-14 Vangelis Rokas + + * src/.version: increased version number to 2.5.5 + * src/SDCCmain.c (linkEdit): do not test for PIC16 target since, PIC16 + linking is done manually in pic16 port's _linkEdit, + * src/SDCCsymt.c (compStructSize): for target PIC16 and shell variable + PIC16_PACKED_BITFIELDS, compact bitfield structures as much as possible, + * src/pic16/gen.c (aopForSym): when direct register name is WREG then + allocate asmop as AOP_ACC, + (aopForRemat): added parameter 'bool result' in function declaration, + (pic16_aopGet): return AOP_ACC when accessing WREG, + (pic16_popGetTempReg): minor modification, + (pic16_popRegFromIdx): first try with 'pic16_regWithIdx' then with + 'pic16_allocWithIdx', + (genPcall): removed ftype, usage of OP_SYM_TYPE asserted error when + calling function in absolute addresses, + (genAssign): take into account AOP_ACC asmop, + * src/pic16/pcode.c (pic16_newpCodeOpReg): minor modifications, + * src/pic16/pcoderegs.c: some debug functions and lines added, + * src/pic16/ralloc.c (decodeRegType): added but commented out, + * (pic16_typeRegWithIdx): search 'pic16_dynInternalRegs' for given + register too, + * (pic16_findFreeReg, pic16_findFreeRegNext): allocate new register via + call to allocReg, not by manually allocating a new one, + (pic16_assignRegisters): now before going through the register + allocating functions mark all registers as free. This eliminates some + side effects resulting from peephole parser done earlier in the backbone + +2006-03-13 Maarten Brock + + * src/SDCCicode.c (geniCodeLogic), + * src/SDCCast.c (decorateType): applied patch by Bernhard for rfe 1422617 + +2006-03-10 Maarten Brock + + * src/mcs51/gen.c (sameReg): new, checks if two aop regs are the same, + (genSend): bugfix, do not allocate and free twice, + (shiftRLong): handle partially overlapping aops + * support/regression/tests/bitopcse.c: fixed warning redefined idata + +2006-03-08 Borut Razem + + * support/regression/fwk/include/testfwk.h: added defines for xdata, idata + for pic16 + +2006-03-08 Maarten Brock + + * support/regression/tests/bug1409955.c: new, added + * src/mcs51/gen.h: changed asmop.freed:1 to asmop.allocated for tracking + * src/mcs51/gen.c (newAsmop): set asmop.allocated to 1, + (aopForSym, aopOp): increment asmop.allocated if reused, + (freeAsmop): decrement asmop.allocated and check for zero instead of + using asmop.freed, + (freeForBranchAsmop): use asmop.allocated instead of asmop.freed, + (genNot, genCpl, genUminus, genMinus, genMult, genDiv, genMod, genCmpGt, + genCmpLt, genAndOp, genOrOp, genAnd, genOr, genXor, genRRC, genRLC, + genGetHbit, genGetAbit, genGetByte, genGetWord, genSwap, + genLeftShiftLiteral, genLeftShift, genRightShiftLiteral, + genSignedRightShift, genRightShift, genDataPointerGet, + genPagedPointerGet, genFarPointerGet, genCodePointerGet, + genGenPointerGet, genDataPointerSet, genAssign, genCast): free asmop's + in reverse order from allocation, + (genPlus, genCmpEq): free asmop's in reverse order from allocation and + added swappedLR to keep track + * support/regression/fwk/include/testfwk.h: added defines for xdata, idata, + pdata & code for GCC, z80, gbz80 & hc08 + * support/regression/tests/zeropad.c: moved defines to testfwk.h + +2006-03-08 Raphael Neider + + * src/pic16/main.c (_hasNativeMulFor): fixed bug #1444425 + +2006-03-07 Maarten Brock + + * device/include/mcs51/c8051f410.h: new SiLabs mcu + * src/ds390/peeph.def: disabled 186.d and 227.a as fix for #1434401 + * support/regression/tests/array.c: added parenthesis, made arrays unsigned + +2006-03-06 Borut Razem + + * support/regression/ports/pic16/spec.mk: link with libm18f.lib, + made the linker quiet + +2006-03-06 Vangelis Rokas + + * src/pic16/gen.c (genPcall): fixed bug #1443644 + * src/pic16/device.h (struct pic16_options_t): added 'int CATregs' flag + which dumps before the function entry point a data byte which represents + the number of the local variables used by the specified function, added + 'xinst' for initial support for Extended Instruction Support, + * src/pic16/gen.c (aopForSym, pic16_aopGet): beautifications, + (pic16_testStackOverflow): do not prefix GSTACK_TEST_NAME with + port->fun_prefix anymore (may change later), + (genFunction, genEndFunction): do not store/restore local registers for + _main (this should take care the --main-return command line option in + the future), + (genOr): removed some legacy pic-port instructions, + * src/pic16/genarith.c (genAddLit): re-enabled old code because + performing operations with SFR's causes data to be written more than + once to each SFR. Perhaps SFRs should be handled in special cases... + * src/pic16/glue.c: macros BIG_ENDIAN and BYTE_IN_LONG are moved to + pcode.h + * src/pic16/main.c (_process_pragma): stack bound checking did not take + into account for stack starting position, + (struct OPTIONS pic16_optionsTable): added command line argument + --extended or -y for Extended Instruction Support, + * src/pic16/ralloc.c (pic16_decodeOp): added case for FUNCTION, + (deassignLRs): *** perhaps the most important change, old 'for' code + (commented out for reference), didn't account for some registers which + were left marked 'not free' after a pointer operation. The change + reduces register usage a lot in some cases + +2006-03-04 Borut Razem + + * support/regression/ports/hc08/spec.mk: remove *.asm in traget + _clean + * support/regression/tests/bug-524697.c: decreased array size for + mcs51 to fit into the internal RAM + * support/regression/Makefile.in: a little bit more verbose + +2006-03-03 Borut Razem + + * support/regression/fwk/lib/testfwk.c, + support/regression/fwk/include/testfwk.h: introduced function + _prints(), nonrecursive _printn(), call _initEmu() from main() + * support/regression/ports/gbz80/support.asm, + support/regression/ports/ucz80/support.asm, + support/regression/ports/z80/support.asm, + support/regression/ports/ds390/support.c, + support/regression/ports/hc08/support.c, + support/regression/ports/host/support.c, + support/regression/ports/mcs51/support.c, + support/regression/ports/xa51/support.c: added empty _initEmu() + function + * support/regression/ports/pic16/gpsim.cmd, + support/regression/ports/pic16/spec.mk, + support/regression/ports/pic16/support.c, + support/regression/Makefile.in: added pic16 regression test + +2006-03-01 Raphael Neider + + * src/pic16/gen.c (genPcall,pic16_derefPtr,genGenPointerGet, + genConstPointerGet): use safe way of generating MOVFF to cover + literals as well as registers, fixes bug #1440527 + * src/pic16/glue.c (pic16_printIvalBitFields): prevent NULL pointer + dereference + (pic16_printIvalUnion,pic16_isUnion): NEW, handle initialized unions + more correctly, fixes bug #1232186 + (pic16_printIval): use pic16_printIvalUnion() for initialized unions + * src/pic16/main.c (_pic16_linkEdit): reorder linker arguments to make + gplink guess the correct processor in more cases, applied patch + from Till Riedel attached to and fixing bug #1436552 + +2006-02-20 Frieder Ferlemann + + * support/regression/tests/array.c: added, contains check for #1434401 + * src/mcs51/peeph.def: disabled 186.d as temporary fix for #1434401 + +2006-02-16 Maarten Brock + + * device/include/mcs51/at89s8253.h: new, thanks to Krzysztof Polomka + * device/include/mcs51/at89S8252.h: fixed, thanks to Krzysztof Polomka + * device/include/mcs51/c8051f326.h, + * device/include/mcs51/c8051f340.h: new SiLabs mcu's + * device/include/mcs51/c8051f000.h, + * device/include/mcs51/c8051f018.h, + * device/include/mcs51/c8051f020.h: used () with __at, renamed IDLE,STOP to + PCON_IDLE,PCON_STOP and added sfr16 definitions + +2006-02-14 Maarten Brock + + * src/mcs51/gen.c (genPlus, genMinus, genMult, genGetAbit, genGetByte, + genGetWord): fixed bug 1409955 + +2006-02-14 Maarten Brock + + * device/include/hc08/mc68hc908gp32.h, + * device/include/hc08/mc68hc908jb8.h: removed AWUL, added PTA6 & PTA7 + +2006-02-13 Maarten Brock + + * src/SDCCast.c (constExprValue): return NULL if not a value + * src/SDCCglue.c (printIvalArray): fixed bug 1225568 + * src/hc08/gen.c(genUnpackBits, genUnpackBitsImmed): fixed bug 1019480 + * support/regression/tests/bitfields.c: enabled signed bitfield for all + +2006-02-13 Borut Razem + + * src/regression/ptrarg.c: added, fails due to bug #1430967 + * src/regression/Makefile: ptrarg.c added, ... + +2006-02-12 Maarten Brock + + * src/z80/gen.c (genUnpackBits): fixed bug 1019480 + * support/regression/tests/bitfields.c: enabled signed bitfield for z80 + +2006-02-11 Borut Razem + + * src/SDCCmain.c: Added "sdcc: Calling linker..." if --verbose, + print "Processor: xxx" message to stdout only if --verbose + +2006-02-11 Maarten Brock + + * src/SDCCglue.c (printIvalStruct): fixed bug 1426356 union initializer + * support/regression/tests/bug1426356.c: added + * support/regression/tests/bitfields.c: removed 2 tests + +2006-02-10 Maarten Brock + + * device/include/mcs51/at89c51snd1c.h: updated comments, see patch 1428901 + * device/include/mcs51/c8051f330.h, + * device/include/mcs51/c8051f350.h: used () with __at, renamed IDLE,STOP to + PCON_IDLE,PCON_STOP and added sfr16 definitions + * device/lib/_divsint.c, + * device/lib/_divuint.c, + * device/lib/_divulong.c, + * device/lib/_divulong.c: renamed a,b to x,y to avoid confusion, fixed + register bank bug for small stackauto + +2006-02-09 Maarten Brock + + * support/regression/fwk/lib/timeout.c: include for exit() + +2006-02-08 Maarten Brock + + * support/regression/ports/mcs51-xstack-auto/spec.mk: forgot -I(...)/mcs51 + * all.dsp: corrected several bin paths + * device/include/mcs51/c8051f120.h, + * device/include/mcs51/c8051f300.h, + * device/include/mcs51/c8051f310.h: used () with __at and renamed IDLE,STOP + to PCON_IDLE,PCON_STOP + * device/include/mcs51/c8051f320.h: see above, also added sfr16 definitions + * device/lib/printf_large.c (output_float): fixed bug 1388703 + * support/regression/tests/bug1057979.c: added test for bug 1388703 + +2006-02-08 Raphael Neider + + * src/pic/pcode.c (pciTRIS): fixed typo, + (BuildFlow,LinkFlow_pCode): added (disabled) debug output, + (LinkFlow): fixed handling of flows that end in a call, + (ReuseReg): perform safety check earlier + * src/pic/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed + to work with flows at the beginning of a pBlock, + fixes #1426557 (Symbol not previously defined), + (pic14_ReMapLiveRanges): NEW, destroy and rebuild register + usage information + (RemoveUnusedRegisters): update register usage info + * src/pic/ralloc.c (newReg): prevent duplicate registers from being + created, reuse existing ones instead + * src/pic/gen.c (genPcall): fixed #1424719 + +2006-02-07 Bernhard Held + + * link/z80/lkmain.c, + * link/z80/lklex.c, + * link/z80/lkdata.c, + * link/z80/aslink.h: fixed build on current cygwin: + replaced getline() by lk_getline() + +2006-02-01 Borut Razem + + * src/regression/add.c, src/regression/add2.c, src/regression/add3.c, + src/regression/add4.c, src/regression/and1.c, src/regression/and2.c, + src/regression/arrays.c, src/regression/b.c, src/regression/bank1.c, + src/regression/bool1.c, src/regression/bool2.c, + src/regression/bool3.c, src/regression/call1.c, + src/regression/compare.c, src/regression/compare10.c, + src/regression/compare2.c, src/regression/compare3.c, + src/regression/compare4.c, src/regression/compare5.c, + src/regression/compare6.c, src/regression/compare7.c, + src/regression/compare8.c, src/regression/compare9.c, + src/regression/configword.c, src/regression/for.c, + src/regression/inline.c, src/regression/mult1.c, + src/regression/nestfor.c, src/regression/or1.c, + src/regression/pointer1.c, src/regression/ptrfunc.c, + src/regression/rotate1.c, src/regression/rotate2.c, + src/regression/rotate3.c, src/regression/rotate4.c, + src/regression/rotate5.c, src/regression/rotate6.c, + src/regression/rotate7.c, src/regression/string1.c, + src/regression/struct1.c, src/regression/sub.c, + src/regression/sub2.c, src/regression/switch1.c, + src/regression/while.c, src/regression/xor.c, + src/regression/create_stc, src/regression/simulate, + src/regression/rt.sh, src/regression/Makefile: reenabled Scott's PIC14 + regression tests + * src/regression/gpsim_assert.h: added + +2006-01-28 Bernhard Held + + * src/ds390/gen.c (unsaveRegisters): fixed literal function pointer + ((void (code *) (void)) 0) (); + * as/hc08/aslex.c, + * as/hc08/aslink.h, + * as/hc08/asm.h, + * as/hc08/asmain.c, + * as/hc08/lkdata.c, + * as/hc08/lklex.c, + * as/hc08/lkmain.c, + * as/mcs51/aslex.c, + * as/mcs51/aslink.h, + * as/mcs51/asm.h, + * as/mcs51/asmain.c, + * as/mcs51/lkdata.c, + * as/mcs51/lklex.c, + * as/mcs51/lkmain.c, + * as/z80/aslex.c, + * as/z80/asm.h, + * as/z80/asmain.c: fixed build on current cygwin: + replaced getline() by as_getline() + +2006-01-27 Bernhard Held + + * src/SDCC.y: fixed bug #716242, exchanged pointer and function + declarator in the symbol chain + * src/SDCCsymt.h, + * src/SDCCsymt.c (processFuncPtrArgs): added, removes "(void)" + parameter list for function pointers + * src/SDCCast.c (decorateType): added call of processFuncPtrArgs() + * support/regression/tests/bug-716242.c: added + +2006-01-20 Bernhard Held + + * src/SDCCicode.c (geniCodeAdd, geniCodeArray): use char for array + offset if possible + * src/SDCCast.c (getLeftResultType): 255 fits in char, not 256 + +2006-01-18 Bernhard Held + + * src/SDCCast.c (backPatchLabels): fixed bug #1408066: made it + inifinitely recurseable, added static + * support/regression/tests/bug-1408066.c: added + +2006-01-17 Bernhard Held + + * src/SDCCicode.h, + * src/SDCCicode.c (newiTempPreheaderLabel, newiTempLoopHeaderLabel): + renamed, added possibility to create "postLoopLbl"-labels + * src/SDCCBBlock.c (iCodeBreakDown): renamed newiTempPreheaderLabel to + newiTempLoopHeaderLabel + * src/SDCCloop.c (newInduction, newRegion, backEdges, insertIntoLoop, + isNotInBlocks, addToExitsMarkDepth, createLoop, dominatedBy, + addDefInExprs, assignmentsToSym, isOperandInvariant, pointerAssigned, + hasNonPtrUse, loopInvariants, addressTaken, findInduction, + findDefInRegion, mergeRegions, ifMerged, mergeInnerLoops): made static, + (pinduction, pregion, hasIncomingDefs, findLoopEndSeq): disabled, + (basicInduction): fixed bug #136564, made static, + (loopInduction): changed parameter of basicInduction, made static, + (addPostLoopBlock): added + * src/SDCCloop.h: removed backEdges, pregion, pinduction, + loopOptimizations, addressTaken, findDefInRegion, hasIncomingDefs, + findLoopEndSeq + * support/regression/tests/bug-136564.c: added + * support/regression/ports/mcs51-xstack-auto/spec.mk: added + --std-sdcc99 to LIBSDCCFLAGS + +2006-01-16 Bernhard Held + + * src/SDCCicode.c (geniCodeIfx): fix bug 1406131: always false + while loop + * support/regression/tests/bug-1406131.c: added + +2005-12-31 Bernhard Held + + * src/SDCCast.c (decorateType): fix promotion of unary minus + * src/SDCCsymt.c (computeType): beautified + * src/SDCCval.c (cheapestVal): beautified, old non-Ansi version removed, + (valUnaryPM, valComplement): fix sign and promotion, + (valNot): ANSI: result type is int (SDCC: unsigned char) + * support/regression/tests/uminus.c: speedup by removing superflous + test case 'int' + * support/regression/tests/onebyte.c: added promotion and signedness + tests for unary minus + * support/regressions/tests/bug-477927.c: disable warning about + uninitialized variables + * support/regression/tests/not.c: added + +2005-12-28 Bernhard Held + + * device/lib/Makefile.in: added --std-sdcc99 to CFLAGS + * src/mcs51/gen.c (gen51Code): show final register usage after + fillGaps in asm with --i-code-in-asm + * src/SDCClrange.c (sequenceiCode, setLiveFrom, setLiveTo, + markLiveRanges, markAlive, findNextUseSym, findNextUse, unvisitBlocks, + incUsed, rliveClear, adjustIChain): made static, + (setFromRange): excluded because it's unused, + (findPrevUseSym, markWholeLoop): added, + (findPrevUse): rewritten; fixes bug 895992; now a complete search + through all branches of predecessors enables sdcc to emit the warning + W_LOCAL_NOINIT, marking of outermost loop was incomplete, + (rlivePoint): made static, added parameter emitWarnings which is only + true during the first run out of two, + (findRecursiveSucc, findRecursivePred): removed, + (computeLiveRanges): made static, added parameter emitWarnings, + (dumpIcRlive): added for debugging only + * src/SDCClrange.h: added boolean parameter to computeLiveRanges(), + removed prototype of setFromRange() + * src/SDCCopt.c (eBBlockFromiCode): added new parameter emitWarnings + in call of computeLiveRanges() + * support/regression/tests/bug-895992.c: added + * support/regression/tests/bug-971834.c: added + * support/valdiag/tests/bug-895992.c: added + * support/valdiag/tests/bug-971834.c: added + +2005-12-18 Raphael Neider + + * src/pic16/gen.c: added IS_DIRECT macro for "direct" operands, + (genUnpackBits): improved code for direct operands, + (genPackBits): improved code for literal assignment to bitfields + and for direct destination operands (no FSR indirection), + prevented redundant AND, fixes #1362800, + (AccLsh): added parameter to disable masking of the result + * src/pic16/pcode.c (pic16_safepCodeUnlink): fixed to work with + skip instructions with side-effects (like incfsz), + (pic16_pCodeIsAlive): suppress verbose output unless pcode_verbose, + * src/pic16/pcoderegs.c (RemoveRegsFromSet): removed annoying warning + * device/lib/pic16/Makefile.common.in: added --asm=@GPASM@ to CC, + fixes #1375263 + +2005-12-11 Bernhard Held + + * src/SDCCicode.c (geniCodeAssign): fixed bug 11369874, don't use + volatile variables as spill location + +2005-12-10 Bernhard Held + + * src/SDCCcse.c (findCheaperOp): fixed bug 1376320, copy signedness to + replacing literals + * support/regression/tests/bug-1376320.c: added + +2005-12-08 Raphael Neider + + * src/pic/device.c: renamed is_shared to pic14_is_shared + * src/pic/gen.c (genIfx): re-enabled handling of sbits + * src/pic/glue.c (emitSymbolToFile): added workaround for sbits, + (is_valid_identifier): added for above workaround + +2005-12-07 Maarten Brock + + * device/lib/Makefile.in: fixed to enable port-specific-objects + * device/lib/ds390/i2c390.c (BitOutI2C): optimized by making bout unsigned + char, thanks Hubert Sack + * doc/sdccman.lyx: documented --xstack-loc, + elaborated a bit more on interrupts and pitfalls, + removed "setjmp/longjmp unsupported", + documented some unsupported C99 features + * src/SDCCmain.c (linkEdit): adapted default lib path for --stack-auto + * src/SDCCpeeph.c (readRules): inserted patch 1367130 for finding missing + if, thanks Hubert Sack + * src/mcs51/gen.c (genEndFunction): enabled "pop psw" for regbank 0 isr + * support/regression/Makefile.in: test-mcs51-stack-auto no longer needs to + make make_library + * support/regression/get_ticks.py: new, get cpu cycles and code size, so + regression tests can report resource usage (rfe 700441) + * support/regression/collate-results.py: report resource usage + * support/regression/ports/ds390/spec.mk, + * support/regression/ports/hc08/spec.mk, + * support/regression/ports/mcs51/spec.mk, + * support/regression/ports/ucz80/spec.mk: run sim output through get_ticks + * support/regression/ports/ds390/uCsim.cmd, + * support/regression/ports/hc08/uCsim.cmd, + * support/regression/ports/mcs51/uCsim.cmd, + * support/regression/ports/ucz80/uCsim.cmd: inserted "state" to report time + * support/regression/ports/mcs51-stack-auto/spec.mk: no need to build the + library, use the default one + * support/regression/ports/mcs51-xstack-auto/spec.mk: inserted rules for + building the library + +2005-12-06 Maarten Brock + + * config.dsp: added dependency on .version and configure_vc.awk + * device/include/setjmp.h: updated for --stack-auto and --xstack + * device/include/mcs51/at89c51snd1c.h: corrected line endings + * device/include/mcs51/XC866.h: added, thanks Llewellyn van Zyl + * device/lib/_setjmp.c: updated for --stack-auto and --xstack + * device/lib/libsdcc.lib: added _setjmp + * src/SDCCast.c (createIvalCharPtr): fixed warnings, + (decorateType): fixed bug 1372851, + (optimizeGetHbit): fixed warning + * src/SDCCglue.c (printIvalChar, printIvalArray): adapted for flexible + array initialisation + * support/regression/tests/bug1057979.c: added test for bug 1358192 + * support/regression/tests/setjmp.c: added, test for setjmp/longjmp + +2005-12-03 Borut Razem + + * support/scripts/sdcc.nsi: added /SOLID option to "SetCompressor lzma" + command since the NSIS was upgraded to version 2.11 on CF x86-linux2 + +2005-11-29 Bernhard Held + + * src/SDCCast.c (createIvalStruct, createIvalArray, createIvalPtr, + createIval): implement symbol independant "flexible array member", + (createIvalCharPtr): implemented flexible array initialisation with a + string + * src/SDCCsymt.c (copyStruct): removed, + (getSize): fixed misleading comment, + (getAllocSize): removed, the additional allocation size is now in + sym->flexArrayLength, + (checkStructFlexArray): new, syntax checks for flexible array members, + (compStructSize): added syntax checks for "flexible array members" + (copyStruct): removed, + (copyLinkChain): removed inefficient fix for bug 770487 + * src/SDCCglue.c (emitRegularMap): getAllocSize has been removed + * src/SDCCsymt.h: added structdef.b_flexArrayMember and + symbol->flexArrayLength + * src/SDCCerr.c, + * src/SDCCerr.h: added W_INVALID_FLEXARRAY, W_C89_NO_FLEXARRAY, + E_FLEXARRAY_NOTATEND and E_FLEXARRAY_INEMPTYSTRCT + * support/regression/tests/structflexarray.c: added + * support/valdiag/tests/structflexiblearray.c: added + +2005-11-29 Bernhard Held + + * src/SDCCast.c (decorateType): fixed bug 1368489 + * support/Util/SDCCerr.c, + * support/Util/SDCCerr.h: added warning W_CMP_SU_CHAR + +2005-11-28 Frieder Ferlemann + + * device/include/mcs51/at89c51snd1c.h: added file submitted by + Weston T. Schmidt , patch #1368001 + +2005-11-27 Borut Razem + + * support/cpp2/cppinit.c, support/cpp2/cpplib.h, support/cpp2/mkdeps.c, + support/cpp2/mkdeps.h: added command line option + -obj-ext= to SDCPP to define object file externion, used + for generation of make dependencies (-M) + * src/SDCCmain.c: pass -obj-ext= to SDCPP + +2005-11-26 Borut Razem + + * support/scripts/sdcc.nsi: added small-stack-auto libraries, + added missing device/lib/mcs51/crt*.asm, pic and pic16 sources, + added pic and pic16 libraries + +2005-11-26 Jesus Calvino-Fraga + + * device/include/float.h: Corrected typo in prototype of __fsgt + +2005-11-25 Borut Razem + + * sdcc/device/lib/Makefile.in, sdcc/device/lib/incl.mk: + added creation of model-mcs51-stack-auto libraries + +2005-11-24 Bernhard Held + + * src/SDCCsymt.c (copyLinkChain): fixed bug 770487, copy structdef + and fields-list too + * src/SDCCast.c (createIvalArray): removed obsolete comment + +2005-11-24 Borut Razem + + * sdcc/device/lib/Makefile.in: remove all unnecessary files, 2nd try..., + added missing device/lib/mcs51/crt*.asm sources + +2005-11-23 Bernhard Held + + * src/SDCCast.c (createIvalCharPtr): fixed bug 1348271 + +2005-11-22 Maarten Brock + + * device/lib/_fs2schar.c, + * device/lib/_fs2sint.c, + * device/lib/_fs2slong.c: optimized inline asm + +2005-11-21 Jesus Calvino-Fraga + + * device/lib/_fs2slong.c, device/lib/_fs2sint.c, device/lib/_fs2char.c: + Better handling of floats between -1.0 and 0.0. + +2005-11-20 Frieder Ferlemann + + * src/mcs51/peeph.def: added missing "if"s as noted by Hubert Sack. + (the missing "if"s prohibited removal of redundant labels) + +2005-11-19 Jesus Calvino-Fraga + + * device/lib/_fs2slong.c, device/lib/_fs2sint.c, device/lib/_fs2char.c: + Properly convert floats between -1.0 and 0.0 to long, int, and char + types (max integer value of negative floats tends to zero). + * device/lib/modff.c, device/lib/ceilf.c, device/lib/floorf.c: + Removed changes made so to work properly with floats between + -1.0 and 0.0, as the problem is fixed in _fs2slong.c, _fs2sint.c, + and _fs2char.c + +2005-11-18 Bernhard Held + + * src/SDCCcse.c (ReplaceOpWithCheaperOp): minor fix for debugging only + * src/mcs51/gen.c (genUnpackBits): better code and a fix, + (genCast) cosmetic change + * src/ds390/gen.c (genUnpackBits, ): ported from mcs51 + * src/ds390/ralloc.c (packRegsForAssign): ported fix for bitfields + from mcs51 + * support/regression/tests/bitfields (testSignedBitfields): added + +2005-11-18 Borut Razem + + * sdcc/device/lib/Makefile.in: remove all unnecessary files + * device/lib/pic/Makefile.rules, device/lib/pic16/Makefile.subdir: + introduced SILENT option to make building of pic16 libraries less + +2005-11-18 Jesus Calvino-Fraga + + * device/lib/modff.c, device/lib/ceilf.c, device/lib/floorf.c: + Now they work properly with floats between -1.0 and 0.0 + * device/lib/printf_large.c: Removed temporary patch for bug 1358192 + +2005-11-18 Maarten Brock + + * src/SDCCicode.c (printOperand): added missing else + +2005-11-18 Bernhard Held + + * src/SDCCsymt.c (computeType): fixed bug 1358192: added missing else, + reformatted for better readability + * src/mcs51/gen.c (genUnpackBits): initial, incomplete support for + signed bitfields + +2005-11-17 Borut Razem + + * device/lib/pic16/Makefile.rules, device/lib/pic16/Makefile.subdir: + introduced SILENT option to make building of pic16 libraries less + verbose - used for nightly snapshot build + * doc/sdccman.lyx: documented that SDCDB and ucSim are currently not + available on Win32 platforms. + * sdcc/device/lib/Makefile.in: added library sources for mcs51, small, + medium, large, pic and pic16 + +2005-11-16 Jesus Calvino-Fraga + + * device/lib/printf_large.c: Temporary patch for bug 1358192: + printf("%f"...) sets fraction to zero. + +2005-11-16 Raphael Neider + + * src/pic/pcode.c (LinkFlow): handle empty flows correctly, + fixes #1357221 + * src/pic/gen.c (genIfx): implemented for CARRY bit + * src/pic16/gen.c (genAssign,genCast): fixed assigning/casting + to generic pointers, fixes #1357332, + (pic16_movLit2f): NEW, + (pic16_storeForReturn,genDataPointerSet): use pic16_movLit2f + +2005-11-14 Maarten Brock + + * src/SDCCmain.c (parseCmdLine): fixed bug 1356800, thanks rsudjian + +2005-11-11 Raphael Neider + + * src/pic/gen.c: handle FPOINTERS like POINTERS everywhere + * src/pic16/gen.c (pic16_derefPtr): now works for non-pointers as well, + compute pointer's type from operand, + (genUnpackBits,genPackBits): handle FPOINTERS correctly, re-indented, + improved single bit reads, fixes bug #1353379 + +2005-11-09 Borut Razem + + * support/scripts/sdcc.nsi: added lib/pic to the package + +2005-11-08 Maarten Brock + + * src/SDCCval.c (valUnaryPM): fixed bug 1350699 + +2005-11-06 Maarten Brock + + * support/regression/tests/bug1348008.c: added + * src/mcs51/gen.c (saveRBank, unsaveRBank): fixed bug 1348008 + * support/regression/tests/bug1337835.c: updated comment + +2005-11-06 Borut Razem + + * sim/ucsim/error.cc, sim/ucsim/errorcl.h, + sim/ucsim/sim.src/stack.cc, sim/ucsim/sim.src/stackcl.h, + sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h, + sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/memcl.h, + sim/ucsim/cmd.src/set.cc, sim/ucsim/cmd.src/show.cc: + dynamic construction of cl_error_class and derivates - 2.nd try + +2005-11-05 Borut Razem + + * sim/ucsim/sim.src/error.cc: fixed uninitialized class member variable + bug, which caused Bus Errors on sparc solaris + +2005-11-04 Borut Razem + + * sim/ucsim/error.cc, sim/ucsim/errorcl.h, + sim/ucsim/sim.src/stack.cc, sim/ucsim/sim.src/stackcl.h, + sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h, + sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/memcl.h, + sim/ucsim/cmd.src/cmdconf.cc: dynamic construction of cl_error_class + and derivates to resolve the initialization problem on OSX + +2005-11-02 Borut Razem + + * sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc: + corrected typo - #include + +2005-11-02 Maarten Brock + + * src/asm.c (printILine): always close tmpFile, thanks Beau E. Cox, + (_asxxxx_mapping): added org directive for future enhancements + +2005-11-01 Borut Razem + + * sim/ucsim/app.cc, sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc: + enabled sockets on WIN32 + * sim/ucsim/cmd.src/newcmd.cc: fixed bug with uninitialized variables + +2005-10-31 Borut Razem + + * support/regression/generate-cases.py: escape backslashes in {testcase}: + WIN32 backslash path delimiters should be escaped when used in C strings + * support/regression/tests/bitfields.c: exclude failing assertions for + __CYGWIN32__ and __MINGW32__ hosts + +2005-10-30 Borut Razem + + * src/SDCCutil.c: corrected double comparison typo + +2005-10-30 Maarten Brock + + * device/lib/medium/Makefile: added for new memory model medium + * device/include/asm/mcs51/features.h: updated for medium/pdata + * device/include/mcs51/c8051f120.h: added sfr16/sfr32 definitions, + added Multiply & Accumulate sbit's and MAC0_PAGE define + * device/include/mcs51/c8051f300.h: added sfr16 definitions + * device/include/mcs51/c8051f310.h: added sfr16 definitions + * device/lib/_mullong.c: update for medium model + * device/lib/incl.mk: added medium model + * doc/sdccman.lyx: documented medium model + * src/SDCCast.c (isBitAndPow2): simplified using updated powof2 + * src/SDCCicode.c (geniCodeMultiply, geniCodeDivision): use updated powof2 + * src/SDCCmain.c (optionsTable, linkEdit): enabled medium model + * src/SDCCmem.c (allocIntoSeg): set iaccess for pdata symbols, + (allocParms): set SCLS and OCLS to pdata for medium model + * src/SDCCsymt.c (processFuncArgs): use default_local_map and set iaccess + for pdata, + (powof2): return <0 if not power of 2 + * src/avr/gen.c (genBitWise): use updated powof2 + * src/mcs51/gen.c (genMinusDec): use acc if necessary, + (shiftR2Left2Result): small optimization in setup, save acc when storing, + (shiftLLeftOrResult): use B if necessary + * src/mcs51/main.c (_mcs51_finaliseOptions, mcs51_port): added medium model + * src/mcs51/peeph.def: renamed 226 to 226.b, added 226.a + * src/pic/main.c (_pic14_do_link): made void parameter list explicit + * support/regression/Makefile.in: added test-mcs51-medium + * support/regression/ports/mcs51-medium/spec.mk: added to test medium model + +2005-10-28 Bernhard Held + + * src/SDCCsymt.c (compStructSize): make bitfields without (un)signed + specifier unsigned + * device/lib/time.c (mktime): fixed bug 1334315 + +2005-10-28 Raphael Neider + + * device/include/pic/p16f_common.inc: added common declarations + * src/pic/ralloc.c (initStack): moved regs *r to block start for Alpha + +2005-10-27 Maarten Brock + + * src/mcs51/gen.c (getTempRegs): return 0 if not enough registers found, + (aopPutUsesAcc): added to predict accumulator use, + (assignResultValue): save acc if necessary, + (genMinusDec): store result if indirectly addressed, + (genDivOneByte): save acc if necessary, + (movLeft2Result): bugfix if left already in acc, + (genAnd, genOr, genXor, shiftL2Left2Result, shiftR2Left2Result): pay more + attention to accumulator use (esp. pdata), + (genReceive): receive pdata correctly + * src/SDCCicode.c (isOperandInPagedSpace): added to detect pdata operands + * src/SDCCicode.h: added isOperandInPagedSpace prototype + +2005-10-27 Raphael Neider + + * doc/sdccman.lyx: corrected version (should be 2.5.4 not 2.5.5) + +2005-10-27 Raphael Neider + + * .version: changed version to 2.5.4 + * doc/sdccman.lyx: changed version to 2.5.4, added some remarks to PIC14 + * device/lib/pic/libsdcc/{_mulint.c,_mullong.c}: use unsigned literals, + (_divschar.c,divuchar.c,_mulchar.c,_modschar.c,_moduchar): NEW, + arithmetics support routines + * device/lib/pic/Makefile.rules: have assembler sources preprocessed + * device/lib/Makefile.in: also create installdir for pic + + * src/SDCCopt.c (cnvToFcall): mark support routines `extern' for + pic14 port as well + * src/pic/device.c (dump_sfr): rewritten to delegate register + placement to the linker (use `extern sym' rather than sym EQU addr), + (validAddress): fixed to check last specified address + * src/pic/gen.c (aopForSym): added code to deal with array (useless?), + (popGetLit): truncate literal value to 8 bit, + (popGet): moved assert to more appropriate place + (popGetExternal): create pCode operand from and mark the according + symbol as being `extern' + (popGetAddr): added sanity check on immediate's offset, provide + GPOINTER tag on demand + (aopPut): fixed for immediates, + (mov2w_op): move operand's address or contents to WREG (depending on + operand type), safer variant of mov2w, + (movwf,call_libraryfunc): NEW, handy abbreviations, + (get_argument_pcop,get_return_val_pcop,pass_argument, + get_returnvalue): interface for accessing function parameters and + return values, + (assignResultValuei,genRet): use new parameter/return value interface + (pic14_getDataSize): back to old version handling generic pointers, + (pic14_toBoolean,genNot,genCpl,genCmpEq,genOrOp): heavily rewritten, + provided implementation and/or fixed old one, + (genMultOneByte,genDivOneByte,genModOneByte): implemented as library + calls, removed legacy 8051 reference code + (AccLsh,AccRsh): rewritten and fixed to deal with signed operands + (loadSignToC): NEW, move the operands sign bit to CARRY, + (genGenericShift): NEW, replaces genLeftShift, genRightShift and + genRightShiftSigned, accepts negative shift counts, + (setup_fsr): load FSR and adjust IRP (indirect memory access), + (emitPtrByteGet,emitPtrByteSet): rewritten, now works with + generic pointers, __data pointers and __code pointers, + (genUnpackBits,genPackBits): rewritten to work with generic pointers + and signed bitfields, limit bitfields to 8 bit, + (genDataPointerGet): fixed number of bytes read, + (genGenPointerGet,genConstPointerGet): fixed bitfield access, + (genPointerGet,genPointerSet): fixed handling of __code pointers, + pointers to constant data are no longer assumed to point to __code + space, removed invalid pointer types, + (bitpatternFromVal): retrieve the PICs representation of an integer + or float literal, + (genDataPointerSet): fixed assigning to po_immediate operands, + (genGenPointerSet): implemented as library call, + (genIfx): fixed incorrect condition, + (genAddrOf): limit generic pointers' addresses to 2 bytes, + provide GPOINTER tag according to destination's storage class, + (genCast): added code to handle casting to generic pointers, added + sign-/zero extension of the result + (aop_isLitLike,op_isLitLike): fixed handling of immediates + * src/pic/gen.h: added macros to access IRP bit in STATUS register + * src/pic/genarith.c (genAddLit): use min(result's,left's) size, sign + extend the result + * src/pic/glue.c (is_shared_address,is_shared): check whether a given + address/register resides in the shared banks + (emitSymbolToFile): improved to handle global and `pinned' symbols, + put all variables into separate sections (have the linker arrange + them) + (picglue): put init code and interrupt handlers in separate sections + * src/pic/main.c: added port specific options table, modified to PORT + structure to make GPOINTERs 3 byte, added pic14_options + (_pic14_do_link): private linking routine (update paths to libraries, + add libsdcc.lib by default) + * src/pic/main.h: declare pic14_options + * src/pic/pcode.c: fixed instructions i/o relations, + (RegCond): reverted to correct version, + (newpCodeOpLit): truncate literals to 8 bit, + (genericPrint): added debug output, + (getRegFromInstruction): fixed for various operand types, simplified + (BuildFlow): fixed broken handling of isntructions with labels + (LinkFlow): start at last instruction in flow (skip trailing comments), + pass the flow on to the next instruction after CALL + (pCodeReplace): NEW, replace a pCode and move meta data to the new one + (insertPCodeInstruction): fixed inserting after a skip instruction, + (DoBankSelect): fixed for labeled instructions + (OptimizepBlock): honor --nopeep switch + (AnalyzeFlow,ReuseReg): prevent crash on source files with no function + * src/pic/pcodepeep.c (pCodePeepMatchRule): prevent NULL pointer accesses + * src/pic/pcoderegs.c (regIsLocal): NEW, check visibility of a register + (pCodeOptime2pCodes): allow disabling this optimization via + --no-pcode-opt due seldomly occuring bugs, fixed some conditions + but is still buggy), started implementation of a dataflow based + pCode optimization (CSE + dead code elimination) + (pCodeRegMapLiveRangesInFlow): removed bogus inCond + * src/pic/ralloc.c (initStack): renamed stack registers to STK%d, the new + names are independant of the stack location and therefore portable across + devices + +2005-10-27 Maarten Brock + + * src/mcs51/ralloc.c (bitType): added to detect bit variables, + (selectSpil): fixed bug 1337835 by not spilling bit variables + * support/regression/tests/bug1337835.c: added test for this bug + * src/mcs51/peeph.def: restart after rule 3.c, + addded rules 263.x to optimize loading constants + +2005-10-26 Raphael Neider + + * src/SDCCsymt.c (compStructSize): allow signed bitfields for PIC ports + * src/pic16/gen.c (genUnpackBits): support signed bitfields, + (genAssign): emit warning when casting literals to generic pointer + type, also applies when taking the address of a fixed variable, + (genCast): improved casting to generic pointers + * src/pic16/glue.c (pic16emitStaticSeg): fixed(?) handling of fixed + extern variables, added verbose error message + * device/include/pic16/{string.h,errno.h}: added #pragma library c + +2005-10-26 Bernhard Held + + * src/mcs51/gen.c (genMinus): fixed bug 1270906: reverse subtraction, + carry must be complemented too + * src/mcs51/peeph.def: addded rule 262 to remove double cpl c, which + could be emitted by genMinus + * src/SDCCval.c (constVal): fixed bug 1305065 + +2005-10-25 Bernhard Held + + * src/SDCCast.c (addCast): added promotion for bit variables + (decorateType): emit W_COMPLEMENT before the problem vanishes behind + promotion casts + optimisation + (optimizeGetWord): fix warning 'i' might be used uninitialized + * src/mcs51/gen.c (genCpl): removed W_COMPLEMENT + * src/ds390/gen.c (genCpl): removed W_COMPLEMENT + +2005-10-24 Bernhard Held + + * src/SDCCicode.c (ast2iCode): reverted to 1.224 because of regression: + all chars are promoted to int; promotion should be handled in SDCCast.c + +2005-10-15 Jesus Calvino-Fraga + + * device/lib/_strcmp.c: Fixed bug 1326457 + +2005-10-11 Raphael Neider + + * device/lib/pic16/libio/i2c.ignore: added 1320, fixes broken builds + * device/lib/pic16/libdev/pic18f1320.c: added 1320's device library + +2005-10-05 Maarten Brock + + * src/SDCC.y (AT): fixed bug with sfr32 addresses when built with GCC + * support/regression/tests/sfr16.c: added test for the sfr32 bug + +2005-10-04 Raphael Neider + + * device/include/pic16/pic18fregs.h, src/pic16/devices.inc, + device/lib/pic16/pics.all: added pic18f1320 + * src/pic16/pcode.c (mnem2key): fixed prototype's argument mismatch + +2005-09-30 Raphael Neider + + * src/pic16/device.c (Pics16[]): moved device descriptions to devices.inc + * src/pic16/devices.inc: NEW, provides device descriptions + * src/pic16/gen.c (genInline): fixed handling of ';'-comments + +2005-09-26 Maarten Brock + + * src/SDCCicode.c (operandOperation): added GETABIT, GETBYTE, GETWORD and + GETHBIT + +2005-09-25 Maarten Brock + + * doc/sdccman.lyx: updated Highest Order Bit documentation, + documented Any Order Bit, Higher Order Byte and Higher Order Word + * src/SDCC.y: added tokens GETABIT, GETBYTE, GETWORD + * src/SDCCast.c (optimizeGetHbit): updated to also accept bool=expr&(1<>(8*n), + (optimizeGetWord): new, to get a word from a long int: expr>>(8*n), + (isConformingBody): also check GETABIT, GETBYTE, GETWORD, + (decorateType): '&': also try GETABIT, GETBYTE, GETWORD optimization, + RIGHT_OP: also try GETBYTE, GETWORD optimization, + GETABIT, GETBYTE, GETWORD: decorate them, + (isShiftRightLitVal, isBitAndPowOf2): new helper functions, + (ast_print): added GETABIT, GETBYTE, GETWORD + * src/SDCCcse.c (isSignedOp): added GETABIT, GETBYTE, GETWORD + * src/SDCCicode.c (codeTable): added GETABIT, GETBYTE, GETWORD, + (geniCodeBinary): new generic binary icode, + (ast2iCode): added GETABIT, GETBYTE, GETWORD + * src/port.h: updated comment for PORT.hasExtBitOp + * src/mcs51/gen.c (genGetAbit): new, to get any single bit, + (genGetByte): new, to get a single byte, + (genGetWord): new, to get a word from a long, + (gen51Code): added GETABIT, GETBYTE, GETWORD + * src/mcs51/main.c (hasExtBitOp): added GETABIT, GETBYTE, GETWORD + +2005-09-23 Raphael Neider + + * configure.in, configure: have device/lib/pic configured + * device/lib/Makefile.in: added model-pic14 + * device/lib/clean.mk: added pic/ to clean rule + * device/lib/pic: added rudimentary pic14 library providing support + functions for multiplication/division/generic pointer access + * src/SDCCopt.c (convilong): mark support functions as extern + for pic14 port as well + * src/pic/gen.c (genMult): added assertions, + (genpic14Code): emit warning on unhandled iCodes + * src/pic/main.c (_hasNativeMulFor): return true only for 8x8 bit + * src/pic/pcode.c (pCodeOpCopy), + * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed handling of various + pCodeOpReg-subtypes (PO_{STATUS,INTCON,PCL,PCLATH,PCLATU,BSR, + SFR_REGISTER}), made safe for future extensions + * src/pic16/pcode.c (pic16_safepCodeUnlink): allow for removal of + instructions even if preceeded by SKIP instructions (also remove + them); removed unused code + * src/pic16/pcode.h: added arg2 to pCodeOpLit to match pCodeOpLit2, + prevents leaving parts of the structure uninitialized after copying + +2005-09-22 Maarten Brock + + * src/mcs51/gen.c (genMinus): fix for undetected bug introduced 3 months + ago by me + * support/regression/tests/addsub.c: added test for the bug + 2005-09-21 Raphael Neider * device/include/pic16/pic18f1220.h,