borutr [Sat, 10 Feb 2007 13:41:24 +0000 (13:41 +0000)]
* src/SDCCsymt.c: fixed bug #1159134: invalid duplicate declarations
with same scope
* support/regression/tests/bug-1654060.c: added regression test for
#1654060
MaartenBrock [Tue, 6 Feb 2007 23:26:46 +0000 (23:26 +0000)]
* device/lib/printf_large.c (_print_format): fixed compare/assign bug, how
can this have lived here for so many years?
* src/SDCCicode.c (ast2iCode): return left instead of right for assignment,
fixes bug 1273984, see also patch 1645121, thanks Günther Jehle
borutr [Sat, 3 Feb 2007 16:09:18 +0000 (16:09 +0000)]
* device/lib/Makefile.in: added the -f option to rm so it doesn't
prompt for file deletion a few hundred times (especially the
subversion files, which have ro permissions so it asks for
confirmation), thanks to Simon McAuliffe;
added {}+ option to find in order to remove multiple files from a
single rm commad
borutr [Sat, 3 Feb 2007 12:08:54 +0000 (12:08 +0000)]
* sdc/SDCC.y, src/SDCCmain.c, src/SDCCglobl.h, doc/sdccman.lyx:
applied patch #1646602 option to set default signedness of char to
unsigned, added -funsigned-char command line option
tecodev [Tue, 30 Jan 2007 23:52:00 +0000 (23:52 +0000)]
* src/pic/pcode.c (isValidIdChar,bankCompare): fuzzy matching of
operand names, handles name and (name + n) for all n,
(sameBank): restructured, also check bank allocation policy,
* src/pic/glue.c (emitPseudoStack): fixed printf arguments,
(pic14_operandsAllocatedInSameBank): check whether to operands
will be allocated into the same bank (i.e., section) to reduce
BANKSEL overhead, queried from pcode.c:sameBank,
(pic14printLocals): reintroduced clustering registers into a single
section: all compiler generated symbols will now reside in one
bank (per file), reducing BANKSEL overhead and code size,
(showAllMemmaps): use local dbuf where possible
tecodev [Mon, 29 Jan 2007 22:19:03 +0000 (22:19 +0000)]
* src/pic/gen.c (popGetExternal): simplified, mark symbol as used,
(call_libraryfunc): retrieve/create symbol and mark as used,
(genFunction): mark defined functions as non-extern and add again
to code memmap for later output
* src/pic/glue.c (emitPseudoStack): put into own subroutine,
(pic14printLocals): reworked for new symbol emission,
(emitIfNew,pic14_constructAbsMap,emitIvalLabel,emitIvals,emitInitVal,
showAllMemmaps): reworked symbol output using dbufs, added handling
of string literals (still incomplete),
(picglue): removed symbol emission, moved into showAllMemmaps,
(emitSymbolSet): new workhorse for symbol output,
(pic14emitMaps,pic14printPublics,pic14printExterns): commented out,
tecodev [Sun, 28 Jan 2007 10:46:04 +0000 (10:46 +0000)]
* src/pic16/devices.inc,
* device/include/pic16/pic18f[24][23]21.h,
* device/include/pic16/pic18fregs.h,
* device/lib/pic16/libdev/pic18f[24][23]21.c,
* device/lib/pic16/pics.all: added support for the 18f[24][23]21 family
* device/lib/pic16/libio/adc.ignore,
* device/lib/pic16/libio/i2c.ignore,
* device/lib/pic16/libio/usart.ignore: do not build I/O lib for new
family, as gputils do not yet support the devices
* device/lib/pic16/Makefile.subdir: ignore errors on install
* support/scripts/inc2h-pic16.pl: script to generate pic16 device
headers and libraries from gputils .inc files
tecodev [Mon, 22 Jan 2007 01:18:52 +0000 (01:18 +0000)]
* src/regression/bank1.c, src/regression/compare6.c,
src/regression/add.c: cosmetic changes
* src/pic/pcode.h: moved GPTRTAG_* here from gen.c
* src/pic/gen.c: fixed global zero and one,
(aopForSym): removed unued code,
(aopGet): assert aop is defined, check and use `index' of
pCodeImmd operands (fixes #1630908),
* src/pic/pcode.c (get_op): added output of generic pointer tag,
(register_reassign): prevent accidental register unification,
(ReuseReg): cosmetic changes (also above)
* src/pic/glue.c (pic14_constructAbsMap,pic14emitRegularMap,
pic14emitStaticSeg): do not emit initialized data,
(printIval*): replaced with working versions,
(pic14createInterruptVect,picglue): use idata for initialized data,
now init data should work in all modules (not only main()),
* device/lib/pic/libsdcc/idata.c: NEW, handle initialized data
tecodev [Sat, 20 Jan 2007 15:00:18 +0000 (15:00 +0000)]
* device/lib/pic/libdev/devices.txt: device list for mkall.sh
* device/lib/pic/libdev/mkall.sh: script to rebuild all device libs
* device/lib/pic/libdev/pic14ports.txt: device PORT specifications
* support/scripts/inc2h.pl: fixed major .inc parsing bugs,
applied patch from Robert Tate (#1629249) to add PORTs and TRISs
* device/lib/pic/libdev/pic*.c,
* device/include/pic/pic*.h: regenerated with enhanced inc2h.pl
* device/lib/pic/libdev/Makefile.in: show progress
tecodev [Fri, 19 Jan 2007 10:18:16 +0000 (10:18 +0000)]
* src/pic/device.c (register_map): fixed list construction
* src/pic/gen.c (genDivOneByte,genModOneByte): accept result > 1 byte,
(genMod): removed case for genModbits,
(genModbits): removed as now unused/unimplemented
* src/pic/glue.c (picglue): prevent name clash with sources 'init.c'
borutr [Thu, 18 Jan 2007 20:21:37 +0000 (20:21 +0000)]
* SDCClabel.c: fixed bug #1638651: wrong linenumber presented in warning
* src/asm.c: don't die if the file drfined in #line couldn't be opened
* src/SDCC.lex, src/SDCCglobal.h, src/SDCCicode.c, src/SDCCsymt.c,
src/SDCCval.c: removed redundant definitions of currFname and mylineno;
use filename in lineno instead.
* SDCCast.c: removed MSVC warning C4018: '==' : signed/unsigned mismatch,
print the file name in ast_print()
borutr [Thu, 18 Jan 2007 07:51:26 +0000 (07:51 +0000)]
* support/Util/dbuf_string.c: removed (PTR) cast since it is not
defined in MSVC
* src/SDCC.lex: stringLiteral() returns const char pointer,
EOF detection in stringLiteral(), fixed asmbuf memory leak,
fixed column counting
* src/SDCCval.[ch]: constVal(), value *strVal() and charVal()
accept const char pointer as parameter
* src/SDCCdwarf2.c: corrected buffer size
borutr [Mon, 15 Jan 2007 20:53:50 +0000 (20:53 +0000)]
* src/pic16/ralloc.c, src/pic/ralloc.c, src/SDCC.y:
removed terminal symbol ELIPSIS, since it was never generated by the
lexer and it was wrongly used in parameter_identifier_list rule
borutr [Sun, 14 Jan 2007 19:47:28 +0000 (19:47 +0000)]
* as/mcs51/asnoice.c, as/hc08/asnoice.c: fixed bug #1447412:
Cannot debug files that contain spaces in the path name
by converting spaces in asm file name to underscores
MaartenBrock [Mon, 8 Jan 2007 22:18:40 +0000 (22:18 +0000)]
* device/lib/printf_large.c (output_float): removed recursion,
use smaller buffer on stack for mcs51,
fixed bug printing 1.96
* support/regression/tests/snprintf.c: added test
MaartenBrock [Sun, 7 Jan 2007 16:09:46 +0000 (16:09 +0000)]
* src/port.h: added TARGET_Z80_LIKE macro
* src/SDCCmain.c (linkEdit): use TARGET_Z80_LIKE,
output PSEG location if --xram-loc or --xstack-loc was used
* as/link/mcs51/lkarea.c (lnksect2): set segment address afterwards
bernhardheld [Mon, 1 Jan 2007 20:42:04 +0000 (20:42 +0000)]
* src/SDCCast.c (createDo): backPatchLabels() needs falseLabel in empty 'while'-loop to work correctly, see regression test 'while.c'
* support/regression/tests/while.c: added
borutr [Mon, 1 Jan 2007 17:00:18 +0000 (17:00 +0000)]
* support/cpp2/libcpp/directives.c, support/cpp2/libcpp/identifiers.c,
support/cpp2/libcpp/init.c, support/cpp2/libcpp/sdcpp-opts.c,
support/cpp2/libcpp/sdcpp.c:
sdcpp specific pragma/directive/option handling moved to sdcpp.c
* doc/sdccman.lyx: reference to the GCC 4.1.1 CPP Manual
* support/cpp2/libcpp/mkdeps.c: synchronized with GCC CPP 4.1.1
bernhardheld [Sat, 30 Dec 2006 22:02:12 +0000 (22:02 +0000)]
* 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'
MaartenBrock [Fri, 29 Dec 2006 09:02:08 +0000 (09:02 +0000)]
* 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
epetrich [Wed, 27 Dec 2006 16:28:04 +0000 (16:28 +0000)]
* 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
bernhardheld [Tue, 26 Dec 2006 21:02:49 +0000 (21:02 +0000)]
* 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