+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