+2006-12-30 Bernhard Held <bernhard AT bernhardheld.de>
+ * src/mcs51/peeph.def: renamed rule 400 to 500, moved rule 253.x to
+ 400.x for better code in RFE 899102
+
+2006-12-30 Bernhard Held <bernhard AT bernhardheld.de>
+
+ * src/SDCCpeeph.c (deadMove),
+ * src/port.h,
+ * src/mcs51/peep.h: renamed 'op' by 'reg'
+ * src/mcs51/peep.c (isFunc, isCallerSaveFunc): added,
+ (scan4op): small change for removeDeadMove(), added support for
+ 'callee saves' and/or PACLL function calls,
+ (removeDeadMove): added, removes superflous 'mov r%1,%2',
+ (removeDeadPopPush): renamed from mcs51DeadMove(), common parts
+ left in new dispatcher mcs51DeadMove()
+ (mcs51DeadMove): dispatcher for removeDeadPopPush() and new
+ removeDeadMove()
+ * src/mcs51/peeph.def: added rule 301 removing superflous 'mov r%1,%2'
+
+2006-12-30 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
+
+ * support/cpp2/options_vc_in.h, support/cpp2/options_vc_in.c,
+ support/cpp2/sdcppa.dsp: create 'options.h' and 'options.c' under MSVC.
+
+2006-12-30 Borut Razem <borut.razem AT siol.net>
+
+ * support/cpp2/spacs.h: deleted from svn
+
+2006-12-21 Maarten Brock <sourceforge.brock AT dse.nl>
+
+ * src/z80/gen.c (assignResultValue): fixed bug when registers overlap,
+ with this z80 passes printf float test when enabled
+ * support/regression/tests/bug1057979.c: typo disabled ds390 float test
+
+2006-12-28 Borut Razem <borut.razem AT siol.net>
+
+ * support/cpp2/config.in, support/cpp2/configure.in,
+ support/cpp2/configure, support/cpp2/Makefile.in:
+ fix for the solaris build
+
+2006-12-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+ * src/SDCC.y (type_specifier2, pointer),
+ * src/SDCCsymt.h,
+ * src/SDCCsymt.c (mergeSpec, checkSClass),
+ * support/Util/SDCCerr.c,
+ * support/Util/SDCCerr.h: Parse and validate the restrict keyword
+ * support/valdiag/valdiag.py: Allow test cases to specify
+ required language standard
+ * support/valdiag/tests/restrict.c: New file to test restrict keyword
+ * support/valdiag/tests/tentdecl.c: Supress empty source file error
+
+2006-12-27 Borut Razem <borut.razem AT siol.net>
+
+ * support/cpp2/cppmain.c, support/cpp2/mbchar.[ch]: removed
+ * support/cpp2/libiberty/Makefile.in, support/cpp2/libiberty/sdcpp.dsp:
+ mbchar removed
+ * support/cpp2/libiberty/getpwd.c, support/cpp2/sdcpp.h:
+ fixed for borland C
+ * support/cpp2/libiberty/Makefile.bcc: updated
+ * src/pic16/main.c: fixed #pragma udata handling
+ * src/mcs51/mcs51.dsp: added peep.[ch] to the project
+
+2006-12-26 Bernhard Held <bernhard AT bernhardheld.de>
+
+ * src/SDCCpeeph.c: made labelHashEntry global,
+ made pcDistance, FBYNAME static,
+ (pcDistance): made static, use isComment and isLabel,
+ (deadMove): added,
+ (getLabelRef): added, extracted from labelRefCount(),
+ (labelRefCount): use new getLabelRef(),
+ (callFuncByName): made static, added deadMove,
+ use isComment and isLabel,
+ (newPeepRule): made static, set isLabel,
+ (isLabelDefinition): added parameter isPeepRule to allow '%' in
+ labels from peephole rules,
+ (buildLabelRefCountHash): speed up by running isLabelDefinition() only
+ when isComment or isLabel is set
+ * src/SDCCpeeph.h: added "isLabel" and "visited" to struct lineNode,
+ added labelHashEntry, isLabelDefinition, labelHash and getLabelRef
+ to make them global
+ * src/mcs51/peep.h: added
+ * src/mcs51/peep.c: added, implements mcs51DeadMove()
+ * src/port.h: added peep->deadMove to port structure
+ * src/mcs51/main.c: initialize peep->deadMove with mcs51DeadMove
+ * src/mcs51/peeph.def: renumbered rule 300 to 400, added new rule 300
+ deadMove, finally removed no. 1 and 2
+ * src/mcs51/gen.c,
+ * src/pic/gen.c,
+ * src/z80/gen.c,
+ * src/z80/ralloc.c,
+ * src/pic16/gen.c,
+ * src/ds390/gen.c,
+ * src/hc08/gen.c: mark lines with isComment or isLabel
+ * sim/ucsim/s51.src/uc390hw.cc: don't waist 65535 ticks before CKRDY
+ * .version,
+ * sdcc.spec: bumped version to 2.6.3
+
+2006-12-26 Borut Razem <borut.razem AT siol.net>
+
+ * support/cpp2/Makefile.in: added dependency on options.h
+ * configure: regenerated
+ * support/cpp2/sdcpp.opt, support/cpp2/move-if-change: svn:eol-style native
+ * support/cpp2/Makefile.in: added vasprintf.c
+
+2006-12-25 Borut Razem <borut.razem AT siol.net>
+
+ * SDCPP synchronized with GCC CPP release version 3.4.6,
+ the latest release before 4.x:
+ * support/cpp2/Makefile.in, support/cpp2/config.h,
+ support/cpp2/configure, support/cpp2/configure.in,
+ support/cpp2/cppdefault.c, support/cpp2/cppdefault.h,
+ support/cpp2/cpperror.c, support/cpp2/cppexp.c,
+ support/cpp2/cppfiles.c, support/cpp2/cpphash.c,
+ support/cpp2/cpphash.h, support/cpp2/cppinit.c,
+ support/cpp2/cpplex.c, support/cpp2/cpplib.c,
+ support/cpp2/cpplib.h, support/cpp2/cppmacro.c,
+ support/cpp2/cpptrad.c, support/cpp2/except.h,
+ support/cpp2/hashtable.c, support/cpp2/hashtable.h,
+ support/cpp2/hwint.h, support/cpp2/intl.h,
+ support/cpp2/line-map.c, support/cpp2/line-map.h,
+ support/cpp2/mkdeps.c, support/cpp2/mkdeps.h,
+ support/cpp2/output.h, support/cpp2/prefix.c,
+ support/cpp2/prefix.h, support/cpp2/sdcpp.dsp,
+ support/cpp2/system.h, support/cpp2/version.c:
+ modified
+ * support/cpp2/c-incpath.c, support/cpp2/c-incpath.h,
+ support/cpp2/c-ppoutput.c, support/cpp2/c-pretty-print.c,
+ support/cpp2/c-pretty-print.h, support/cpp2/cppcharset.c,
+ support/cpp2/cppucnid.h, support/cpp2/diagnostic.c,
+ support/cpp2/diagnostic.def, support/cpp2/diagnostic.h,
+ support/cpp2/hashtab.c, support/cpp2/hashtab.h,
+ support/cpp2/input.h, support/cpp2/libiberty/getpwd.c,
+ support/cpp2/libiberty/vasprintf.c, support/cpp2/libiberty/xmemdup.c,
+ support/cpp2/move-if-change, support/cpp2/opts.c,
+ support/cpp2/opts.h, support/cpp2/opts.sh,
+ support/cpp2/pretty-print.c, support/cpp2/pretty-print.h,
+ support/cpp2/sdcpp.opt, support/cpp2/sdcpp-opts.c,
+ support/cpp2/win32, support/cpp2/win32/dirent.c,
+ support/cpp2/win32/dirent.h:
+ added
+ * support/cpp2/sdcpp.c: renamed from sdcppmain.c
+ * support/cpp2/sdcpp.h: renamed from sdcc.h
+ * sdcppinit.c: deleted
+
+2006-12-23 Borut Razem <borut.razem AT siol.net>
+
+ * support/cpp2/cpphash.h, support/cpp2/cpplex.c,
+ support/cpp2/cpplib.[ch], support/cpp2/sdcppinit.c, doc/sdccman.lyx,
+ preproc.c: an other try to fix bug #982435: introduced
+ -pedantic-parse-number command line option and pedantic_parse_number
+ pragma
+
+2006-12-21 Maarten Brock <sourceforge.brock AT dse.nl>
+
+ * as/link/mcs51/lkarea.c (lnkarea2): handle absolute areas, restructured
+ BSEG handling,
+ (lnksect2): use --data-loc and --idata-loc as lower bound for ramstart,
+ corrected overlayed areax addresses, warn about memory overlaps
+ * as/mcs51/asmain.c (asmbl): create a new area for every .org directive
+ * src/avr/main.c,
+ * src/ds390/main.c,
+ * src/hc08/main.c,
+ * src/mcs51/main.c,
+ * src/pic16/main.c,
+ * src/pic/main.c,
+ * src/xa51/main.c,
+ * src/z80/main.c,
+ * src/port.h: added xabs_name and iabs_name
+ * src/SDCCglue.c (emitRegularMap): allocate for absolutes with initializer
+ (glue, emitMaps): create and emit maps d_abs and i_abs
+ * src/SDCCglue.h: cosmetic changes
+ * src/SDCCmain.c (setDefaultOptions): idata can start below 0x80
+ * src/SDCCmem.h,
+ * src/SDCCmem.c (initMem): added x_abs, i_abs and d_abs
+ (allocDefault): put absolute, initialized globals in them
+ * support/regression/tests/absolute.c: added absolute bdata test
+ * device/lib/printf_large.c (output_float): moved fpBuffer to stack/xdata
+
+2006-12-20 Borut Razem <borut.razem AT siol.net>
+
+ * support/cpp2/cpphash.h, support/cpp2/cpplex.c: fixed bug #982435
+ * support/regression/tests/preproc.c: renamed from bug-1351710.c,
+ added regression test for bug #982435
+
+2006-12-18 Borut Razem <borut.razem AT siol.net>
+
+ * src/SDCCutil.c: fixed a bug in (get_pragma_token)
+ * src/pic16/main.c, src/SDCC.lex, src/z80/main.c:
+ small cosmetic changes
+ * src/SDCC.lex: (stringLiteral) fixed bug #1351710
+ * support/regression/tests/bug-1351710.c: added regression test
+
+2006-12-18 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
+
+ * doc/sdccman.lyx: added the long missed iCode table
+ "<where is figure II?>", added links to wiki
+
+2006-12-17 Borut Razem <borut.razem AT siol.net>
+
+ * doc/sdccman.lyx, src/pic16/main.c, src/pic/main.c, src/port.h,
+ src/SDCC.lex, src/SDCCutil.[ch], src/z80/main.c,
+ support/Util/SDCCerr.[ch]: removed deprecated pragmas,
+ unified table driven pragma handling, pragma argument type checking
+ * support/Util/dbuf.c: (dbuf_set_size) allow to set size equal to the
+ current one - version 1.1.3
+ * src/SDCCmain.c: (setParseWithComma) substituted brain damaged strtok
+
+2006-12-13 Raphael Neider <rneider AT web.de>
+
+ * src/pic/device.h: removed AssignedMemory structure and macros
+ * src/pic/device.c: removed global finalMapping (linker assigns
+ memory locations),
+ (register_map): add SFRs to remembered memRanges
+ (addMemRange,isSFR,dump_map,dump_sfr,mapRegister,assignRegister,
+ assignFixedRegisters,assignRelocatableRegisters): removed,
+ (setMaxRAM,validAddress): adapted accordingly,
+ (pic14_hasSharebank,pic14_getSharedStack): only report and use
+ reasonably sized sharebanks,
+ * src/pic/ralloc.c (writeUsedRegs): stripped down (remove?),
+ (allDefsOutOfRange): removed unused code,
+ * src/pic/main.c (_process_pragma): removed memmap/maxram pragma
+ handling
+ * src/pic/pcode.c (register_reassign): removed recursion warning,
+ fired far too often,
+ * src/pic/glue.c (emitSymbolToFile,pic14_constructAbsMap): modified
+ to use existing pic14_stringInSet() to avoid duplicate symbols,
+ tidied up the code a bit,
+ (pic14printLocals): added in symmetry to printExterns, replaces
+ writeUsedRegs more or less,
+ (picglue): call new pic14_printLocals(),
+ * device/include/pic/pic*.h: removed #pragma memmap directives,
+ information gathered from include/pic/pic14devices.txt
+ * support/scripts/inc2h.pl: do not emit #pragma memmap lines
+
+2006-12-10 Maarten Brock <sourceforge.brock AT dse.nl>
+
+ * device/include/mcs51/C8051F520.h: fixed buggy CPT0MX
+
+2006-12-11 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
+
+ * device/include/mcs51/cc2430.h: fixed missing ';'
+
+2006-12-10 Raphael Neider <rneider AT web.de>
+
+ * device/lib/pic16/libc/stdio/vfprintf.c,
+ * device/lib/pic16/libc/stdio/printf_small.c,
+ * device/lib/pic16/libc/stdio/printf_timy.c: pop int from stack for
+ char arguments, as char varargs are cast to int by the caller,
+ hopefully fixes #1604915 (other device libraries are still affected)
+
+2006-12-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+ * src/mcs51/ralloc.c (packRegsForAssign),
+ * src/hc08/ralloc.c (packRegsForAssign): fixed bug #1605880
+
+2006-12-10 Maarten Brock <sourceforge.brock AT dse.nl>
+
+ * device/include/malloc.h: removed init_dynamic_memory
+ * device/lib/malloc.c: made init_dynamic_memory static and automatically
+ call it once from malloc. Also use _sdcc_heap[] from _heap.c
+ * device/lib/_heap.c: new, added, contains _sdcc_heap[]
+ * device/lib/libsdcc.lib,
+ * device/lib/Makefile.in,
+ * support/regression/ports/mcs51-xstack-auto/spec.mk: added _heap.c
+ * doc/sdccman.lyx: documented use of new _heap.c
+ * support/regression/tests/malloc.c: removed init_dynamic_memory
+ * src/cdbFile.c(spacesToUnderscores): new function,
+ (cdbWriteEndFunction, cdbWriteCLine): use spacesToUnderscores, fixes bug
+ 1068030
+ * device/include/tinibios.h: removed defines for putchar and getchar
+ * device/lib/ds390/Makefile.in: added putchar.c
+ * device/lib/ds390/putchar.c: new, added, fixes bug 1465671
+
+2006-12-09 Borut Razem <borut.razem AT siol.net>
+
+ * support/cpp2/sdcc.h: prevent multiple inclusion
+ * support/cpp2/options.h: deleted
+
+2006-12-08 Borut Razem <borut.razem AT siol.net>
+
+ * support/cpp2/sdcc.h: removed x*alloc() macros
+ * support/cpp2/libiberty.h: uncommented out x*alloc() declarations
+ * support/cpp2/Makefile.bcc, support/cpp2/Makefile.in,
+ support/cpp2/sdcpp.sdc: x*alloc files added to the project
+ * support/cpp2/system.h: moved #include "sdcc.h"
+ * support/cpp2/libiberty/xexit.c, support/cpp2/libiberty/xmalloc.c,
+ support/cpp2/libiberty/xstrdup.c, support/cpp2/libiberty/xstrerror.c:
+ added
+ * support/cpp2/sdcppinit.c: added -isysroot, -fsigned-char,
+ -funsigned-char options
+ * support/cpp2/sdcppmain.c: fixed bug 1611411
+
+2006-12-07 Borut Razem <borut.razem AT siol.net>
+
+ * support/cpp2/cpplib.c: reverted sdcpp special handling of _Pragma()
+ directive
+
+2006-12-06 Maarten Brock <sourceforge.brock AT dse.nl>
+
+ * src/SDCCsymt.c (addDecl): fixed bug 1609244
+ * src/SDCCmain.c (linkEdit): fixed bug 1609279
+ * doc/sdccman.lyx,
+ * .version: bumped to 2.6.2 because a) it's been a while
+ b) the linker sources have moved c) the preprocessor is upgraded
+
+2006-12-04 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
+
+ * support/regression/tests/snprintf.c: some checks
+ * lib/src/printf_large.c: %bc: read char instead of int from stack
+
+2006-12-03 Maarten Brock <sourceforge.brock AT dse.nl>
+
+ * device/include/mcs51/cc2430.h: inserted _XPAGE
+
+2006-12-02 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
+
+ * device/include/mcs51/cc2430.h: added
+
+2006-12-02 Maarten Brock <sourceforge.brock AT dse.nl>
+
+ * device/include/asm/default/features.h,
+ * device/include/asm/ds390/features.h,
+ * device/include/mcs51/at89s53.h,
+ * device/include/ser.h,
+ * device/include/ser_ir.h,
+ * device/include/serial.h: changed keywords to double underscore variants,
+ fixes bug 1590261 some more, thanks Steven Borley
+
+2006-12-01 Raphael Neider <rneider AT web.de>
+
+ * src/pic/pcode.c (register_reassign): do not crash on recursive code
+ but emit warning (recursion is not supported for pic14)
+
+2006-11-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
+
+ * src/mcs51/peeph.def: added 101.a,b (moves to int/long xdata)
+ * doc/sdccman.lyx: various small changes, acknowledged Sourceforge
+
+2006-11-30 Raphael Neider <rneider AT web.de>
+
+ * src/pic/device.c (dump_sfr): always emit symbols
+ * src/pic/glue.c (pic14printPublics): fixed typo
+
+2006-11-30 Raphael Neider <rneider AT web.de>
+
+ * src/pic/device.c (create_pic,ram_map): add memRange entries to PIC
+ (pic14_getSharebankSize, pic14_getSharebankAddress): replaced with
+ (pic14_hasSharebank,pic14_isShared,pic14_allRAMShared,
+ pic14_getSharedStack): NEW, evaluate the memRange entries to locate
+ a sharebank, use a non-shared bank for the stack if none available
+ * src/pic/device.h (struct memRange): added linked list next field,
+ added prototypes for above functions
+ * src/pic/ralloc.c (initStack): handle shared and banked stacks,
+ (typeRegWithIdx): accept fixed and unfixed stack registers
+ * src/pic/pcode.c (pCodeInitRegisters): use new functions to create
+ the stack, handle shared and banked stack (except for WSAVE),
+ (insertBankSel): removed useless optimization (will never fire),
+ (FixRegisterBanking): added optimization for devices with only one
+ possibly aliased bank of memory, like 16f84
+ * src/pic/glue.c (pic14_constructAbsMap): back to udata_ovr, as some
+ devices have no SHAREBANK in the linker script
+ * device/include/pic/pic14devices.txt: documented memmap
+ * device/lib/pic/libdev/Makefile.in: removed --stack-loc again
+
+2006-11-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+ * src/hc08/gen.c (transferRegReg, loadRegFromAop, forceStackedAop,
+ storeRegToAop, freeAsmop, genPlusIncr, genPlus, genPointerGetSetOfs,
+ genAnd, genOr, genXor, genLeftShiftLiteral, genRightShiftLiteral,
+ genhc08Code): switched most of the D (debug) macros to DD (detailed
+ debug) macros to better control clutter in the generated .asm file.
+ * src/hc08/gen.c: (forceStackedAop, genUminus, genLeftShift,
+ genRightShift): fixed bug with non-constant bit shift stored to
+ a volatile result (SF Open Discussion forum thread #1616749).
+ Single byte case is not yet optimized.
+
2006-11-28 Maarten Brock <sourceforge.brock AT dse.nl>
* device/include/asm/mcs51/features.h,
2006-11-27 Borut Razem <borut.razem AT siol.net>
- * support\cpp2\cppexp.c, support\cpp2\hashtable.h,
- support\cpp2\Makefile.in, support\cpp2\cppfiles.c,
- support\cpp2\output.h, support\cpp2\cppinit.c,
- support\cpp2\cpplib.c, support\cpp2\cpplib.h,
- support\cpp2\Makefile.bcc, support\cpp2\cpphash.c,
- support\cpp2\cppdefault.c, support\cpp2\system.h,
- support\cpp2\cpphash.h, support\cpp2\cpplex.c,
- support\cpp2\cppdefault.h, support\cpp2\mbchar.c,
- support\cpp2\prefix.c, support\cpp2\except.h,
- support\cpp2\hwint.h, support\cpp2\cppmacro.c,
- support\cpp2\line-map.h, support\cpp2\sdcpp.dsp,
- support\cpp2\sdcc.h, support\cpp2\mkdeps.c,
- support\cpp2\version.c, support\cpp2\cppmain.c,
- support\cpp2\version.h, support\cpp2\hashtable.c,
- support\cpp2\cpperror.c:
+ * support/cpp2/cppexp.c, support/cpp2/hashtable.h,
+ support/cpp2/Makefile.in, support/cpp2/cppfiles.c,
+ support/cpp2/output.h, support/cpp2/cppinit.c,
+ support/cpp2/cpplib.c, support/cpp2/cpplib.h,
+ support/cpp2/Makefile.bcc, support/cpp2/cpphash.c,
+ support/cpp2/cppdefault.c, support/cpp2/system.h,
+ support/cpp2/cpphash.h, support/cpp2/cpplex.c,
+ support/cpp2/cppdefault.h, support/cpp2/mbchar.c,
+ support/cpp2/prefix.c, support/cpp2/except.h,
+ support/cpp2/hwint.h, support/cpp2/cppmacro.c,
+ support/cpp2/line-map.h, support/cpp2/sdcpp.dsp,
+ support/cpp2/sdcc.h, support/cpp2/mkdeps.c,
+ support/cpp2/version.c, support/cpp2/cppmain.c,
+ support/cpp2/version.h, support/cpp2/hashtable.c,
+ support/cpp2/cpperror.c:
synchronized with GCC CPP release version 3.3.6,
the latest where cppmain.c still exists.
- * support\cpp2\cpptrad.c, support\cpp2\sdcppmain.c,
- support\cpp2\sdcppinit.c: added
+ * support/cpp2/cpptrad.c, support/cpp2/sdcppmain.c,
+ support/cpp2/sdcppinit.c: added
2006-11-27 Borut Razem <borut.razem AT siol.net>