]> git.gag.com Git - fw/sdcc/blobdiff - ChangeLog
* support/Util/dbuf.h: include <stddef.h> for size_t
[fw/sdcc] / ChangeLog
index 3017b6da9cdda7297919fd710b05dda81af524db..39ca4d22028c494a52c371356697af58d1f51c0f 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,7 +1,186 @@
+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 FENRY + FEXIT
+         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