+2005-09-05 Raphael Neider <rneider AT web.de>
+
+ * src/pic16/ralloc.c (pic16_allocDirReg): use device specific
+ access bank splitpoint
+
+2005-09-05 Raphael Neider <rneider AT web.de>
+
+ * device/lib/pic16/libc/Makefile: added (missing) string to SUBDIRS
+
+2005-09-03 Maarten Brock <sourceforge.brock AT dse.nl>
+
+ * .version: changed to version 2.5.3
+ * doc/sdccman.lyx: changed version to 2.5.3,
+ documented --codeseg and --constseg and pragma codeseg and constseg,
+ documented bit parameters (reentrant) and bit returning
+ * src/SDCCicode.c (geniCodeReceive): fixed (possible) bug generating
+ currFunc->recvSize, but is this ok for all ports?
+ (ast2iCode): result of ~ on unsigned char must be cast to int for
+ bool to work
+ * src/SDCCmem.c (allocGlobal, allocLocal): don't put bit returning
+ function pointers in bit space
+ * src/SDCCsymt.c (checkSClass): allow bit returning function pointers,
+ (processFuncArgs): call port.reg_parm() with reentrancy info
+ * src/port.h,
+ * src/avr/main.c,
+ * src/ds390/main.c,
+ * src/hc08/main.c,
+ * src/pic/main.c,
+ * src/pic16/main.c,
+ * src/xa51/main.c,
+ * src/z80/main.c: port.reg_parm prototype extended with
+ "bool reentrant" parameter
+ * src/mcs51/main.c (_mcs51_regparm): use parameter reentrant instead of
+ options.stackAuto for allocating bit register parameters
+ * src/mcs51/gen.c (genNot): optimized complementing direct bit,
+ (genSend): set BitBankUsed if it is,
+ (selectRegBank): factored out of genCall for use in genPcall,
+ (genCall): removed redundant dtype assignmen, use selectRegBank,
+ (genPcall): handle returning in Carry properly, save in F0 if needed,
+ (genReceive): handle bit register parameters
+ * src/mcs51/ralloc.c (updateRegUsage): update BitBankUsed along the way,
+ (mcs51_assignRegisters): enable bit registers for all reentrant
+ functions and don't set BitBankUsed unconditionally
+ * src/mcs51/peeph.def (177.d): fixed bug if %2==%3
+ * support/regression/tests/bitvars.c: enable tests for SDCC_STACK_AUTO
+ * support/regression/tests/funptrs.c: added tests for BOOL and for return
+
+2005-08-27 Borut Razem <borut.razem AT siol.net>
+
+ * device/lib/Makefile.in: cp on sparc-solaris (SunOS) and on
+ ppc-osx (Darwin) does not support -u option. It seems that it is
+ supported only on Linux - GNU cp
+
+2005-08-25 Borut Razem <borut.razem AT siol.net>
+
+ * 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 <borut.razem AT siol.net>
+
+ * clean.mk, device/lib/clean.mk: find on sparc-solaris does not support -maxdepth option
+
+2005-08-23 Bernhard Held <bernhard AT bernhardheld.de>
+
+ * src/SDCCopt.c (convertToFcall): fixed modulus with divisors 1 and
+ ffffffffu
+
+2005-08-23 Maarten Brock <sourceforge.brock AT dse.nl>
+
+ * 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 <sourceforge.brock AT dse.nl>
+
+ * 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 <borut.razem AT siol.net>
+
+ * device/lib/Makefile.in: replaced find option -or with -o
+ to make it run on solaris
+
+2005-08-22 Raphael Neider <rneider AT web.de>
+
+ * src/pic16/gen.c (pic16_loadFromReturn): added check for AOP_PCODE,
+ fixes #1265442 (crash on Solaris)
+
+2005-08-20 Borut Razem <borut.razem AT siol.net>
+
+ * 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 <sourceforge.brock AT dse.nl>
+
+ * src/mcs51/peeph.def: updated comments
+
+2005-08-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
+
+ * 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 <slade_rich AT users.sourceforge.net>
+
+ * src/pic/pcode.c : Pasted ".line" assembly directives patch from
+ David Saxton with quotes around file name.
+
+2005-08-15 Borut Razem <borut.razem AT siol.net>
+
+ * 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 <rneider AT web.de>
+
+ * 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 <rneider AT web.de>
+
+ * 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 <rneider AT web.de>
+
+ * 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 <rneider AT web.de>
+
+ * device/lib/Makefile.in: fixed copying pic16 libraries (broken by
+ my last commit)
+
+2005-08-10 Raphael Neider <rneider AT web.de>
+
+ * 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 <rneider AT web.de>
+
+ * 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 <rneider AT web.de>
+
+ * src/pic16/gen.c (pic16_aopGet): fixed handling of offsets in
+ AOP_PCODE operands, fixes multibyte union-bitfield-accesses
+
+2005-08-05 Borut Razem <borut.razem AT siol.net>
+
+ * device/lib/Makefile.in: added missing ';'
+ * configure: removed ^M characters
+
+2005-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
+
+ * 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 <borut.razem AT siol.net>
+
+ * 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 <rneider AT web.de>
+
+ * 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 <borut.razem AT siol.net>
+
+ * 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 <rneider AT web.de>
+
+ * src/pic16/gen.c (genPackBits): removed deprecated warning
+ * (genGenPointerSet): fixed bitfield detection
+
+2005-08-02 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
+
+ * device/include/mcs51/msm8xc154s.h: Removed PT2 definition, now in 8052.h.
+
+2005-07-31 Raphael Neider <rneider AT web.de>
+
+ * device/lib/pic16/libdev/pic18f458.c,
+ device/include/pic16/pic18f458.h: added missing T0CONbits
+
+2005-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
+
+ * device/include/mcs51/msm8xc154s.h: added, thanks to Matthias Arndt
+
+2005-07-28 Maarten Brock <sourceforge.brock AT dse.nl>
+
+ * src/mcs51/gen.c (operandsEqu): fixed bug 1246687
+
+2005-07-23 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
+
+ * device/include/mcs51/at89c51ed2.h: added.
+
+2005-07-23 Raphael Neider <rneider AT web.de>
+
+ * 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 <sourceforge.brock AT dse.nl>
+
+ * support/Util/dbuf.h: include <stddef.h> for size_t
+ * .version: changed to version 2.5.2
+
+2005-07-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+ * src/SDCCloop.c (loopInvariants): fixed bug #1234048
+
+2005-07-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+ * src/hc08/gen.c (genMinus): fixed bug #1241835,
+ (genModOneByte): removed needless psha/pula
+
+2005-07-22 Raphael Neider <rneider AT web.de>
+
+ * 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 <rneider AT web.de>
+
+ * 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 <sourceforge.brock AT dse.nl>
+
+ * as/mcs51/lkarea.c: enlarged codemap for banked memory
+ * device/lib/mcs51/crtbank.asm: added # to 0x0F
+
+2005-07-21 Raphael Neider <rneider AT web.de>
+
+ * 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 <sourceforge.brock AT dse.nl>
+
+ * 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 <epetrich AT ivorytower.norman.ok.us>
+
+ * 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 <sourceforge.brock AT dse.nl>
+
+ * src/SDCCmem.c: fixed bug 1238386
+
+2005-07-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
+
+ * 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 <Frieder.Ferlemann AT web.de>
+
+ * doc/sdccman.lyx: added section about debugging with ddd
+ * doc/figures/ddd_example.eps: screenshot of debugging session
+
+2005-07-04 Raphael Neider <rneider AT web.de>
+
+ * 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 <rneider AT web.de>
+
+ * 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 <rneider AT web.de>
+
+ * 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 <sourceforge.brock AT dse.nl>
+
+ * 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 <sourceforge.brock AT dse.nl>
+
+ * 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 <sourceforge.brock AT dse.nl>
+
+ * 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 <jesusc AT ece.ubc.ca>
+
+ * device/include/mcs51/p89v51rd2.h, device/include/mcs51/at89s53.h: added.
+
+2005-06-24 Raphael Neider <rneider AT web.de>
+
+ * 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 <rneider AT web.de>
+
+ * 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 <slade_rich AT users.sourceforge.net>
+
+ * 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 <epetrich AT ivorytower.norman.ok.us>
+
+ * 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 <rneider AT web.de>
+
+ * 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 <Frieder.Ferlemann AT web.de>
+
+ * device/include/mcs51/reg764.h: Changed PB0 to PBO as requested by
+ Marcel Telka in bug #1215704
+
+2005-06-02 Slade Rich <slade_rich AT users.sourceforge.net>
+
+ * 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 <rneider AT web.de>
+
+ * src/pic16/{gen.c,genarith.c}: replaced sign-extension
+ "CLRF, BTFSC <signbit>, DECF/COMF" with side-effect-free
+ "CLRF, BTFSC <signbit>, SETF"; fixes "long>>9"
+
+2005-05-27 Maarten Brock <sourceforge.brock AT dse.nl>
+
+ * device/lib/_strncpy.c: fixed the fix
+
+2005-05-26 Raphael Neider <rneider AT web.de>
+
+ * 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 <rneider AT web.de>
+
+ * 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 <sourceforge.brock AT dse.nl>
+
+ * device/lib/_strncpy.c: fixed not filling with \0
+
+2005-05-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+ * 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 <rneider AT web.de>
+
+ * src/pic16/glue.c (pic16_printGPointerType): fixed #1207796
+
+2005-05-24 Raphael Neider <rneider AT web.de>
+
+ * device/include/pic16/pic18f{442,452,458}.h: fixed wrong
+ TRISE definitions, closes bug #1162453
+
+2005-05-22 Raphael Neider <rneider AT web.de>
+
+ * 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 <sourceforge.brock AT dse.nl>
+
+ * src/SDCCicode.c (isOperandEqual): fixed missing ;
+
+2005-05-19 Maarten Brock <sourceforge.brock AT dse.nl>
+
+ * 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 <rneider AT web.de>
+
+ * 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 <rneider AT web.de>
+
+ * 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 <rneider AT web.de>
+ * 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 <sourceforge.brock AT dse.nl>
+
+ * device/lib/printf_large.c: fixed bug 1193299
+ * support/regression/tests/bug1057979.c: added test %3.3s
+
+2005-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
+
+ * 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 <rneider AT web.de>
+
+ * 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 <borut.razem AT siol.net>
+
+ * src/SDCCmain.c (linkEdit): fixed bug 1195202
+
+2005-05-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+ * .version: changed to version 2.5.1; back to bleeding edge development
+
+2005-05-11 Borut Razem <borut.razem AT siol.net>
+
+ * doc/sdccman.lyx doc/cdbfileformat.lyx doc/test_suite_spec.lyx:
+ generate PDF version 1.3 documents
+
+2005-05-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+ * .version: changed to version 2.5.0
+
+2005-04-27 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
+
+ * doc/sdccman.lyx: updated weblinks, index and smaller updates
+
+2005-04-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+ * doc/sdccman.lyx: changed version 2.5.0, documented --std-c89,
+ --std-sdcc89, --std-c99, --std-sdcc99, and the corresponding #pragmas, as
+ well as many smaller updates.
+ * .version: changed to version 2.5.0-pre1
+
+2005-04-26 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
+
+ * src/SDCCmain.c (setIncludePath): added port->target to SDCC_INCLUDE_NAME
+
+2005-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
+
+ * support/regression/tests/bug1185672.c: added
+ * src/mcs51/gen.c (aopGetUsesAcc, genCpl, genAnd, genOr, genXor): fixed
+ bug 1185672
+ * src/mcs51/gen.c (genCall): added comments, made it look safer
+ * src/mcs51/gen.c (genEndFunction): simplified
+
+2005-04-25 Maarten Brock <sourceforge.brock AT dse.nl>
+
+ * src/mcs51/ralloc.c (serialRegAssign): fixed bug 1189609
+
+2005-04-14 Borut Razem <borut.razem AT siol.net>
+
+ * fixed bug 1045046 - SIGSEGV with really simple code?:
+ src/pic/pcode.c (pCodeInitRegisters)- pseudo stack size increased to 16
+ src/pic/ralloc.c (typeRegWithIdx) - error message on pseudo stack overflow
+
+2005-04-14 Borut Razem <borut.razem AT siol.net>
+
+ * src/pic16/gen.c (genInline), src/pic16/main.c (_process_pragma),
+ src/pic16/device.h: temporarily disabled experimental #inline pragma
+ for 2.5.0 release
+
+2005-04-14 Maarten Brock <sourceforge.brock AT dse.nl>
+
+ * device/include/z80/stdio.h,
+ * device/include/z80/string.h: removed these highly incomplete files so
+ SDCC can use the default ones in device/include/
+
+2005-04-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+ * src/mcs51/gen.c (genEndFunction): removed unused variable to fix
+ gcc warning.
+ * device/lib/Makefile.in: default PORTINCDIR to the mcs51 subdir to
+ fix sdcpp warnings.
+
+2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
+
+ * device/include/malloc.h: removed redundant __reentrant prototypes
+ * device/lib/_mullong.c: added working xstack variant in asm (C version
+ doesn't pass regression tests)
+ * device/lib/bpx.c: used __data and made bpx char for mcs51
+ * src/SDCCast.c (decorateType): removed unused GPTYPE_IDATA,
+ (createFunction): fixed bug with xstackPtr
+ * src/SDCCcse.c: corrected comments
+ * src/SDCCopt.c (convertToFcall): fixed warning in MSVC,
+ (killDeadCode, eBBlockFromiCode): removed unused code
+ * src/SDCCsymt.h: removed unused GPTYPE_GPTR and GPTYPE_IDATA,
+ corrected comments
+ * src/mcs51/gen.c (aopForSym, aopPut, toBoolean, unsaveRegisters,
+ assignResultValue, genCall, genFunction, genEndFunction, genAnd,
+ genOr, genXor, genAddrOf): fixed several bugs concerning xstack
+ (genModOneByte): fixed warning in MSVC
+ * src/mcs51/main.c (): added comments
+ * src/mcs51/peeph.def: changed 129 to 129.a, added 129.b, 129.c & 129.d
+
+2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
+
+ * src/SDCCmain.c (linkEdit): oops, changed one line too many
+
+2005-04-11 Maarten Brock <sourceforge.brock AT dse.nl>
+
+ * src/SDCCmain.c (linkEdit): fixed bug with finding crt0.o for z80
+
+2005-04-10 Vangelis Rokas <vrokas AT users.sourceforge.net>
+
+ * src/pic16/glue.c (printIvalChar): fixed bug when emitting
+ characters arrays of larger size than the declared one.
+
+2005-04-10 Borut Razem <borut.razem AT siol.net>
+
+ * src/pic/gen.c (genInline),
+ src/pic/pcode.c (newpCodeAsmDir), (pCode2str),
+ (genericPrint), (unlinkpCodeFromBranch), (compareLabel),
+ (findNextInstruction), (findPrevInstruction),
+ (findInstructionUsingLabel),
+ src/pic/pcode.h: fixed bug #1164907 - Labels not being recognized
+ * src/pic/pcode.c (findLabel): added missing '\n'
+ * src/src.dsp: added SDCCdwarf2.c to the project
+
+2005-04-09 Borut Razem <borut.razem AT siol.net>
+
+ * support/scripts/sdcc.nsi: added include/hc08/* h to NSIS setup
+
+2005-04-08 Raphael Neider <rneider AT web.de>
+
+ * src/pic16/pcode.c: added helpers defmapInsertAfter (insert a new item
+ into the chain after a given one) and mergeDefmapSymbols (combine
+ defmap entries for each symbol per pcode)
+ * (createDefmap): have defmap entries merged in the end
+ * (defmapReplaceSymRef): split defmap entries covering two accesses to
+ a symbol before replacing one access type's symbol, merge symbols in
+ the end (replacement symbol might already have an entry)
+ * (assignValnums): keep reference to written WREG intact
+
+2005-04-08 Raphael Neider <rneider AT web.de>
+
+ * src/pic16/pcode.c (struct defmap_s): named anonymous union (for
+ Alpha)
+
+2005-04-08 Vangelis Rokas <vrokas AT users.sourceforge.net>
+
+ * src/pic16/pcode.c (pic16_get_op2): enlarged size of array b to 128
+ bytes
+
+2005-04-07 Raphael Neider <rneider AT web.de>
+
+ * device/include/pic16/usart.h: added compatibility defines for
+ devices with more than one USART
+ * device/include/pic16/pic18f[68][567]20.h: activated above defines
+
+2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
+
+ * device/lib/Makefile.in: updated for port specific include
+
+2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
+
+ * support/regression/ports/mcs51/spec.mk: added mcs51 include
+
+2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
+
+ * device/include/8051.h,
+ * device/include/8052.h,
+ * device/include/at89S8252.h,
+ * device/include/at89c55.h,
+ * device/include/at89x051.h,
+ * device/include/at89x51.h,
+ * device/include/at89x52.h,
+ * device/include/mcs51reg.h,
+ * device/include/reg51.h,
+ * device/include/reg764.h,
+ * device/include/regc515c.h,
+ * device/include/sab80515.h: (re)moved these 12 files
+ * device/include/mcs51/8051.h,
+ * device/include/mcs51/8052.h,
+ * device/include/mcs51/at89S8252.h,
+ * device/include/mcs51/at89c55.h,
+ * device/include/mcs51/at89x051.h,
+ * device/include/mcs51/at89x51.h,
+ * device/include/mcs51/at89x52.h,
+ * device/include/mcs51/mcs51reg.h,
+ * device/include/mcs51/reg51.h,
+ * device/include/mcs51/reg764.h,
+ * device/include/mcs51/regc515c.h,
+ * device/include/mcs51/sab80515.h: and added them here
+
+2005-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
+
+ * device/include/stdarg.h: changed SDCC specific keywords to double
+ underlined form.
+ * device/include/stdint.h: changed intptr_t and uintptr_t for others than
+ mcs51 and ds390.
+ * device/include/hc08/mc68hc908gp32.h,
+ * device/include/hc08/mc68hc908jb8.h,
+ * device/include/hc08/mc68hc908jkjl.h,
+ * device/include/hc08/mc68hc908qy.h: fixed comments
+ * device/include/mcs51/README: updated
+ * device/include/mcs51/c8051f120.h: added PINRSF
+ * device/lib/pic16/libc/stdlib/crc16.c: fixed comments
+ * src/pic16/pcode.c: MSVC6 doesn't accept declaring new variables
+ amidst code. Also inline is not supported.
+
+2005-04-06 Raphael Neider <rneider AT web.de>
+
+ * src/pic16/pcode.c (pic16_pCodeReplace): also update pcflow->end
+ * (createDefmap): fixed CALLs to depend on FSR1 and RETLW to restore
+ callers stack/frame pointers
+
+2005-04-06 Vangelis Rokas <vrokas AT users.sourceforge.net>
+
+ * device/include/pic16/usart.h: added, missing in previous commit,
+ * device/include/pic16/adc.h: fixed typo,
+ * device/lib/pic16/libc/utils/cvtdec.S: added missing in previous
+ commit,
+ * device/lib/pic16/libc/stdlib/g_ftoa.S: modified to include
+ <p18fxxx.inc>
+ * device/lib/pic16/libc/stdio/streams.c: leave stdin, stdout
+ uninitialized because a bug appears with gplink
+ * device/lib/pic16/{some makefiles}: moved $(CSTD) from CFLAGS to
+ COMPILE_FLAGS and added CPPFLAGS with -nostdinc because sdcpp
+ complains for unrecognised option
+
+2005-04-05 Raphael Neider <rneider AT web.de>
+
+ * src/pic16/gen.c (pic16_popCopyReg): made copying work for extended
+ structs as well (using memcpy)
+ * (genFunction): fixed comparison, used pCodeOpLabel to reduce warning
+ on ISRs (GOTO has no label)
+ * src/pic16/device.h: added OF_OPTIMIZE_DF
+ * src/pic16/main.c: added compiler switch --optimize-df to enable the
+ new data flow analysis/optimization
+ * src/pic16/pcode.c: added (prototypes for and implementation of)
+ dataflow analysis functions, fixed pCodeInstructions' inCond and
+ outCond values, made RCALL a branch instruction
+ * (pic16_unlinkpCode): keep C line if possible
+ * (pic16_pCodeUnlink): removed cast on left side of assignment, have
+ C line moved if possible
+ * (pic16_getRegFrompCodeOp): NEW, improved version of...
+ * (pic16_getRegFromInstruction,pic16_getRegFromInstruction2): changed
+ to use new pic16_getRegFrompCodeOp (works for more SFRs)
+ * (pic16_BuildFlow): fixed skip instructions with label (did not start
+ new flow)
+ * (pic16_getJumptabpCode): NEW, needed in...
+ * (LinkFlow): fixed handling of jumptables, calls and conditional
+ branches
+ * (pic16_InsertCommentAfter): NEW
+ * (pic16_pCodeReplace): made verbose and flow preserving
+ * (AnalyzeFlow): added call to data flow analysis
+ * src/pic16/pcode.h: added defmaps to pCodeFlow struct
+ * src/pic16/pcodeflow.h: added PCC_STATUS to mean all STATUS bits
+ * src/pic16/ralloc.c (packRegsForAssign): added return 1 in the end
+
+2005-04-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+ * src/SDCCast.c (decorateType): fixed bug #1105626
+
+2005-04-02 Vangelis Rokas <vrokas AT users.sourceforge.net>
+
+ * device/include/asm/pic16/features.h,
+ * pic18f*.h headers,
+ * device/include/pic16/adc.h,
+ * device/include/pic16/delay.h,
+ * device/include/pic16/i2c.h,
+ * device/include/pic16/malloc.h,
+ * device/include/pic16/stdio.h,
+ * device/include/pic16/stdlib.h,
+ * device/include/pic16/string.h,
+ * device/lib/pic16/libc/stdio/printf_tiny.c,
+ * device/lib/pic16/libc/stdio/printf_small.c,
+ * device/lib/pic16/libc/stdio/strmgpsim.c,
+ * device/lib/pic16/libc/stdio/strmmssp.c,
+ * device/lib/pic16/libc/stdio/strmusart.c,
+ * device/lib/pic16/libc/stdio/vfprintf.c,
+ * device/lib/pic16/libc/stdlib/ltoa.c,
+ * device/lib/pic16/libc/stdlib/putchar.c,
+ * device/lib/pic16/libc/stdlib/x_ftoa.c,
+ * device/lib/pic16/libc/stdlib/memchrpgm.c,
+ * device/lib/pic16/libc/stdlib/memchrram.c,
+ * device/lib/pic16/libc/stdlib/memcpypgm2ram.c,
+ * device/lib/pic16/libc/stdlib/memcpyram2ram.c,
+ * device/lib/pic16/libio/adc/adcbusy.c,
+ * device/lib/pic16/libio/adc/adcread.c,
+ * device/lib/pic16/libio/adc/adcsetch.c,
+ * device/lib/pic16/libio/usart/ubaud.c,
+ * device/lib/pic16/libio/usart/ubusy.c,
+ * device/lib/pic16/libio/usart/udrdy.c,
+ * device/lib/pic16/libio/usart/uopen.c,
+ * device/lib/pic16/libio/usart/uputc.c,
+ * device/lib/pic16/libsdcc/gptr/gptrget1.c,
+ * device/lib/pic16/libsdcc/gptr/gptrget2.c,
+ * device/lib/pic16/libsdcc/gptr/gptrget3.c,
+ * device/lib/pic16/libsdcc/gptr/gptrget4.c,
+ * device/lib/pic16/libsdcc/gptr/gptrput1.c,
+ * device/lib/pic16/libsdcc/gptr/gptrput2.c,
+ * device/lib/pic16/libsdcc/gptr/gptrput3.c,
+ * device/lib/pic16/libsdcc/gptr/gptrput4.c: modified all SDCC
+ specific keywords to double underlined form,
+ * device/lib/pic16/libc/Makefile.rules,
+ * device/lib/pic16/libsdcc/Makefile.rules,
+ * device/lib/pic16/libm/Makefile,
+ * device/lib/pic16/libio/Makefile.rules: added CSTD macro in CFLAGS
+ to compile with C standard set in Makefile.common
+ * device/lib/pic16/libc/stdlib/Makefile: added new C sources
+ rand.c and crc.c in compilation process,
+ * device/lib/pic16/libsdcc/int/divuint.c,
+ * device/lib/pic16/libsdcc/long/divulong.c: changed declaration of
+ `c' from signed to unsigned,
+ * device/lib/pic16/startup/crt0.c,
+ * device/lib/pic16/startup/crt0i.c,
+ * device/lib/pic16/startup/crt0iz.c: adopted to all SDCC specific
+ keywords to double underlined form, bug fixes in _do_cinit function
+ which prevented the correct initialization of the .idata segment,
+ * src/pic16/pcoderegs.c (insideLRBlock): fixed a bug that caused the
+ core to enter a infinite loop
+ * device/lib/pic16/libc/stdlib/rand.c, crc.c: new files
+
+2005-04-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+ * src/SDCCicode.c (getArraySizePtr): fixed bug #1122171
+
+2005-04-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+ * device/include/Makefile.in: add support for hc08 subdirectory
+ * device/include/hc08/: new subdirectory
+ * device/include/hc08/mc68hc908jkjl.h: new header contributed by
+ Lucas Loizaga, thanks!
+ * device/include/hc08/mc68hc908qy.h,
+ * device/include/hc08/mc68hc908gp32.h,
+ * device/include/hc08/mc68hc908jb8.h: moved hc08 register defs to
+ their own directory. Changed internal macro names to use the compiler
+ reserved namespace. Changed SDCC specific keywords to double
+ underlined form.
+ * device/include/math.h,
+ * device/include/malloc.h,
+ * device/include/stdarg.h,
+ * device/include/stdbool.h
+ * device/include/string.h,
+ * device/include/tinibios.h,
+ * device/include/ds400rom.h,
+ * device/include/8051.h,
+ * device/include/8052.h,
+ * device/include/80c51xa.h,
+ * device/include/at89c55.h,
+ * device/include/at89S8252.h,
+ * device/include/at89x51.h,
+ * device/include/at89x52.h,
+ * device/include/ds80c390.h,
+ * device/include/reg764.h,
+ * device/include/regc515c.h,
+ * device/include/sab80515.h,
+ * device/include/mcs51/c8051f000.h,
+ * device/include/mcs51/c8051f018.h,
+ * device/include/mcs51/c8051f020.h,
+ * device/include/mcs51/c8051f040.h,
+ * device/include/mcs51/c8051f060.h,
+ * device/include/mcs51/c8051f120.h,
+ * device/include/mcs51/c8051f300.h,
+ * device/include/mcs51/c8051f310.h,
+ * device/include/mcs51/c8051f320.h,
+ * device/include/mcs51/c8051f330.h,
+ * device/include/mcs51/c8051f350.h,
+ * device/include/z180.h: Changed SDCC specific keywords to double
+ underlined form.
+
+2005-03-31 Vangelis Rokas <vrokas AT users.sourceforge.net>
+
+ * src/pic16/device.c (Pics16[]): added devices 18F2550, 18F4331,
+ 18F4455,
+ * (pic16_assignConfigWordValue): disable testing of configuration
+ register value with config mask,
+ * src/pic16/gen.c (pic16_testStackOverflow): prefix stack test
+ function with port->fun_prefix,
+ * (genFunction): when generating a naked interrupt function never
+ create an absolute segment placed in interrupt vector address, place
+ the actual interrupt function at IVA instead, when an interrupt
+ function is generated with unspecified interrupt then do not create
+ the absolute section,
+ * (genGenPointerGet, genGenPointerSet, genPackBits): replace all
+ code for generating a call to generic pointer get/put function with
+ a call to function pic16_callGenericPointer(),
+ * src/pic16/genutils.c (pic16_callGenericPointerRW): NEW, generates
+ the call to the generic pointer get/put functions with prefixing the
+ function name with port->fun_prefix,
+ * src/pic16/glue.c (pic16glue): ifdef-out test of OF_LR_SUPPORT,
+ * src/pic16/main.c (_process_pragma): prefix function with
+ port->fun_prefix,
+ * (_pic16_finaliseOptions): define macro __18Fxxxx macro when
+ calling assembler, old 18Fxxxx macro is deprecated,
+ * src/pic16/pcode.c (unlinkpCodeFromBranch): added PC_INLINE and
+ PC_ASMDIR in while condition,
+ * (findInstruction): add PC_ASMDIR in while condition,
+ * (buildCallTree): prefix main with port->fun_prefix,
+ * (pic16_pCode2str): fixed bug that didn't emit the memory access
+ identifier for variable with banked access in instructions BTFSS,
+ BTFSC, BCF, BSF, BTG
+ * (AnalyzeFlow): moved call to OptimizepCode to pic16_AnalyzeBanking,
+ * src/pic16/pcodepeep.c (pCodeOpCompare): increase size of b to 1024,
+ * src/pic16/pcoderegs.c (pic16_pCodeRegoptimizeRegUsage): don't
+ perform optimization when enviroment variable NO_REG_OPT is set,
+ * (insideLRBlock): NEW, return 1 if register is inside an
+ INF_LOCALREGS block,
+ * (RemoveRegFromLRBlock): remove a register that is completely
+ eliminated by register optimization, but it is still left in local
+ register store/restore in/from stack block,
+ * (Remove2pcodes): after removing register, check to see if it
+ should be removed from local register store/restore in/from stack
+ block,
+ * src/pic16/ralloc.c (pic16_decodeOp): added decode for
+ DUMMY_READ_VOLATILE,
+
+ * device/include/pic16/adc.h: minor prototype modifications and
+ update,
+ * device/include/pic16/malloc.h: added GPL notice various
+ modifications,
+ * device/include/pic16/stdint.h: NEW, standard header for ints
+ * device/include/pic16/delay.h: NEW, header for delay functions,
+ delay10tcy, delay100tcy, delay1ktcy, delay10ktcy, delay100ktcy,
+ delay1mtcy,
+ * device/include/pic16/signal.h: NEW, header providing helper macros
+ for implementing signal handlers,
+ * device/include/pic16/stdio.h: added prototypes for functions,
+ printf, vprintf, sprintf, vsprintf, fprintf, vfprintf. Added
+ prototypes for stdin and stdout, added macro PUTCHAR to
+ automatically implement putchar function prototype,
+ * device/include/pic16/usart.h: modified and updated USART library,
+ * device/lib/pic16/libio/adc/,
+ * device/lib/pic16/libio/i2c: some modifications to improve library
+ performance,
+ * device/lib/pic16/libc/stdio/: modifications for the new printf*
+ family of functions,
+ * device/lib/pic16/libc/stdlib/: various modifications in the malloc
+ family of functions and other sources,
+ * device/lib/pic16/libio/usart/: NEW, c sources for the usart module
+ of the PIC18Fxx[28] devices,
+ * device/lib/pic16/libc/delay/: NEW, c sources for the delay functions,
+ * device/lib/pic16/libc/utils/: minor modifications in the .S sources,
+ * device/lib/pic16/startup/{crt0i.c, crt0iz.c}: redesign of the
+ _do_cinit function, because the previous failed when local variables
+ where not placed in the same memory bank,
+ * device/lib/pic16/libsdcc/char/: various modifications to improve
+ library performance,
+ * doc/sdccman.lyx: some reorganization of the PIC16 part, added many
+ information on the new functions of the c library and more...
+
+2005-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+ * src/SDCCBBlock.c (iCodeBreakDown): fixed bug #1170212
+
+2005-03-26 Raphael Neider <rneider AT web.de>
+
+ * src/pic16/gen.c (genSkipc): fixed semantics (execute branch
+ if condition == CARRY)
+ * (genCmp): adapted to new genSkipc semantics
+ * src/pic16/genutils.c (pic6_genCmp_special): removed side effect
+ on rIfx (genCmp was broken)
+
+2005-03-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+ * src/SDCCmain.c (setDefaultOptions, optionsTable[], parseCmdLine),
+ * src/z80/main.c (_keywords[]),
+ * src/SDCCglobal.h (struct options),
+ * src/SDCC.y,
+ * src/SDCC.lex (isTargetKeyword, doPragma, pragma_tbl[]): new pragmas
+ to enable/disable SDCC and C99 extensions/keywords (std_c89, std_sdcc89,
+ std_c99, std_sdcc99). Also, equivalent command line options (--std-c89,
+ --std-sdcc89, --std-c99, --std-sdcc99). SDCC specific keywords are
+ always available in leading double underscore form. The C99 support is
+ mostly missing, but it's a start.
+ * support/regression/tests/bug-227710.c: fixed nonconforming use of
+ reserved identifier "__data".
+
+2005-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
+
+ * src/mcs51/peeph.def: fixed bug 1170013
+
+2005-03-22 Maarten Brock <sourceforge.brock AT dse.nl>
+
+ * device/include/mcs51reg.h: fixed bug 842007
+
+2005-03-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+ * src/SDCCcflow.c (dfNumCompare): committed the wrong version of this
+ last time.
+
+2005-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+ * src/port.h (struct PORT),
+ * src/avr/ralloc.c (avr_assignRegisters),
+ * src/avr/main.c,
+ * src/ds390/ralloc.c (ds390_assignRegisters),
+ * src/ds390/main.c,
+ * src/hc08/ralloc.c (hc08_assignRegisters),
+ * src/hc08/main.c,
+ * src/mcs51/ralloc.c (mcs51_assignRegisters),
+ * src/mcs51/main.c,
+ * src/pic/ralloc.c (pic14_assignRegisters),
+ * src/pic/main.c,
+ * src/pic16/ralloc.c (pic16_assignRegisters),
+ * src/pic16/main.c,
+ * src/xa51/ralloc.c (xa51_assignRegisters),
+ * src/xa51/main.c,
+ * src/z80/ralloc.c (z80_assignRegisters),
+ * src/z80/ralloc.h,
+ * src/SDCCopt.c (eBBlockFromiCode, replaceRegEqv, killDeadCode),
+ * src/SDCCcse.c (ifxOptimize, cseBBlock, cseAllBlocks),
+ * src/SDCCcse.h,
+ * src/SDCCdflow.c (computeDataFlow),
+ * src/SDCCdflow.h,
+ * src/SDCCloop.c (addDefInExprs, loopInvariants, loopOptimizations),
+ * src/SDCCloop.h,
+ * src/SDCCcflow.c (*),
+ * src/SDCCcflow.h,
+ * src/SDCCBBlock.c (iCodeBreakDown, dumpEbbsToFileExt, eBBWithEntryLabel),
+ * src/SDCCBBlock.h (struct ebbIndex): new struct that keeps two copies
+ of the eBBlock list, sorted by both bbnum and dfnum. (fixes bug with
+ immedDom() returning wrong block; probably fixes bug #1160833)
+
+2005-03-20 Borut Razem <borut.razem AT siol.net>
+
+ * support/scripts/inc2h.pl: WIN32 port
+
+2005-03-19 Maarten Brock <sourceforge.brock AT dse.nl>
+
+ * device/lib/makefile.in: added abs.c and labs.c
+
+2005-03-17 Maarten Brock <sourceforge.brock AT dse.nl>
+
+ * device/include/stdint.h: added
+ * device/lib/abs.c: added
+ * device/lib/labs.c: added
+ * device/include/stdlib.h: added abs() and labs() prototypes
+ * device/lib/libsdcc.lib: added abs and labs
+ * device/include/float.h,
+ * device/lib/_fsmul.c,
+ * device/lib/printf_fast.c,
+ * device/lib/printf_tiny.c: updated comments
+
+2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+ * src/SDCCicode.c (geniCodeSwitch, geniCodeJumpTable): fixed
+ bug #1164313
+
+2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+ * src/SDCCcse.c (cseBBlock): retain assignment to self when volatile
+ * src/SDCCast.c (isLoopCountable): fixed bug #1161985
+
+2005-03-15 Maarten Brock <sourceforge.brock AT dse.nl>
+
+ * device/lib/printf_large.c: removed inline assembly for portability and
+ readability. Use printf_fast if speed or size are more important.
+ * src/pic16/gen.c: removed conditions around use of DEBUGpc
+ * src/pic16/genutils.h: added define for DEBUGpc for MSVC
+
+2005-03-15 Vangelis Rokas <vrokas AT users.sourceforge.net>
+
+ * src/pic16/genutils.c (pic16_genCmp_special): initialized offs to
+ prevent compiler warning
+
+2005-03-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
+
+ * device/lib/pic16/startup/crt0i.c (_cinit): local variables where
+ moved to level 0 and declared as static. Also they are explicit
+ placed in access bank. This was necessery because some times they
+ might cross memory bank boundaries. crt0iz.c is *NOT* updated!!!
+ * src/pic16/device.h: added flag OPTIMIZE_CMP to enable some compare
+ optimizations. Currently only compare to unsigned char is implemented,
+ * src/pic16/gen.c: added fReturnIdx array,
+ * (struct resolvedIfx) is moved to gen.h and made public,
+ * (struct _G): added sregsAlloc and sregsAllocSet fields,
+ * (aopForSym): added an optimization to directly store in stack of
+ the operand of a SEND iCode,
+ * (pic16_aopOp): don't return return registers as strings (AOP_STR)
+ but as registers instead (AOP_REG) using the fReturnIdx array,
+ * (pic16_freeAsmop): remove the freed register from the
+ _G.sregsAlloc field,
+ * (pic16_aopGet): in case AOP_STR, the compare to 'a' is changed to
+ a compare of 'WREG',
+ * (pic16_popGetTempRegCond): changed function prototype, now
+ function takes also a bitVector argument v which holds the current
+ set of registers that are allocated for stack access by aopForSym,
+ registers allocated in aopForSym for accessing stack symbols are not
+ any more part of the functions usedRegs field,
+ * (genCall): some times aopOp is called for a stack variable to be
+ send, aopForSym might perform the push, if this is true make sure
+ that genCall doesn't push the variable twice by testing _G.resDirect,
+ * (genFunction): changed testing for unspecified interrupt number
+ from 256 to INTNO_UNSPEC,
+ * modified selection scheme of frame pointer generation. Previously
+ if function did use local registers a frame pointer was generated,
+ now a frame pointer is generated only if function has arguments
+ (that need PLUSW2 register access), or has stack arguments, or the
+ compiler is not instructed to omit the frame pointer,
+ * (genEndFunction): before restoring local registers that were saved
+ in the function preamble, also restore the registers that *might*
+ have been allocated for stack access,
+ * (genRet): removed some old comments,
+ * (genCmp, the active (RN's) version): added a call to the
+ pic16_genCmp_special function to perform the compare with a more
+ robust and optimized way,
+ * (genInline): a feature has been added in inline code generation,
+ which allows a wildcard variable substitution when writing inline
+ assembly. Code is incomplete and experimental therefore undocumented,
+ * (genCast): changed order of aopOp for result and right to allow
+ aopForSym to directly load the result if possible,
+ * src/pic16/genutils.c (selectCompareOp, pic16_genCmp_special): NEW,
+ perform an optimized compare on some selected special occasions,
+ * src/pic16/genutils.h: declaration of resolvedIfx structure from gen.c,
+ * src/pic16/glue.c (pic16createInterrupVect): make sure we never
+ generate an IVT any more,
+ * src/pic16/main.c (pic16_optionsTable): added command line option
+ --optimize-cmp,
+ * (_pic16_initPaths): when calling C preprocessor define pic18fXXXX
+ macro too, when calling assembler define pic18fXXXX *and* __18Fxxxx
+ macros,
+ * src/pic16/NOTES: Raphael Neider added in list of active developers
+ * src/pic16/pcode.c (OPT_TYPE_STR): added strings jumptable_begin and
+ jumptable_end to prevent bug #,
+ * (pic16_pciADDWFC, ADDFWC, COMF, CLRF): added some missing flags in
+ inCond and outCond fields,
+ * src/pic16/pcoderegs.c (pCodeOptime2pCodes): add a fix for bug #,
+ * src/pic16/ralloc.c (serialRegAssign): explicit set willCS to 0 to
+ turn off register spilling,
+ * (packRegsForOneUse): synced with other ports' versions although it
+ is not used currently,
+ * (pic16_packRegisters): added an optimization while reading
+ structure bitfields, some registers may be saved (malloc code is
+ decreased by 80 bytes)
+
+2005-03-12 Vangelis Rokas <vrokas AT users.sourceforge.net>
+
+ * src/SDCCcse.c (cseBBlock): inside 'do operand lookup' loop test if
+ left is a bitfield, if yes, then don't optimize assignment. Perhaps
+ this can be optimized more?
+
+2005-03-10 Raphael Neider <rneider AT web.de>
+
+ * src/pic16/gen.c (pic16_loadFSR0, genPackBits, genUnpackBits,
+ genNearPointerGet): (hopefully) fixed access to bitfields via
+ pointers (p->bitN = x; and x = p->bitN; failed)
+
+2005-03-09 Paul Stoffregen <paul AT pjrc.com>
+
+ * device/lib/printf_fast.c: fix leading zero format, eg "%02d"
+
+2005-03-09 Raphael Neider <rneider AT web.de>
+
+ * src/SDCCopt.c (killDeadCode): fixed bug #1156016
+
+2005-03-06 Maarten Brock <sourceforge.brock AT dse.nl>
+
+ * src/SDCCicode.h: moved CRITICAL and ENDCRITICAL from SKIP_IC2 to SKIP_IC
+ * src/mcs51/ralloc.c (willCauseSpill): added check for REG_BIT type,
+ (regTypeNum): set REG_BIT type if necessary
+ * src/mcs51/ralloc.h: added define REG_BIT, used to fix bug 1144613
+ * support/regression/tests/critical.c: check bug 1144613
+
+2005-03-02 Raphael Neider <rneider AT web.de>
+
+ * src/pic16/gen.c (genRightShiftLiteral): fixed bug #1154256
+
+2005-02-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+ * src/avr/ralloc.c (serialRegAssign),
+ * src/ds390/ralloc.c (serialRegAssign),
+ * src/hc08/ralloc.c (serialRegAssign),
+ * src/mcs51/ralloc.c (serialRegAssign),
+ * src/pic/ralloc.c (serialRegAssign),
+ * src/pic16/ralloc.c (serialRegAssign),
+ * src/xa51/ralloc.c (serialRegAssign),
+ * src/z80/ralloc.c (serialRegAssign): fixed bug #1105154
+
+2005-02-22 Maarten Brock <sourceforge.brock AT dse.nl>
+
+ * src/SDCCast.c (decorateType): fixed bug 1124787
+
+2005-02-20 Hubert Sack <sack AT digiplan.de>
+ committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
+
+ * src/mcs51/peeph.def: added peepholes 3.h-k and 132.a-f from
+ patch #1121755
+
+2005-02-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
+
+ * src/SDCCpeeph.def: new keyword "labelRefCountChange" which allows peepholes
+ to keep the correct label reference count when adding/removing references
+ to labels. A peephole file using this is appended to patch #1144962.
+
2005-02-14 Raphael Neider <rneider AT web.de>
* device/lib/pic16/libc/string/memccpy.c: changed 3rd argument to char
* src/pic/gen.c : Fix for bugs #1080519 & #1115662.
-2004-02-03 Maarten Brock <sourceforge.brock AT dse.nl>
+2005-02-03 Maarten Brock <sourceforge.brock AT dse.nl>
* device/include/mcs51/c8051f120.h: added declarations for sbit port 2,3&4
* (genPackBits): improved accessing full bytes, implemented for GPOINTERs
* device/include/pic16/{stddef.h,stdbool.h}: added
-2004-02-02 Maarten Brock <sourceforge.brock AT dse.nl>
+2005-02-02 Maarten Brock <sourceforge.brock AT dse.nl>
* device/include/mcs51/c8051f040.h: added define CPT2_PAGE
* src/pic16/Makefile.bcc : Do not use this file but added file graph.c as it
appeared to be required
-2004-01-31 Borut Razem <borut.razem AT siol.net>
+2005-01-31 Borut Razem <borut.razem AT siol.net>
* support/scripts/sdcc.nsi: added include/asm/ds390, include/asm/mcs51,
include/mcs51 and include/z80 directories to the package
-2004-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
* src/hc08/gen.c (genFunction): fixed bug #1112752
-2004-01-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
+2005-01-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
* src/mcs51/peeph.def: adapted peephole 258.x to changed gen.c (genAnd)
-2004-01-29 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
+2005-01-29 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
* src/mcs51/gen.c (genAnd): accessing LSB/MSB by rotating acc
-2004-01-29 Maarten Brock <sourceforge.brock AT dse.nl>
+2005-01-29 Maarten Brock <sourceforge.brock AT dse.nl>
* device/include/Makefile.in: create/copy mcs51 and z80 include subdirs
-2004-01-27 Maarten Brock <sourceforge.brock AT dse.nl>
+2005-01-27 Maarten Brock <sourceforge.brock AT dse.nl>
* device/include/c8051fxxx.h: removed these 6 files
* device/include/mcs51/c8051fxxx.h: added these 11 new files
* src/pic16/glue.c (emitStatistics): beautified
* device/lib/pic16/libm/Makefile: added include path
-2004-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
* src/z80/gen.c (aopPut): fixed bug #1103902
-2004-01-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+2005-01-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
* device/lib/expf.c: fixed bug #1095792
* src/pic16/pcoderegs.c (pCodeOptime2pCodes): disabled optimization
to fix #1106967 (pCode->seq are not set up correctly)
-2004-01-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+2005-01-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
* src/SDCCglue.c (glue): make sure code area is declared before the
static initialization area.