* src/SDCCcse.c (replaceAllSymBySym): renamed siaddr to isaddr,
(cseBBlock): remember aggr2ptr has been used
* src/SDCCicode.c (operandSize): added function to handle aggr2ptr,
(geniCodeAssign): fixed bug 868103
* src/SDCCicode.h: made operand.aggr2ptr 2 bits wide,
added operandSize prototype
* src/mcs51/gen.c (aopOp): use operandSize to fix bug 868103,
(genDataPointerSet): use size of result,
(gencjne): added parameter useCarry for optimization,
(genCmpEq): use carry if appropriate,
(genXor): check if operand already in carry
* support/regression/tests/bug-868103.c: enabled test
* src/SDCCsymt.c (compareType): fixed bugs 1738367 and 1745717 with patch
from Robert Larice, thanks
* support/regression/tests/bitopcse.c,
* support/regression/tests/bitvars.c,
* support/regression/tests/bug-908454.c: use <stdbool.h> for the bit types
* support/regression/tests/bug-927659.c: enabled test for z80
* support/regression/tests/bug1738367.c: added extra tests by Frieder
* support/regression/tests/bug1745717.c: new, added
* support/regression/tests/literalop.c,
* support/regression/tests/nullstring.c: removed storage definitions that
are now in testfwk.h
* device/include/stdbool.h: do not define __bool_true_false_are_defined
and bool for targets that do not fully support it.
* support/regression/tests/bug1546986.c,
* support/regression/tests/bug1723128.c,
* support/regression/tests/bug1734654.c,
* support/regression/tests/bug1738367.c,
* support/regression/tests/constantRange.c: only use bool if allowed
borutr [Wed, 27 Jun 2007 16:17:14 +0000 (16:17 +0000)]
* support/regression/generate-cases.py: corrected the file name
in warning
* configure.in, configure, sdccconf_in.h: find out the endianess of
host machine
borutr [Tue, 26 Jun 2007 18:47:44 +0000 (18:47 +0000)]
* support/regression/generate-cases.py: implemented more flexible rule
for detection of testing functions, allowing return type 'void' in
the same line as the function name in the function definition
* support/regression/tests/bug-1654060.c: corrected test
borutr [Mon, 18 Jun 2007 18:24:42 +0000 (18:24 +0000)]
* src/SDCCmain.c: removed option -C since SDCC compiler doesn't know
how to handle comments, so they have to be removed by the
preprocessor; fixed bug #1738926:SDCC #4852: broken option -V
* src/SDCCmain.c, src/SDCCargs.h, src/ds390/main.c, src/mcs15/main.c,
src/pic16/main.c, src/pic/main.c, src/z80/main.c,
support/Util/SDCCerr.c, support/Util/SDCCerr.h:
table driven option hadling
MaartenBrock [Sat, 16 Jun 2007 14:53:19 +0000 (14:53 +0000)]
* src/SDCCast.c (decorateType),
* src/SDCCicode.c (geniCodeConditional): moved optimization for '?' from
iCode to ast level to fix bug 1738367
* support/regression/tests/bug1738367.c: new, added
tecodev [Tue, 12 Jun 2007 21:49:18 +0000 (21:49 +0000)]
* support/scripts/inc2h.pl: conditionally emit defines for SFR bits,
suppress bit defines if NO_BIT_DEFINES is #define'd
* device/include/pic/pic*.h: recreated all headers to include
conditional bit defines
* device/include/pic/pic16f886.h,
* device/include/pic/pic16f887.h: fixed based on newer .inc file
* device/include/pic/recreate.sh: script to recreate the complete
device library files based on the currently supported devices
MaartenBrock [Sun, 10 Jun 2007 20:55:33 +0000 (20:55 +0000)]
* src/SDCCast.c (decorateType): optimized '?' for equal operands
* src/SDCCicode.c (geniCodeConditional): optimization for bit result
with literal operands
borutr [Sun, 10 Jun 2007 16:47:35 +0000 (16:47 +0000)]
* src/SDCCmain.c, src/ds390/main.c, src/mcs51/main.c, src/pic/main.c,
src/z80/main.c: move target specific options from src/SDCCmain.c
to src/<target>/main.c
MaartenBrock [Sat, 9 Jun 2007 08:20:39 +0000 (08:20 +0000)]
* src/SDCCmem.c (allocDefault): removed check sym->level==0 for SPEC_ABSA,
can also be static, fixes bug 1733438
* src/SDCCsymt.c (checkSClass): static local vars in reentrant funcs can
have absolute address too
* support/regression/tests/absolute.c: added test for static absolute var
borutr [Thu, 7 Jun 2007 20:33:22 +0000 (20:33 +0000)]
* support/regression/tests/constantRange.c,
support/regression/tests/scott-compare3.c: fixed failing regression
tests, uncovered by implementation of more flexible rule for detection
of testing functions
borutr [Thu, 7 Jun 2007 19:47:43 +0000 (19:47 +0000)]
* support/regression/generate-cases.py: implemented more flexible rule
for detection of testing functions, allowing white-spaces surrounding
the function name and the 'void' parameter.
borutr [Wed, 6 Jun 2007 22:32:26 +0000 (22:32 +0000)]
* sim/ucsim/*.*, sim/ucsim/configure, sim/ucsim/configure.in:
permanent solution to suppress GCC 4.2.0 c++ warning:
deprecated conversion from string constant to `char *'
use 'const char *' where ever required
borutr [Mon, 4 Jun 2007 06:16:48 +0000 (06:16 +0000)]
* configure.in, configure, config_vc.awk: sdcc version number is now
stored in configure.in; removed .version
* configure.in, configure, sdcc.spec, doc/sdccman.lyx, doc/sdccman.lyx,
doc/INSTALL.txt: version bumped to 2.7.2
MaartenBrock [Sat, 2 Jun 2007 19:41:33 +0000 (19:41 +0000)]
* src/mcs51/gen.c (outBitC, genRet): used IS_OP_RUONLY,
(genNot, genXor): used toCarry, also fixes a bug for c = bit ^ val
* src/mcs51/ralloc.c: removed IS_OP_RUONLY + some cosmetic changes
* src/SDCCast.c (resultTypePropagate): propagate for '!',
(decorateType): also optimize comparisons with RESULT_TYPE_BIT,
bugfix: only use newBoolLink for bit result type
* src/SDCCicode.c (geniCodeLogic): added param tree,
bugfix: use newBoolLink if tree is bit type, bug appears when ruonly,
(geniCodeLogicAndOr): use IS_BIT,
(geniCodeJumpTable, geniCodeSwitch): added NULL param to geniCodeLogic,
(ast2iCode): added tree param to geniCodeLogic for comparisons
* src/SDCCsymt.h: added IS_OP_RUONLY and IS_OP_ACCUSE
* support/regression/tests/bug1723128.c: added test NotZero
borutr [Fri, 1 Jun 2007 19:37:18 +0000 (19:37 +0000)]
* sim/ucsim/configure, sim/ucsim/configure.in:
temporary solution to supress GCC 4.2.0 c++ warning:
deprecated conversion from string constant to `char *'
borutr [Fri, 1 Jun 2007 17:39:09 +0000 (17:39 +0000)]
* device/lib/pic16/libdev/pic18f[24][45]j10.c: fixed svn atrributes
* device/lib/pic16/libdev/pic18f[24]5j10.c:
search for included source file in local directory
tecodev [Thu, 31 May 2007 22:42:43 +0000 (22:42 +0000)]
* doc/sdccman.lyx: added --disable-pic16-port, fixed some `--' and
quotation marks, clarified role of PIC14 vs. PIC16 ports
* src/pic16/devices.inc,
* device/include/pic16/pic18fregs.h,
* device/include/pic16/pic18f[24][45]j10.h,
* device/lib/pic16/pics.all,
* device/lib/pic16/libdev/pic18f[24][45]j10.c: added support for
18f24j10, 18f25j10, 18f44j10, and 18f45j10
* device/lib/pic16/libio/{i2c,adc,usart}.ignore: do not build IO libs
for new devices as they are not yet supported by gputils
borutr [Thu, 31 May 2007 20:45:20 +0000 (20:45 +0000)]
* Small Device C Compiler 2.7.0 released
* .version, sdcc.spec, doc/sdccman.lyx, doc/INSTALL.txt:
changed sdcc version to 2.7.1
* support/scripts/sdcc.nsi: added How to create WIN32 release setup.exe package
MaartenBrock [Tue, 29 May 2007 10:58:44 +0000 (10:58 +0000)]
* doc/sdccman.lyx: documented initialization and allocation of absolute
variables, bit parameter passing, the need for function pointers to be
reentrant and alpha quality support of inline and retrict
borutr [Sat, 26 May 2007 09:43:07 +0000 (09:43 +0000)]
* support/regression/tests/bug1057979.c, support/regression/tests/malloc.c,
support/regression/fwk/include/testfwk.h: fixed compilation on Mac OS x
* docs/knownbugs.html: updated
MaartenBrock [Fri, 25 May 2007 06:05:06 +0000 (06:05 +0000)]
* doc/sdccman.lyx: inserted footnotes about inline assembler labels,
thanks Jan Waclawek
* src/mcs51/gen.c (aopPut): fixed part of bug 1723128 when result is
AOP_CRY and ruonly
(gencjneshort): optimized when left is AOP_DIR
* src/SDCCglue.c (printIvalStruct): fixed other part of bug 1723128 for
initializing unions in a struct/array
* support/regression/fwk/include/testfwk.h: added defines for data, near
and far for host and z80
* support/regression/tests/bug1723128.c: new, added
epetrich [Thu, 10 May 2007 05:29:03 +0000 (05:29 +0000)]
* src/SDCCast.c (createFunction): also generate non-inlined version of
function for functions declared as "static inline"
* src/SDCCast.c (fixupInline, inlineAddDecl): reset symbol state so
function can be inlined after non-inlined version generated.
MaartenBrock [Tue, 8 May 2007 19:44:35 +0000 (19:44 +0000)]
* src/ds390/gen.c (emitcode): don't change properties of previous lines,
(throughout): updated generating comments
* src/mcs51/gen.c (emitcode): don't change properties of previous lines,
(throughout): updated generating comments
* src/SDCCpeeph.c (peepHole): continue searching at the first replaced
rule instead of at the second, or it might skip lines when removing the
complete match
* support/regression/tests/bug1714204.c: changed test to foo
borutr [Tue, 8 May 2007 17:51:15 +0000 (17:51 +0000)]
* doc/sdccman.lyx: changed sdcc version to 2.7.0,
thanks to SDCC Distributed Compile Farm members,
added Z80 and GBZ80 command line options
* .version, doc/INSTALL.txt, sdcc.spec: changed sdcc version to 2.7.0
MaartenBrock [Tue, 8 May 2007 16:59:41 +0000 (16:59 +0000)]
* device/lib/mcs51/crtxinit.asm: added disabled version for dual dptr
* device/include/mcs51/uPSD33xx.h: added sfr DPS as alias for DPTC
* support/regression/tests/longlit.c: modified to be tested at all and
to pass the actual test
frief [Sun, 6 May 2007 20:26:51 +0000 (20:26 +0000)]
* support/regression/tests/regtrack.c: test was never executed because of the regression test being picky about white spaces.
* device/lib/mcs51/crtclear.asm: added comment
MaartenBrock [Sat, 5 May 2007 13:45:50 +0000 (13:45 +0000)]
* src/port.h: added TARGET_MCS51_LIKE
* src/SDCCpeeph.c (labelIsUncondJump): new, added, other targets could
take advantage of it too
* src/z80/gen.c (genIpush): push b, d or h directly instead of using a,
(shiftR2Left2Result): Optimized: don't check shifting by 0
* src/z80/peeph-z80.def,
* src/z80/peeph.def: whole set of new rules by Philipp Krause with some
modifications, see patch 1700823
tecodev [Tue, 1 May 2007 10:59:39 +0000 (10:59 +0000)]
* device/lib/pic/libdev/*.c
* device/include/pic/*.h: regenerated all device libs from updated
.inc files
* support/scripts/inc2h.pl: documented usage, now uses strict to
catch more bugs
* src/pic16/pcode.c (pBlockRemoveUnusedLabels,pic16_pBlockAddInval,
createReachingDefinitions,assignValnums,pic16_destructDF,
pic16_createDF,pic16_vcg_dumpedges,pic16_vcg_dump_default):
prevent NULL pointer dereferences
* device/lib/pic/libdev/pic16f886.c,
* device/lib/pic/libdev/pic16f887.c: svn mv'ed to disabled_* to
prevent building them, gputils do not really support them yet
* src/pic/pcode.c (addpCode2pBlock,LinkFlow,pBlockRemoveUnusedLabels):
return early when pb or pb->pcHead is NULL (patch #1708427)
* src/regression/empty.c,
* src/regression/Makefile: added test with empty functions
* support/Util/SDCCerr.c: fixed typo in E_INIT_STRUCT message
* doc/sdccman.lyx, src/SDCCmain.c:
peep-hole comments are generated only if --fverbose-asm option is
specified and --no-peep-comments is not, as proposed by Frieder.
* support/regression/Makefile.in: compile regression tests with
--fverbose-asm option so one can "grep" whether a new (or an old)
peephole is (still) applied; requested by Frieder.