tecodev [Sun, 25 Jun 2006 22:17:57 +0000 (22:17 +0000)]
* device/lib/pic/libm: NEW, added math library functions
* device/lib/pic/libsdcc: NEW; added float support functions
* device/lib/pic/{Makefile.in,configure.in,configure}: added libm/
* device/include/pic/{limits.h,errno.h,sdcc-lib.h,float.h,math.h}:
NEW, added math related headers
* device/include/asm/pic/features.h: NEW
* src/pic/gen.c (emitpcode_real): emit warning on NULL pCodeOp,
(popGet): allow larger offsets for AOP_PCODE,
(genDataPointerSet): handle literals explicitly, more debug output,
(genAssign): fixed for float using aopLiteral ;-)
* src/pic/glue.c (pic14createInterruptVect): inserted pagesel before
GOTO initialisation routine
* src/pic/pcoderegs.c (pCodeRegMapLiveRangesInFlow): set wasUsed
flag on registers, fixes #1469043 (local variables do not work)
* src/pic/main.c (_pic14_do_link),
* src/pic16/main.c (_pic16_linkEdit): use fullDstFileName if
available
borutr [Sun, 25 Jun 2006 12:22:18 +0000 (12:22 +0000)]
* device/lib/pic16/libc/stdio/sprintf.c: return the number of
characters printed (not including the trailing '\0' used to end
output to strings). Problem detected in regression test bug-927659.c.
NOTE: printf() family functions should return int instead
unsigned int!
* device/lib/pic16/libc/stdio/vfprintf.c: "%%" prints "%", unknown
specifier are printed as themselves
* sdcc/support/regression/tests/bug1057979.c: pic16 printf doesn't
support flags, width and precision specifiers
borutr [Sat, 24 Jun 2006 20:49:06 +0000 (20:49 +0000)]
* sdcc/support/regression/tests/bitvars.c: added gbz80, pic16 and pic16
to the list of sdcc tagrets not supporting bit type
* sdcc/support/regression/tests/bug-905992.c.c: excluded regression
testfor pic16 due to bug:
[ 1511794 ] pic16: regression test bug-895992.c fails
tecodev [Mon, 19 Jun 2006 20:36:23 +0000 (20:36 +0000)]
* src/pic/glue.h,src/pic16/glue.h: added prototypes
* src/pic/glue.c,src/pic16/glue.c (pic1x_stringInSet,
pic1x_emitSymbolIfNew): NEW, check for a string in a set,
(pic14printExterns,pic14printPublics,pic16printPublics,
pic16_printExterns): use new functions to emit symbols
(picglue,pic16glue): emit publics before emitting externs
* src/pic/gen.c,src/pic16/gen.c (genFunction): remember the names of
locally defined functions to avoid bug #1443651
* support/regression/tests/bug-716242.c: removed pic16 workaround
* support/regression/ports/pic16/spec.mk: ignore errors during build
tecodev [Mon, 19 Jun 2006 16:50:14 +0000 (16:50 +0000)]
* src/pic/glue.h: added pic14aopLiteral prototype
* src/pic/glue.c (pic14aopLiteral): return unsigned int
* src/pic/gen.c: removed stdint.h dependency
(aopGet): use Safe_strdup()
(bitpatternFromVal): removed, replaced use with pic14aopLiteral
(genDataPointerSet): use pic14aopLiteral()
* src/pic16/glue.h, src/pic16/glue.c, src/pic16/gen.c: similar changes
for pic16; thanks to Bernhard and Maarten
borutr [Sun, 18 Jun 2006 21:08:05 +0000 (21:08 +0000)]
* support/regression/tests/structflexarray.c: flexible array members
not supported by gcc < 3
* sim/ucsim/configure, sim/ucsim/configure.in: do not compile serio
GUI tool by default
* src/pic/gen.c: don't include [p]strdin.h on solaris
* support/Util/pstdint.h: addad svn attributes
borutr [Sun, 18 Jun 2006 18:48:25 +0000 (18:48 +0000)]
* support/regression/tests/structflexarray.c: flexible array members
not supported by gcc < 3
* lib/variables.mk, lib/fetch.mk, sdcc-build-bootstrap.sh:
use common ORIG tree with VPATH functionality
tecodev [Sun, 18 Jun 2006 16:42:39 +0000 (16:42 +0000)]
* src/SDCCsymt.c (initCSupport): change return type of divschar to
int for PIC16
* src/pic16/genarith.c (genAddLit): sign-extend via standard routine
(pic16_genMinusBits): simplified sign-extension
(pic16_genUMult8XLit_8,pic16_genUMult8X8_8): renamed to
pic16_genMult8XLit_n resp. pic16_genMult8X8_n, fixed and
adjusted to correctly handle mixed-signed operands, disabled
now unused multiplciation routines
* src/pic16/gen.c (pic16_pushpCodeOp): fixed to handle literals
(assignResultValue): added argument denoting the size of the result
as returned by the function (fixes upcasts in assigning from
function calls: char foo(); int i = foo();)
(genCall,genPcall,genGenPointerGet,genReceive): pass size of
function result to assignResultValue
(genMult): disabled inlined multiplication code
(genDiv): augmented to also handle the modulus operator, fixed to
handle mixed-signed operands correctly
(genMod): simply call genDiv, disabled unused code
(genAssign): fixed missing (sign-)extension on result
* src/pic16/main.c (_hasNativeMulFor): accept literals [-128..256) as
valid char operands, allow signed operands for native code, added
division and modulo operator handling
* device/lib/pic16/libsdcc/char/divschar.c: divschar returns an int
As a consequence, onebyte.c (if split into two files) and muldiv.c
pass regression tests.
frief [Sat, 17 Jun 2006 21:40:28 +0000 (21:40 +0000)]
* doc/Makefile.in: two runs of makeindex seem needed to get correct page references in the index of sdccman.pdf
* doc/sdccman.lyx: mentioned cmon51, added links, small changes
MaartenBrock [Fri, 16 Jun 2006 14:31:13 +0000 (14:31 +0000)]
* as/mcs51/lkarea.c (lnkarea2): clear new xdatamap, bugfix for two
consecutive abs areas
(find_empty_space, allocate_space): added map to handle codemap or
xdatamap,
(lnksect2): renamed rloc to locIndex, fixed bug 960060 by handling
absolute idata and xdata
* as/mcs51/lkmem.c (summary2): updated legend
vrokas [Tue, 13 Jun 2006 08:32:55 +0000 (08:32 +0000)]
* src/port.h (struct PORT): added field gp_tags, to hold the tag
value of generic pointers,
* src/avr/main.c,
src/ds390/main.c,
src/hc08/main.c,
src/izt/i186.c,
src/izt/tlcs900h.c,
src/mcs51/main.c,
src/pic/main.c,
src/pic16/main.c,
src/xa51/main.c,
src/z80/main.c: PORT structure, added elements for gp_tags field,
* src/SDCCsymt.h: replaced hardwired values of GPTYPE_* macros with
fields in the PORT structure of each port,
* src/SDCCast.c (decorateType): allow processing of generic pointers
for PIC16 port (FPTRSIZE equals GPTRSIZE), also set GPTYPE_NEAR for
S_FIXED symbols
tecodev [Mon, 5 Jun 2006 21:38:29 +0000 (21:38 +0000)]
* src/pic16/{pcode.h,genarith.c}:
introduced pCodeOp combining any two pCodeOps (previously only
two register operands could be combined), removed pcop2 from
pCodepReg, replaced pCodeOpReg2 with pCodeOp2, fixes #1492366
* src/pic16/pcodepeep.c (pic16_pCodeOpCopy): added case for PO_TWO_OPS
* src/pic16/gen.c (pic16_popGet2,pic16_popGet2p,pic16_popCombine2):
rewritten to use new PO_TWO_OPS
* src/pic16/main.c (_hasNativeMulFor): cover more cases natively,
* src/pic16/pcode.c (pic16_newpCodeOpImmd): initialize rIdx field,
(pic16_newpCodeOp): catch invalid attempts on PO_TWO_OPS,
(pic16_newpCodeOp2): NEW, create combined pCodeOp,
(pic16_get_op): embraced return arg to allow #define return(x),
added new case for combined opcodes
(pic16_get_op2): reduced to use pic16_get_op() on second pCodeOp,
(pic16_pCode2str,pic16_getRegFrompCodeOp,
pic16_getRegFromInstruction2): fixed/added handling of new pCodeOp
bernhardheld [Sun, 4 Jun 2006 20:14:11 +0000 (20:14 +0000)]
* src/SDCCval.c (checkConstantRange): added
* src/SDCCval.h: added checkConstantRange
* support/Util/SDCCerr.c,
* support/Util/SDCCerr.h: replaced unused W_IF_NEVER_TRUE and W_IF_ALWAYS_TRUE by W_COMP_RANGE and W_LIT_OVERFLOW
* src/SDCC.y: moved early 'condition transformations' to SDCCast.c
* src/SDCCast.c (decorateType): added checkConstantRange,
added 'condition transformations' from SDCC.y so that now W_COMP_RANGE can be emitted with the correct always true/false warning,
added optimization for double '!';
result of decorateType() must be assigned back to the tree, because decorateType() can change the tree
* src/SDCCicode.c (geniCodeLogic),
(geniCodeAssign): replaced new checkConstantRange, added warnings,
(checkConstantRange): removed, it was only a fragment which never emitted a warning
* src/SDCCsymt.c (computeType): fixed promotion for "-1 < (unsigned bit) b"
* src/pic/ralloc.c (packRegsForAssign),
* src/pic16/ralloc.c (packRegsForAssign),
* src/hc08/ralloc.c (packRegsForAssign),
* src/z80/ralloc.c (packRegsForAssign): ported fix for bug #930931 from mcs51
* src/mcs51/ralloc.c (packRegsForAssign): removed outcommented source
* support/regression/tests/constantRange.c: added
* support/valdiag/tests/constantRange.c: added
bernhardheld [Tue, 30 May 2006 15:57:13 +0000 (15:57 +0000)]
* src/SDCCmain.c (printVersionInfo, printOptions, printUsage, parseCmdLine, main): print version to stdout, help to stdout on windows and to stderr on all the rest; exit with EXIT_FAILURE if no arguments given
borutr [Sat, 27 May 2006 18:52:41 +0000 (18:52 +0000)]
* support/regression/fwk/lib/testfwk.c: define array in _printn() as
static instead auto
* support/regression/ports/pic16/support.c: increase stack size
from default 64 bytes to 128 bytes
borutr [Sat, 27 May 2006 18:41:47 +0000 (18:41 +0000)]
* support/regression/tests/staticinit.c,
support/regression/tests/float.c: regression tests fully enabled
for pic16 port by putting the initialized data arrays into the code
section
* support/regression/ports/pic16/spec.mk: don't link default libraries.
This was changed by mistake in the previous version.
vrokas [Fri, 26 May 2006 22:52:11 +0000 (22:52 +0000)]
* src/pic16/gen.c (genFunction, genEndFunction): some
beautifications, fixed bug with falsely restoring FSR2 in large
stack model, thanks to Beau E. Cox for reporting the bug
borutr [Wed, 24 May 2006 19:52:20 +0000 (19:52 +0000)]
* support/regression/tests/bug-221100.c: fixed xdata problem caused by
modification of test for the pic16 port, put the array to the code
memory for pic16port; thanks to Maarten Brock and Frieder Ferlemann
borutr [Mon, 22 May 2006 20:04:51 +0000 (20:04 +0000)]
* support/regression/ports/pic16/specs.mk: removed stack size linker
directive
* support/regression/tests/array.c,
support/regression/tests/bitopcse.c,
support/regression/tests/bug-908454.c,
support/regression/tests/malloc.c: modified for pic16 regression test
* support/regression/tests/bitfields.c:
pic16 - excluded bitfileds of size > 8
* support/regression/tests/bp.c: pic16 - reduced data size
* support/regression/tests/bug-221100.c: pic16 - reduced data size
* support/regression/tests/bug-460010.c:
pic16 - used the absolute address the fits in memory
* support/regression/tests/bug-716242.c:
bug [ 1443651 ] pic 16: redefining symbol that cannot be redefined.
* support/regression/tests/float.c:
pic16 - excluded - data size too big
* support/regression/tests/onebyte.c:
pic16 - bug [ 1444425 ] onebyte.c regression tes fails on pic16
* support/regression/tests/shifts.c:
pic16 - function names probably have to differ in first X characters
(gpasm limitation?)
* support/regression/tests/staticinit.c:
pic16 - excluded some tests due error: no target memory available for
section ".idata"
tecodev [Sat, 20 May 2006 16:55:08 +0000 (16:55 +0000)]
* src/pic/gen.c (bitpatternFromVal): fixed for 64-bit machines
* src/pic16/ralloc.c (newReg): use correct name in hashtable,
(allocReg): add only new registers to dynAllocRegs,
(pic16_assignRegisters): do not reset dynrIdx, fixes bugs
#1489055, #1445850, and probably #1483693
MaartenBrock [Thu, 18 May 2006 10:54:34 +0000 (10:54 +0000)]
* src/mcs51/gen.c (genCodePointerGet): inc dptr instead of loading acc
with offset
* src/mcs51/peeph.def (186.x): updated and reenabled to fix bugs 1489016, 1434401 and 1490124
borutr [Fri, 12 May 2006 20:34:43 +0000 (20:34 +0000)]
* *.dsw, *.dsp: changed property svn:eol-style to CRLF since they
have to have CR/LF line endings even if they are checked out on *nix
or on WIN32 in cygwin binmode
MaartenBrock [Fri, 12 May 2006 15:01:17 +0000 (15:01 +0000)]
* doc/sdccman.lyx: documented numeric ranges, WEBDOC #1442369
* device/include/ds80c390.h: added sfr16 definitions
* src/ds390/gen.c,
* src/ds390/gen.h,
* src/ds390/main.c,
* src/ds390/ralloc.c,
* src/ds390/ralloc.h: changes all over the place to sync with mcs51
fixing several bugs and adding sfr16/sfr32, reentrant bit params,
bit returning functions
* support/regression/tests/sfr16.c: enabled test on ds390
MaartenBrock [Thu, 11 May 2006 20:25:04 +0000 (20:25 +0000)]
* sim/ucsim/sim.src/memcl.h: added get_decoder() to cl_address_space
* sim/ucsim/sim.src/mem.cc: implemented cl_address_space::get_decoder,
(cl_address_space constructor): removed expensive initialization,
(cl_address_space::get_cell): extended for late initialization,
(cl_address_space::*): use late initialization,
(cl_address_decoder::activate): removed expensive initialization,
This reduced regression test running time by 25%
borutr [Tue, 2 May 2006 18:56:04 +0000 (18:56 +0000)]
* doc/Makefile.in: removed *.ind dependency since there is no rule to
create *.ind, which made make to fail if invoked with -j 2
* local/amd64-linux1.mk: added SDCCCONFIGUREFLAGS = --enable-doc
to configure the doc Makefile and OPT_ENABLE_DOC = 1 to run the
doc Makefile