* as/mcs51/lkarea.c: enlarged codemap for banked memory
[fw/sdcc] / ChangeLog
index 4cc538eb15701cd98734fc5bbcca8c0285a230eb..ea66ad0c5b0a98c28ab2ada5c919179394347f48 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,917 @@
+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