X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=ChangeLog;h=ccecb0a3904c7b1445dd420c061430837ead018c;hb=ec219ac8c8d7d91ba55c15a3ed5238648635b90f;hp=76086499e76335171d35f9c72272efd5b51d0ef8;hpb=dfc8b3115c0db8e2c678a38fa71e3a376cee5d9e;p=fw%2Fsdcc diff --git a/ChangeLog b/ChangeLog index 76086499..ccecb0a3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,4 +1,810 @@ -2005-04-26 Erik Petrich +2005-08-25 Borut Razem + + * sim/ucsim/gui.src/serio.src/Makefile.in, + sim/ucsim/s51.src/Makefile.in, sim/ucsim/avr.src/Makefile.in, + sim/ucsim/z80.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in, + sim/ucsim/xa.src/Makefile.in: install -s changed to 2 steps: + install and strip, since the strip at /usr/ccs/bin should be used + on solaris + +2005-08-24 Borut Razem + + * clean.mk, device/lib/clean.mk: find on sparc-solaris does not support -maxdepth option + +2005-08-23 Bernhard Held + + * src/SDCCopt.c (convertToFcall): fixed modulus with divisors 1 and + ffffffffu + +2005-08-23 Maarten Brock + + * as/mcs51/aslink.h: completed lkrloc.c prototypes + * as/mcs51/lkmain.c (link_main): fixed warning + * device/include/stdbool.h: ds390 has no advanced bit support yet + * src/SDCC.y: use SPEC_SHORT and renamed _signed to b_signed + * src/SDCCsymt.c: use SPEC_SHORT and renamed _signed to b_signed + * src/SDCCsymt.h (struct specifier): renamed _xxx bitfields to b_xxx + and updated their macros + * src/SDCCval.c (constVal): updated comment for renamed b_long + +2005-08-22 Maarten Brock + + * as/mcs51/asdata.c: changed ctype['['] to BINOP + * as/mcs51/asexpr.c (expr): added case '[' for bit access in bdata, + (term): abused bit 15 of s_addr to indicate bit-addressable bytes, + (oprio): set priority for '[' + * as/mcs51/aslink.h: added define R_BIT, and prototypes for adb_bit + and adb_24_bit + * as/mcs51/asm.h: added defines R_BIT and S_BIT + * as/mcs51/lkarea.c (lnksect2): use T for seg BIT_BANK and overlay it + * as/mcs51/lkdata.c: changed ctype['['] to BINOP + * as/mcs51/lkmain.c (Areas51): rel2 contains 12 (=C) areas now, + added overlayable BIT_BANK area + * as/mcs51/lkmem.c (summary): add BIT_BANK to BSEG_BYTES in the report, + (summary2): explain 'T' in legenda + * as/mcs51/lkrloc.c: replaced old K&R style, + (relr): added R_BIT processing, + (errmsg): added "Bit-addressable relocation error", + (adb_bit): added for converting from byte- to bit-addressable space, + (adb_24_bit): added for converting from byte- to bit-addressable space + * device/include/stdbool.h: changed BOOL to __bit for mcs51 as it can be + used in reentrant functions now even as return value + * device/lib/_gptrput.c (_gptrput): removed obsolete code + * src/SDCCast.c (resultTypePropagate): also propagate AND_OP and OR_OP, + (decorateType): case '!', GETHBIT, AND_OP, OR_OP: result in bool or char + * src/SDCCglobl.h: added indicator BitBankUsed + * src/SDCCglue.c (glue): emit area BIT_BANK with byte 'bits' and equ's for + the bit registers b0-b7 + * src/SDCCicode.c (operandFromSymbol): removed IS_BITVAR check, + (geniCodeCast): fixed bug 1263853, + (geniCodeLogicAndOr): put result in bool or char, + (geniCodeReceive): added parameter func for accessing the return type, + (geniCodeFunctionBody): pass func to geniCodeReceive + * src/SDCCmain.c: added indicator BitBankUsed + * src/SDCCmem.c (allocLocal): explicitly set sclass for V_BIT + * src/SDCCsymt.c (newBoolLink): added for creating a bool/bit, + (checkSClass): don't put automatic bool/bit on stack, + (checkFunction): removed check on function cannot return bit + * src/SDCCsymt.h: added newBoolLink prototype + * src/mcs51/gen.c (rb1regs): added bit registers, + (movc): created for assigning to carry, + (pushReg, popReg): created for pushing registers, + (sameRegs): check both AOP_REG and AOP_CRY types, + (aopOp): handle bit registers, + (aopPut): optimization no self-assign, + (saveRegisters): push reg->base (bits) only once for bit registers, + and use pushReg, + (unsaveRegisters): pop reg->base only once and use popReg, + (assignResultValue): added parameter func and return in carry for bits, + (genIpush): optimization no reload in A if not changed, + (genSend): bit parameters in reentrant functions are passed in bit + registers by first assigning to bits in B, then save registers and + copy B to bits, + (genCall): handle returning in Carry properly, save it in F0 if needed, + (genPcall): updated assignResultValue call, this is not safe yet for bit + returning function !!! + (genFunction): don't generate equ's for bit registers and use pushReg, + (genEndFunction): take care of bit returning functions and use popReg, + (genRet): return bit in Carry, + (genIfx): optimize bit registers and other directly addressable bits, + (genReceive): updated assignResultValue call + * src/mcs51/main.c (_mcs51_reset_regparm): added regBitParmFlg, + (_mcs51_regparm): allow passing of upto 8 bit parameters in bit + registers when using stack-auto + * src/mcs51/ralloc.c (_G): added allBitregs, + (regs8051): added the bit registers, + (createStackSpil): use macro IS_BIT, + (getRegBit): added to allocate a bit register, else spill, + (getRegBitNoSpil): added to allocate a bit register, else a gpr, + (updateRegUsage): factored out to ease stepping while debugging, + (serialRegAssign): use updateRegUsage, only spill bits if necessary, + also allocate bit registers, + (fillGaps): handle bit registers, + (findAllBitregs): added to create bit vector with all bit registers, + (mcs51_allBitregs): returns this bit vector, + (mcs51_assignRegisters): when using stack-auto use bit registers for + passing parameters and creating local variables + * src/mcs51/ralloc.h: added B0_IDX..B7_IDX and prototype mcs51_allBitregs + +2005-08-22 Borut Razem + + * device/lib/Makefile.in: replaced find option -or with -o + to make it run on solaris + +2005-08-22 Raphael Neider + + * src/pic16/gen.c (pic16_loadFromReturn): added check for AOP_PCODE, + fixes #1265442 (crash on Solaris) + +2005-08-20 Borut Razem + + * configure, configure.in: added tests for libsocket and libnsl libraries, + requred by sdcdb on sparc-solaris; generate support/regression/Makefile + from support/regression/Makefile.in + * support/regression/Makefile.in: added + * device/lib/pic16/Makefile.common.in: force make to use bash shell + * sim/ucsim/libtool: regenerated on sparc-solaris + * sim/ucsim/avr.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in, + sim/ucsim/s51.src/Makefile.in, sim/ucsim/xa.src/Makefile.in, + sim/ucsim/z80.src/Makefile.in: removed GNU ld specific linker options + -Wl,--start-group and -Wl,--end-group to enable ucsim compilation on + sparc-solaris, which doesn't use GNU ld linker + * device/lib/Makefile.in: cp on sparc-solaris (SunOS) does not support -u option + * as/Makefile: find on sparc-solaris does not support -maxdepth option + +2005-08-19 Maarten Brock + + * src/mcs51/peeph.def: updated comments + +2005-08-16 Frieder Ferlemann + + * device/lib/_gptrget.c, + * device/lib/_gptrput.c: slightly shorter + * doc/sdccman.lyx: incremented version + * src/mcs51/peeph.def: moved peephole comments to the line of first + change to better keep line correlation, reanimated 186.e + * src/mcs51/peeph.def: renamed similar peepholes by using suffixes + +2005-08-16 Slade Rich + + * src/pic/pcode.c : Pasted ".line" assembly directives patch from + David Saxton with quotes around file name. + +2005-08-15 Borut Razem + + * support/regression/tests/bitfields.c, support/regression/tests/bitvars.c, + support/regression/tests/bitwise.c, support/regression/tests/literalop.c, + support/regression/tests/rotate.c, support/regression/tests/zeropad.c: + make tests run on x86_64 platform + +2005-08-13 Raphael Neider + + * device/lib/pic16/Makefile.subdir: weakened clean-intermediate rule + as it might be executed DURING a build (parallel make is wonderful) + +2005-08-13 Raphael Neider + + * device/lib/Makefile.in (port-specific-objects-pic16): + revert to cp $(PORT)/bin/*.* $(PORTDIR) + * device/lib/pic16/Makefile: added .PHONY targets, removed builddir + dependency + * device/lib/pic16/Makefile.rules: build subdirs before creating + the library, removed builddir rule, create $(builddir) early in + recurse rule, use empty recurse rule for leaf directories + * device/lib/pic16/Makefile.subdir: added phony targets, ignore + mkdir errors (race condition), removed duplicate suffix "hex" + from clean rules + * device/lib/pic16/libdev/Makefile: recursive make via + and $(MAKE) + * device/lib/pic16/libio/Makefile: create sub-make's builddir early, + prevents mkdir -p from aborting on Alpha + +2005-08-12 Raphael Neider + + * src/pic16/glue.c (pic16_print(G)PointerType): do not flush + db-statements in order to allow for arrays of pointers in code + sections to be placed without interspersed 0-padding, fixes + bug #1256215 + * (emitStatistics): fixed division by zero for pic18f1220 + * src/pic16/pcode.c: buffer (up to) 12 DB directives to allow for + unpadded writing of 8-bit, 16-bit, 24-bit and 32-bit values + * (pic16_emitDS): respect DB_ITEMS_PER_LINE + * (pic16_pCodeConstString): keep track of already emitted string + literals to prevent "duplicate definitions of symbol _str_NR" + * src/pic16/ralloc.c (pic16_allocRegByName): removed not so helpful + debug message + * device/lib/Makefile.in: ignore failing PIC16 library builds + * device/lib/pic16/Makefile: do not build if gputils are missing + * device/lib/pic16/Makefile.common.in: do not enforce MAKEFLAGS=-s + +2005-08-10 Raphael Neider + + * device/lib/Makefile.in: fixed copying pic16 libraries (broken by + my last commit) + +2005-08-10 Raphael Neider + + * src/*.c, src/pic16/{gen.c,glue.c,main.c}: applied Vangelis + Rokas' patch to add the new fixed point type "__fixed16x16" + * device/lib/pic16/libsdcc/fixed16x16: added Vangelis' support + functions for __fixed16x16 arithmetics + * device/lib/pic16: reimplemented the build system to support + a separate build directory, better handling of libio (create + the library in a separate subdir for each architecture) and + easier configuration (centralized in Makefile.common) + +2005-08-07 Raphael Neider + + * src/pic16/gen.c (genrshTwo): fixed sign extension + * src/pic16/device.c: added pic18f2320, 4220 and 4320 + * device/include/pic16/pic18f2220.h: changed some bit definitions, + added T0CONbits + * device/include/pic16/pic18f4220.h: NEW, header for + pic18f4220 and pic18f4320 + * device/include/pic16/pic18fregs.h: added new devices, + embraced Nop(), ClrWdt(), Sleep() and Reset() with do {} while(0) + * device/include/pic16/signal.h: resolved name clashes + on bit definitions, added DEF_HANDLER2(sig1,sig2,handler) + to also allow testing for interrupt enable bits, added + comments on how to use the macros + * device/lib/pic16/libdev/pic18f2220.c: added T0CONbits + * device/lib/pic16/libdev/pic18f{2320,4220,4320}.c: NEW, + register definitions for the devices + * device/lib/pic16/pics.all: added new devices + * device/lib/pic16/libc/stdlib/calloc.c: fixed zeroing + allocated memory + * device/lib/pic16/libc/stdlib/memfree: do not count + the block header as free memory + * device/lib/pic16/libc/stdlib/memmisc.c (_initHeap): + simplified and added missing end-of-blocklist-marker + (reported by Peter Onion, fixes #1252814) + * (_mergeHeapBlock): fixed loop condition + * device/lib/pic16/libc/stdlib/realloc.c: return NULL for + len==0, restructured code + * device/lib/pic16/libc/stdlib/{malloc,memfreemax}.c: cleaned + up a bit, reduced bitfield accesses, prevent endless loops + in case of heap corruption + * device/lib/pic16/libc/stdlib/x_ftoa.c: disabled + "unreferenced arguments/must return a value" warnings + * device/lib/pic16/libio/usart/ubaud.c (usart_baud): + replaced BAUDREG with SPBRG + * device/lib/pic16/libsdcc/lregs/{lrrest.c,lrst.c}, + device/lib/pic16/debug/gstack/gstack.c: replaced + _naked, _asm, _endasm with __naked, __asm, __endasm + +2005-08-05 Raphael Neider + + * src/pic16/gen.c (pic16_aopGet): fixed handling of offsets in + AOP_PCODE operands, fixes multibyte union-bitfield-accesses + +2005-08-05 Borut Razem + + * device/lib/Makefile.in: added missing ';' + * configure: removed ^M characters + +2005-08-04 Jesus Calvino-Fraga + + * device/include/mcs51/at89c51ed2.h, device/include/mcs51/p89v51rd2.h, + device/include/mcs51/at89s53.h: changed to GNU Lesser General Public + License + +2005-08-04 Borut Razem + + * configure.in: pic16 libraries build 2nd try - enable running + configure in device/lib/pic16 + * configure: regenerated from configure.in + * device/lib/Makefile.in: create $(PORT)/bin directory + +2005-08-03 Raphael Neider + + * src/pic16/gen.c (pic16_derefPtr): NEW, single place + to get/set values via pointers + * (genUnpackBits,genPackBits): changed detection of + ptr->bitfield vs. sym.bitfield, fixed access via generic + pointers, removed dead (wrong) code for multibyte bitfields + * (genNearPointerGet, genGenPointerGet): removed useless code, + fixed bitfield detection, fixes #1250594 + * (genNearPointerSet): removed useless code + * src/pic16/gen.h: renamed pic16_emitpcode to pic16_emitpcode_real + and introduced macro pic16_emitpcode that conditionally emits + the origin of the following pCode (useful for debugging SDCC) + * src/pic16/pcode.c: changed (and disabled) some debug outputs + * (createDefmap): fixed handling of LFSR for --optimize-df + +2005-08-02 Borut Razem + + * device/lib/Makefile.in: pic16 libraries build enabled since + gputils-0.13.2 are now localy installed at sourceforge's compile farm + +2005-08-02 Raphael Neider + + * src/pic16/gen.c (genPackBits): removed deprecated warning + * (genGenPointerSet): fixed bitfield detection + +2005-08-02 Jesus Calvino-Fraga + + * device/include/mcs51/msm8xc154s.h: Removed PT2 definition, now in 8052.h. + +2005-07-31 Raphael Neider + + * device/lib/pic16/libdev/pic18f458.c, + device/include/pic16/pic18f458.h: added missing T0CONbits + +2005-07-29 Maarten Brock + + * device/include/mcs51/msm8xc154s.h: added, thanks to Matthias Arndt + +2005-07-28 Maarten Brock + + * src/mcs51/gen.c (operandsEqu): fixed bug 1246687 + +2005-07-23 Jesus Calvino-Fraga + + * device/include/mcs51/at89c51ed2.h: added. + +2005-07-23 Raphael Neider + + * src/pic/gen.h: added emitpcode macro for debugging + * src/pic/gen.c (emitpcode): renamed to emitpcode_real + and replace by macro adding debug information on demand + * (genNot): fixed to C semantics (!0 = 1; !x = 0 iff x != 0) + * (gencjne): tried to fix; replaced with correct (slower) code + * (gen{Unp,P}ackBits): fixed single bit access + * src/pic/pcode.c (AnalyzepCode): fixed DFPRINTF argument + * src/pic/pcodepeep.c (pCodeSearchCondition): fixed finding + previous instruction + * src/pic/pcoderegs.c (regIsSpecial): NEW, check whether a + register has to be handled with care (forbidding movement + of assignments/uses, removing assignments completely, ...) + * (pCodeOptime2pCodes): make use of regIsSpecial + * added lots of debugging output (commented out) + * src/pic/rallloc.c (deassignLRs): prevent operand registers + from being reused as result UNLESS it is known to work + +2005-07-23 Maarten Brock + + * support/Util/dbuf.h: include for size_t + * .version: changed to version 2.5.2 + +2005-07-23 Erik Petrich + + * src/SDCCloop.c (loopInvariants): fixed bug #1234048 + +2005-07-22 Erik Petrich + + * src/hc08/gen.c (genMinus): fixed bug #1241835, + (genModOneByte): removed needless psha/pula + +2005-07-22 Raphael Neider + + * src/SDCCmain.c (linkEdit): initialized linkerScriptFileName, + have PIC14 handled like PIC16, fixes broken pic14 linker calls + * src/pic/gen.c (resolveIfx): do not "invent" labels + * (genSkipc): changed to positive logic + * (genSkipCond): removed as no longer needed + * (pic14_mov2w_regOrLit,genCmp): NEW, replacement for buggy version, + backport from PIC16 + * (genLeftShift): check operands are in different registers + * src/pic/genarith.c (genPlus): replaced INCF with ADDLW as + INCF does not update CARRY... + * src/pic/main.c: fixed _linkCmd + * src/pic/pcode.c (unlinkpCode): added inactive code + * src/pic/ralloc.c (deassignLRs): keep arguments to shift operations + alive (do not assign result and operand overlapping registers) + +2005-07-22 Raphael Neider + + * src/pic/device.c (dump_sfr): replaced register declaration with + call to emitSymbolToFile() to avoid duplicate symbols + * (assignRelocatableRegisters): do not declare external symbols + * src/pic/ralloc.c (allocNewDirReg): fixed to get size of arrays + right (take size of type, not etype) + * (allocDirReg): fixed call to allocNewDirReg() to pass OP_SYM_TYPE + * (writeUsedRegs): also dump dynDirectRegs (e.g. local variables) + * (packRegsForAccUse): disabled assignment of WREG as + the result reg to prevent occurence of just fixed #1235003, + fixes #1242954 + * src/pic/glue.c (emitSymbolToFile): NEW, central place to declare + symbols (avoids duplicate symbols in .asm file) + * (pic14emitRegularMap): use emitSymbolToFile() + * src/pic/gen.c (aopOp): fixed spillLocation handling + * (gen{Unp,P}ackBits): fixed acquiring bit-operands + * (genDataPointerSet): removed unneccessary variables/output + +2005-07-22 Maarten Brock + + * as/mcs51/lkarea.c: enlarged codemap for banked memory + * device/lib/mcs51/crtbank.asm: added # to 0x0F + +2005-07-21 Raphael Neider + + * src/pic/gen.c (aopOp): do not generate AOP_ACC operands as pic14 + architecture cannot handle them efficiently, fixes bug #1235003 + * src/pic16/device.c (pic16_dump_{u,i}section,pic16_dump_int_registers): + check for empty sets before using them (fixes bug #1232190) + +2005-07-19 Maarten Brock + + * as/mcs51/lkarea.c (lnkarea, lnkarea2): improved BSEG size calculation, + (lnksect2): generate warnings for memory overlap + * src/SDCC.lex (doPragma, process_pragma): added pragma's codeseg and + constseg to set the name of these segments so you can instruct the linker + to place them in banks + * src/SDCCast.c (decorateType): use new macro IS_FUNCPTR() + * src/SDCCglobl.h: added MODEL_HUGE to enum, + added code_seg and const_seg to options + * src/SDCCglue.c (emitMaps): use options.const_seg, + (createInterruptVect): put interrupt vectors in segment HOME, + (glue): put HOME before static segment and put the main glue in HOME, + (glue): use options.code_seg + * src/SDCCicode.c (geniCodeCall): use new macro IS_FUNCPTR() + * src/SDCCmain.c: added option --codeseg and --constseg to set the name of + these segments so you can instruct the linker to place them in banks + (linkEdit): use code_loc for HOME segment which should be the first + segment in code memory now + * src/SDCCmem.c: fixed more stuff like bug 1238386 + * src/SDCCsymt.c (getSize): use generic pointer size for banked functions, + (changePointer): don't change function pointers to code pointers for + banked functions, + (compareType): added exceptional check for banked function pointers + * src/SDCCsymt.h: changed IFFUNC_ISBANKEDCALL, added IS_FUNCPTR + * src/hc08/main.c (_hc08_genAssemblerPreamble): put HOME first, put CSEG + after static in code memory + * src/mcs51/gen.c: added aopLiteralLong prototype, + (aopForSym): use getSize for functions, + (genCall): generate banked calls over one trampoline __sdcc_banked_call + in HOME with lsb of address in r0, msb in r1 and bank in r2, use + -Wl-bBANKSEG=0xbbaaaa option to set the address (aaaa) and bank (bb) of + the segment, + (genPcall): use call for literal function pointers and generate banked + calls over the one trampoline so there's only one place for the user to + modify according to his/hers hardware, + (genEndFunction): jump to __sdcc_banked_ret in HOME for banked functions, + (genPlusIncr): moved check icount>4 beyond inc dptr optimization + * src/mcs51/main.c: added keyword banked, + (_mcs51_genExtraAreas): put HOME first followed by GSINIT, STATIC and CSEG + * support/Util/SDCCerr.c, + * support/Util/SDCCerr.h: added E_BANKED_WITH_CALLEESAVES, registers are + needed for passing the bank and address to the trampoline + * device/lib/mcs51/crtbank.asm: added for bankswitching + * device/lib/mcs51/Makefile: added crtbank + +2005-07-16 Erik Petrich + + * src/SDCCcse.c (algebraicOpts): fixed loss of volatility + for fields at offset 0 of a struct or union as reported + on 2005-07-07 in the developer mailing list. + +2005-07-15 Maarten Brock + + * src/SDCCmem.c: fixed bug 1238386 + +2005-07-12 Frieder Ferlemann + + * src/mcs51/peeph.def: added labelrefcounting for peepholes + (patch #1144962), added peephole 300, enabled 259.x + * doc/sdccman.lyx: removed screenshot and provided link instead + +2005-07-05 Frieder Ferlemann + + * doc/sdccman.lyx: added section about debugging with ddd + * doc/figures/ddd_example.eps: screenshot of debugging session + +2005-07-04 Raphael Neider + + * src/pic/gen.c (genPointerGet): handle pointers to CONST values + like CODE pointers, fixes #1115683 + * src/pic/pcode.c (DoBankSelect): forget LastRegIdx during function + call, fixes bugs #1232211, #1228110, + fixed wrong casts to pCodeFlow from pCodeInstructions + +2005-07-04 Raphael Neider + + * src/pic/gen.c (popGet): changed assert to allow for + bit operands + * (popGetAddr): changed signature to provide + an additional index, patched all call sites + * (genCmpEq): handle literal-like operands correctly + * (genAddrOf): added sanity checks on __code/__data pointers + * (genAssign): added handling of symbols from __code section + * (gencjne): do not generate code for comparisons whose result + is neither stored nor used, fixes bug #1171114 + * (AccLsh, AccRsh): operate on operand instead of WREG + * (shift{Left,Right}_Left2ResultLit): NEW, size independant + replacement for Shift{LR}{12}Left2Result; shift (byte/int/long) + by known count + * rewrote complete shift-by-literal logic, commented unused + functions out + * (genConstPointerGet): get multiple bytes (if result size > 1), + fixed handling of non-immediate addresses + * (genPointerGet): handle CODE pointers like CONST pointers + * (genpic14Code): insert C-SRC lines as Cource-pCodes + * ({aop,op}_isLitLike): NEW, single place to decide whether an + operand is to be treated as a literal or not + * (mov2w,genPcall,genCmpEq), + src/pic/genarith.c: use aop_isLitLike() to decide between + literal/register contents + * (addSign): added missing offset + * src/pic/gen.h: remove newline after FENTRY/FEXIT comments, + only emit comment in debug-mode, + use {aop,op}_isLitLike throughout the file + * src/pic/glue.c: fix initializers for pointers (work in progress) + * src/pic/pcode.c (get_op): honor index on _const symbols + * ({reset,dump}pCodeStatistics): NEW, estimate code size + * (dumppBlock): added pCode size estimation + * src/pic/ralloc.c (deassignLRs,serialRegAssign,packRegisters): + check for IS_SYMOP before OP_SYMBOL'ing + * fixed indentation, compacted switch-statements + * (allocReg): find free register and allocate it instead of + allocating new registers all the time + * (deassignLRs): prevent POINTER_GET's from being assigned the same + registers as its operands (necessary only for multibyte GETs) + +2005-07-01 Raphael Neider + + * src/pic/gen.h: added prototypes emitpComment, popGetAddr and + debugging .asm-output macros FENTRY + FEXIT + * src/pic/gen.c (Safe_vsnprintf): NEW, is there a more generic + way... I wonder... + * (emitpComment): NEW, printf to pCode + * (popGet): added assert on too large offsets, fixed PO_IMMEDIATE's + offset handling + * (popGetAddr): NEW, variant of popGet to access an immediates + high(er) bytes instead of the n'th byte of memory they reference, + replaced popGet with popGetAddr where neccessary + * (genDataPointerGet): reactivated and fixed implementation + * (genNearPointerGet): enabled call to genDataPointerGet, fixes array- + accesses + * (genDataPointerSet): fixed multibyte assignments + * (genpic14Code): fixed --i-code-in-asm handling + * src/pic/genarith.c: fixed PO_IMMEDIATE issue using popGetAddr, + * (genPlus): fixed index-out-of-bounds error + * src/pic/pcode.c (get_op): fixed PO_IMMEDIATE's index/offset handling + * src/pic/ralloc.c: added debugging output macro FENTRY2 + * (spillThis): fixed indentation, enbraced for-body for clarity + * (rematStr): commented out as now unused + * (regTypeNum): commented out special spill case (overwrites + arbitrary values) + * fixes bugs #1229346, #1216476 (both arrays) and #1115667 (SIGSEGV) + +2005-06-30 Maarten Brock + + * doc/sdccman.lyx: documented sfr16/sfr32, + added example for using storage class with function pointers + * src/mcs51/gen.c (genPlusIncr): optimized small offsets from dptr + +2005-06-28 Maarten Brock + + * device/lib/_gptrget.c: also push/pop _PSBANK, added # to 0x03 + * device/lib/_itoa.c, + * device/lib/_ltoa.c: optimized codesize + * src/SDCCsymt.c (checkSClass): added sanity check for sfr at addresses, + but don't know how to suppress the double warning. + * src/mcs51/gen.c (genPlusIncr): fixed bug when incrementing volatile int's + * support/Util/SDCCerr.c, + * support/Util/SDCCerr.h: added warning W_SFR_ABSRANGE for sanity check + +2005-06-27 Maarten Brock + + * as/mcs51/asexpr.c (expr): disabled warning "not in .flat24 mode", + fixed old K&R prototypes + * as/mcs51/asout.c (outrb): always output as if generating 24bit addresses + * device/lib/_gptrget.c, + * device/lib/_gptrgetc.c, + * device/lib/_gptrput.c: changed versions for new memory indicator values, + also new versions for small generic pointers and banked generic pointers + * src/port.h: added const_name + * src/SDCC.lex: added keywords sfr16, __sfr16, sfr32, __sfr32 + * src/SDCC.y: added tokens SFR16, SFR32 and their sfr_attributes + * src/SDCCcse.c (findPrevIc): check all associative operators + * src/SDCCglue.c (emitMaps): use CONST_NAME if defined + * src/SDCCicode.h: added macro IS_ASSOCIATIVE + * src/SDCCmem.c: updated comments, + set far-space to 0 for pdata, results in optimized code + * src/SDCCmem.h: added macro CONST_NAME + * src/SDCCsymt.h: renumerated generic pointer types GPTYPE_... thereby + moving the info into the highest bits, see also gptrget/gptrput + * src/src.dsp: added sdcc.ico to project files + * src/avr/gen.c (genCast): fixed bug 0x%d + * src/avr/main.c (avr_port): added "CONST (CODE)" for const_name + * src/ds390/gen.c (aopForRemat, adjustArithmeticResult): disconnected direct + relation between ptr_type and DCL_TYPE, + (genCast): fixed bug 0x%d + * src/ds390/main.c (ds390_port, tininative_port, ds400_port): added "CONST + (CODE)" for const_name + * src/hc08/gen.c (genCast): fixed bug 0x%d + * src/hc08/main.c (_hc08_genAssemblerPreamble): added .area ...const_name, + (hc08_port): added "CONST (CODE)" for const_name + * src/mcs51/gen.c (aopForSym): optimized pushing ACC, + (aopForRemat, adjustArithmeticResult): disconnected direct relation + between ptr_type and DCL_TYPE, + (aopGetUsesAcc, aopGet, aopPut): changed first parameter from asmop* to + operand* and took AOP() inside function so sfr-ness can be checked, + (all over): repaired calls to aopGetUsesAcc, aopGet, aopPut to comply with + new prototype, + (genFunction, genEndFunction): optimized stack setup, + (genMinus): optimized for literals with ending zeroes (in bytes), + (genCast): fixed bug 0x%d + * src/mcs51/main.c (_mcs51_keywords): added sfr16 and sfr32, + (mcs51_port): added "CONST (CODE)" for const_name + * src/mcs51/peeph.def: made rule 226 more generic + * src/pic/main.c (pic_port): added "CONST (CODE)" for const_name + * src/pic16/main.c (pic16_port): added "CONST (CODE)" for const_name + * src/xa51/main.c (xa51_port): added "CONST (CODE)" for const_name + * src/z80/main.c (z80_port): added NULL for const_name, + (gbz80_port): added NULL for const_name + * support/regression/tests/bug663539.c, + * support/regression/tests/sfr16.c: new tests + +2005-06-25 Jesus Calvino-Fraga + + * device/include/mcs51/p89v51rd2.h, device/include/mcs51/at89s53.h: added. + +2005-06-24 Raphael Neider + + * device/lib/pic16/libdev/pic18f[68][567]20.c: + corrected typos... + * device/include/pic16/signal.h: added USBIF + and SIG_USB + +2005-06-24 Raphael Neider + + * device/lib/pic16/libdev/pic18f2455.c, + device/include/pic16/pic18f2455.h: NEW + * device/include/pic16/pic18fregs.h, + device/lib/pic16/pics.all, + src/pic16/device.c: added 18f2455 + * device/lib/pic16/libdev/pic18f[68][567]20.c, + device/include/pic16/{pic18f[68][567].h,usart.h}: + replaced MULTIPLE_USARTS define with more relaible + compatibility sfrs (for USART access) + +2005-06-20 Slade Rich + + * src/pic/pcode.c : Fixed problem when a string constant contains a "\r\n" + and the output asm file line is printed on two lines. + +2005-06-19 Erik Petrich + + * sim/ucsim/hc08.src/inst.cc (inst_condbranch): fixed simulation of + BGT, BLE, BHI, and BLS instructions + * src/hc08/gen.c (outAcc, outBitC, outBitNV, genCmpLt, genCmpGt, + genCmpEq): removed + * src/hc08/gen.c (genCmpEQorNE, genCmp, branchopCmp, nameCmp, + negatedCmp, exchangedCmp, genhc08Code): rewrite of comparison handling, + fixes bug #1216342 + * src/hc08/peeph.def: added rules 2g - 2l for new conditional branches + +2005-06-15 Raphael Neider + + * src/pic16/NOTES: moved Vangelis from active developers to people to contact + * device/include/pic16/{6520.h,8520.h}: fixed configuration bits + * src/pic16/gen.c (): prevent iTemps from being considered to be in CODESPACE, + fixes bug #1221120; for symbols in CODESPACE get number of bytes to read from + OP_SYM_TYPE() instead of OP_SYM_ETYPE() + +2005-06-06 Frieder Ferlemann + + * device/include/mcs51/reg764.h: Changed PB0 to PBO as requested by + Marcel Telka in bug #1215704 + +2005-06-02 Slade Rich + + * src/pic/pcode.c : Changed pseudo stack size to 15 to allow WSAVE to be + located in shared memory bank. + +2005-05-31 Raphael Neider + + * src/pic16/{gen.c,genarith.c}: replaced sign-extension + "CLRF, BTFSC , DECF/COMF" with side-effect-free + "CLRF, BTFSC , SETF"; fixes "long>>9" + +2005-05-27 Maarten Brock + + * device/lib/_strncpy.c: fixed the fix + +2005-05-26 Raphael Neider + + * src/pic16/glue.c (pic16_printIvalChar): fixed _constant_ string + initializers with \0, bug #1208187 + * src/pic/glue.c (printIvalChar): fixed (non- and constant) string + intializers with \0, bug #1208187 + +2005-05-26 Raphael Neider + + * src/pic16/glue.c (pic16_printIvalChar): fixed string + initializers with \0, bug #1208187 + * src/pic16/main.c (_process_pragma): added sanity checks + for stack position and size, emit warnings when appropriate + +2005-05-26 Maarten Brock + + * device/lib/_strncpy.c: fixed not filling with \0 + +2005-05-26 Erik Petrich + + * src/SDCCast.c (funcOfType, funcOfTypeVarg, stringToSymbol, + createFunction), + * src/SDCC.y (external_definition, enumerator, parameter_declaration, + compound_statement), + * src/SDCCsymt.h, + * src/SDCCsymt.c (addSymChain, processFuncArgs): fixed bug #1159134 + +2005-05-24 Raphael Neider + + * src/pic16/glue.c (pic16_printGPointerType): fixed #1207796 + +2005-05-24 Raphael Neider + + * device/include/pic16/pic18f{442,452,458}.h: fixed wrong + TRISE definitions, closes bug #1162453 + +2005-05-22 Raphael Neider + + * src/pic16/main.c (_process_pragma): check for missing + arguments to pragmas code and udata + * device/include/pic16/pic18f{2550,4331,4455,4520}.h: + consistency fixes to match other headers (thanks to Jim Paris) + * device/lib/pic16/libio/i2c.ignore: 18f4331 provides no I2C + +2005-05-21 Maarten Brock + + * src/SDCCicode.c (isOperandEqual): fixed missing ; + +2005-05-19 Maarten Brock + + * support/regression/tests/bug1198642.c: new test + * src/SDCCicode.c (isOperandEqual): fixed bug 1198642 + * src/SDCCcse.c (findPrevIc): added comment, please have a look + * support/scripts/resource.h, + * support/scripts/resource.rc, + * src/src.dsp: added sdcc.ico to project as icon for sdcc.exe + * support/scripts/sdcc.ico: added 32x32 icon + +2005-05-18 Raphael Neider + + * device/lib/pic16/libdev/pic18f*.c, + * device/include/pic16/pic18f*.h: updated "sfr" and "at X" + keywords to "__sfr" and "__at (X)" + * device/include/pic16/pic18fregs.h: added pic18f4520 + * src/pic16/pcode.c (pic16_pCode2str): fixed (?) bug + #1203088 (MPLAB compatibility) + +2005-05-17 Raphael Neider + + * device/include/pic16/pic18f{2550,4331,4455,4520}.h: NEW + * device/lib/pic16/libdev/pic18f{2550,4331,4455,4520}.c: NEW + * device/lib/pic16/pics.all: added new devices + * src/pic16/device.c: added support for pic18f4520 + +2005-05-16 Raphael Neider + * src/pic16/gen.{c,h}: s/mov2f/pic16_mov2f made public + * src/pic16/genarith.c (genAddLit): fixed bug 1202480 + * src/pic16/pcode.{c,h} (pic16_newpCodeOpBit_simple): NEW + convenience function for bit access + +2005-05-15 Maarten Brock + + * device/lib/printf_large.c: fixed bug 1193299 + * support/regression/tests/bug1057979.c: added test %3.3s + +2005-05-15 Frieder Ferlemann + + * device/include/mcs51/8051.h, + * device/include/mcs51/8052.h: made parseable with lint + * device/include/mcs51/lint.h: added include file for (sp)lint + * doc/sdccman.lyx: added doc about use of splint (syntax checking tool) + * doc/cdbfileformat.lyx, + * doc/test_suite_spec.lyx: hardcoded date to the date of last text change + +2005-05-14 Raphael Neider + + * device/lib/pic16/Makefile.common.in: add --optimize-df to OPT_FLAGS + * device/lib/pic16/libc/stdlib/itoa.c (new) + * device/lib/pic16/libc/stdlib/Makefile: have itoa.c built + * device/lib/pic16/libio/Makefile: exclude subdir according to + ${subdir}.ignore for certain PICs (lacking e.g. i2c) + * device/lib/pic16/libio/i2c.ignore (new): pic18f1220 has no I2C support + * src/pic16/gen.c (genFunction): prevent annoying warning + * src/pic16/pcode.c: renamed stack_t to dynstack_t to prevent + nameclashes on BeOS + * support/cpp2/cppmain.c (cpp_output_string): new + * support/cpp2/cpplib.c (_cpp_do__Pragma): fixed _Pragma(""), + fixes bug 1116802 + +2005-05-13 Borut Razem + + * src/SDCCmain.c (linkEdit): fixed bug 1195202 + +2005-05-12 Erik Petrich + + * .version: changed to version 2.5.1; back to bleeding edge development + +2005-05-11 Borut Razem + + * doc/sdccman.lyx doc/cdbfileformat.lyx doc/test_suite_spec.lyx: + generate PDF version 1.3 documents + +2005-05-07 Erik Petrich * .version: changed to version 2.5.0