+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,
device/include/pic16/pic18f2455.h: NEW
* device/include/pic16/pic18fregs.h,
device/lib/pic16/pics.all,
- src/pic/device.c: added 18f2455
+ 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