vrokas [Sat, 22 Jan 2005 18:02:16 +0000 (18:02 +0000)]
* .version: bumped version number to 2.4.8
* device/lib/pic16/pics.all: list of PIC18F devices supported by
pic16 port,
* device/lib/pic16/libio/i2c/: I2C module support library,
* device/include/pic16/i2c.h: I2C support library header,
* device/lib/pic16/libc/stdio/: standard IO support sources,
* (printf_small.c): printf_small() source, supports float print,
* (printf_tiny.c): printf_tiny() source, does not support floats,
* device/lib/pic16/Makefile.common.in: added OPT_FLAGS macro to
enable global optimizations for entire library source, other
Makefiles in the source tree are also modified to reflect this,
* device/lib/pic16/libc/stdlib/putchar.c (putchar): dummy putchar()
function,
* doc/sdccman.lyx: updated to reflect new changes,
* src/pic16/gen.c (aopForSym): don't handle sym->iaccess in
sym->onStack if-case,
* src/pic16/main.c (_pic16_keywords): commented out keywords bit,
sbit, idata, _idata, xdata, _xdata,
* added pragma library, to link an external library, (see doc),
* removed command line options, --pomit-config-words, --pomit-ivt,
--pleave-reset-vector,
* (pic16_finaliseOptions): when define macro SDCC_MODEL_{SMALL/LARGE}
when calling assembler to reflect memory model used, also define
macro STACK_MODEL_{SMALL/LARGE} when compiling and assembling to
reflect stack model used,
* src/pic16/ralloc.c (pic16_allocDirReg): when operand is allocated
on stack return NULL,
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3648
4a8a32a2-be11-0410-ad9d-
d568d2c75423
tecodev [Sat, 22 Jan 2005 15:27:06 +0000 (15:27 +0000)]
* src/SDCCopt.c (killDeadCode): checking for right operand can cause
crash somewhere else. Removed.
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3647
4a8a32a2-be11-0410-ad9d-
d568d2c75423
tecodev [Sat, 22 Jan 2005 13:22:07 +0000 (13:22 +0000)]
* src/SDCCopt.c (killDeadCode): do not throw iCodes away if one
of the operands is volatile. Fixes #
1020220
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3646
4a8a32a2-be11-0410-ad9d-
d568d2c75423
tecodev [Sat, 22 Jan 2005 01:47:18 +0000 (01:47 +0000)]
* src/pic16/pcoderegs.c (pCodeOptime2pCodes): reenabled optimization
* (OptimizeRegUsage): make sure that there is really no other flow where
the first pCode is used
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3645
4a8a32a2-be11-0410-ad9d-
d568d2c75423
tecodev [Sat, 22 Jan 2005 01:30:33 +0000 (01:30 +0000)]
* src/pic16/pcoderegs.c (pCodeOptime2pCodes): disabled optimization
to fix #
1106967 (pCode->seq are not set up correctly)
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3644
4a8a32a2-be11-0410-ad9d-
d568d2c75423
epetrich [Sat, 22 Jan 2005 01:03:55 +0000 (01:03 +0000)]
* src/SDCCglue.c (glue): make sure code area is declared before the
static initialization area.
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3643
4a8a32a2-be11-0410-ad9d-
d568d2c75423
tecodev [Fri, 21 Jan 2005 10:45:54 +0000 (10:45 +0000)]
* device/lib/Makefile.in: fixed test for pic16 install dir
* device/lib/pic16/*/Makefile*: modified compile flags to enable
optimizations
* doc/sdccman.lyx: updated banksel optimization, removed --flr-support and
added --optimize-goto compiler switch and pragma wparam documentation
* src/pic16/pcode.c (pic16_OptimizeBanksel): removed statistics dump
* src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed copying of WREG, PRODL
and PRODH closing bug #
1071770 (peephole optimizer)
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3642
4a8a32a2-be11-0410-ad9d-
d568d2c75423
tecodev [Wed, 19 Jan 2005 17:28:40 +0000 (17:28 +0000)]
* src/pic16/genarith.c (pic16_genPlus): removed debug output
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3641
4a8a32a2-be11-0410-ad9d-
d568d2c75423
tecodev [Wed, 19 Jan 2005 16:48:36 +0000 (16:48 +0000)]
* src/SDCCglobl.h: ensure that PATH_MAX >= 2048 to guarantee
cmdLine buffers (used when calling sdcpp...) are large enough
(MAX_PATH=256 truncates arguments leading to system halts when
used in MinGW...)
* src/pic16/gen.c (pic16_sameRegs): relaxed size criterion
* (genUminus): rewritten to for efficiency
* (genNearPointer[GS]et): enforce reloading of FSR0 (was still
used uninitialized in some cases)
* (genCast): upcasting a 16bit int to a 24bit GPOINTER may not
copy the third byte from the int -- now assumes 0x80 (data memory)
* src/pic16/genarith.c (pic16_genPlus): fixed bug when swapping
operands (genAddLit expects the iCode's operands to swapped as
well), fixed leftover bytes (crashed for short left operands)
* (pic16_genMinusDec): performance improvements, removed false
PIC14 emitSKPNCs
* (pic16_genMinus): fixed to cope with differently sized operands
* src/pic16/glue.c (pic16_glue): added new banksel optimization
for --obanksel > 1
* src/pic16/pcode.c: implemented (first phase of) banksel optimization
* src/pic16/graph.[ch]: implementation of directed graphs, used by
new banksel optimization
* src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): prevented
analysis for temporary registers (segfaults...)
* src/pic16/peeph.def: added rule
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3640
4a8a32a2-be11-0410-ad9d-
d568d2c75423
vrokas [Tue, 18 Jan 2005 10:53:44 +0000 (10:53 +0000)]
* Makefile, Makefile.rules: compile utils directory,
* string/memset.c: added _STRING_SPEC macro in function prototype
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3639
4a8a32a2-be11-0410-ad9d-
d568d2c75423
vrokas [Tue, 18 Jan 2005 10:44:20 +0000 (10:44 +0000)]
* device/lib/pic16/libc/stdlib/x_ftoa.c: it defines x_ftoa function
which converts a float number to its ASCII representation
* device/lib/pic16/libc/utils/cnvfrac.S,cnvint.S: support
functions to convert the fractional and integer part of a float to ASCII,
* device/lib/pic16/libc/stdlib/(calloc.c,free.c, malloc.c,
realloc.c): added _MALLOC_SPEC to explicit place variables in data ram
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3638
4a8a32a2-be11-0410-ad9d-
d568d2c75423
vrokas [Tue, 18 Jan 2005 10:42:16 +0000 (10:42 +0000)]
* device/lib/pic16/libc/stdlib/x_ftoa.c: it defines x_ftoa function
which converts a float number to its ASCII representation
* calloc.c, free.c, malloc.c, realloc.c: added _MALLOC_SPEC to explicit
place variables in data ram
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3637
4a8a32a2-be11-0410-ad9d-
d568d2c75423
vrokas [Tue, 18 Jan 2005 10:33:07 +0000 (10:33 +0000)]
* device/lib/pic16/libc/utils/cnvfrac.S,cnvint.S: support functions to
convert the fractional and integer part of a float to ASCII,
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3636
4a8a32a2-be11-0410-ad9d-
d568d2c75423
vrokas [Tue, 18 Jan 2005 10:29:43 +0000 (10:29 +0000)]
* added x_ftoa.c: it defines x_ftoa function which converts a float number
to its ASCII representation
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3635
4a8a32a2-be11-0410-ad9d-
d568d2c75423
vrokas [Tue, 18 Jan 2005 10:09:24 +0000 (10:09 +0000)]
* device/include/asm/pic16/features.h: added _CODE, _DATA, _AUTOMEM,
_STATMEM macros,
* device/include/pic16/adc.h: added GPL info,
* src/pic16/gen.c (genIfxpCOpJump): perform an genIfxJump but using
a pCodeOp as tested operand,
* (genNearPointerGet): optimized bit testing, does not use
intermediate register for bit value, test directly instead with
BTFSS, BTFSC, works only for single bits,
* (genpic16Code): dump the name of the iCode in the asm,
* src/pic16/ralloc.c (decodeOp): removed static declaration and
renamed to pic16_decodeOp,
* (serialRegAssign): do not allocate a temporary register for iCode
sequences that test a single bit for 1/0
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3634
4a8a32a2-be11-0410-ad9d-
d568d2c75423
vrokas [Wed, 12 Jan 2005 14:26:24 +0000 (14:26 +0000)]
* src/pic16/pcode.[ch]: introduced pic16_stackpnt_*,
pic16_framepnt_*, pic16_stack_*, pic1_frame_* pointer variables to
access stack and frame pointers. They are initially assigned to
point at pic16_pc_fsr1[lh] and pic16_pc_fsr2[lh] variables and other
accessing SFRs. Updated all occurences of modification of stack or
frame pointer in gen.c and pcode.c,
* src/pic16/ralloc.c (serialRegAssign): fixed two bugs with
assigning of a literal value to pointers,
* src/pic16/main.c (pic16_finiliseOptions): set pre-processor define
flag STACK_MODEL_SMALL or STACK_MODEL_LARGE according to the model
selected
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3633
4a8a32a2-be11-0410-ad9d-
d568d2c75423
vrokas [Tue, 11 Jan 2005 11:49:03 +0000 (11:49 +0000)]
* doc/sdccman.lyx: update documentation about stack pragma, added
some info for stack memory models
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3632
4a8a32a2-be11-0410-ad9d-
d568d2c75423
jesusc [Mon, 10 Jan 2005 16:56:49 +0000 (16:56 +0000)]
Fixed error in log date
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3631
4a8a32a2-be11-0410-ad9d-
d568d2c75423
jesusc [Sun, 9 Jan 2005 15:00:53 +0000 (15:00 +0000)]
MSVC 6 does not support macro variable arguments
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3630
4a8a32a2-be11-0410-ad9d-
d568d2c75423
tecodev [Sat, 8 Jan 2005 21:08:33 +0000 (21:08 +0000)]
* src/pic16/device.c (pic16_dump_usection) changed naming scheme for
udata sections to fix bug #
1097823
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3629
4a8a32a2-be11-0410-ad9d-
d568d2c75423
tecodev [Wed, 5 Jan 2005 12:20:09 +0000 (12:20 +0000)]
* src/pic16/gen.c (genGenericShift) added handling of differently
sized left operand and result
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3628
4a8a32a2-be11-0410-ad9d-
d568d2c75423
tecodev [Tue, 4 Jan 2005 11:48:45 +0000 (11:48 +0000)]
* src/pic16/gen.c (genIfxJump) fixed inverted skips on CARRY
* (genIfx) fixed (?) read from uninitialized SPIL_LOC (now assumes CARRY
to hold the condition bit)
* added new version of genCmp (old code available via #define)
* added new version of genShiftLeft/genShiftRight in a generic
way, now supports shifting by negative values
* (genLeftShiftLiteral, genRightShiftLiteral) use absolute value of
shiftCount (expected by genGenericShift)
* src/pic16/genarith.c (genPlus) added code for adding CARRY+literal
* src/pic16/pcode.c (pic16_OptimizeJumps) removed annoying statistics dump
* (pic16_newpCodeOpLit) changed to cast to unsigned char (as e.g. -32766
is an invalid literal too...)
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3627
4a8a32a2-be11-0410-ad9d-
d568d2c75423
tecodev [Tue, 4 Jan 2005 11:38:36 +0000 (11:38 +0000)]
* src/pic16/gen.c (genIfxJump) fixed inverted skips on CARRY
* (genIfx) fixed (?) read from uninitialized SPIL_LOC (now assumes CARRY
to hold the condition bit)
* added new version of genCmp (old code available via #define)
* added new version of genShiftLeft/genShiftRight in a generic
way, now supports shifting by negative values
* (genLeftShiftLiteral, genRightShiftLiteral) use absolute value of
shiftCount (expected by genGenericShift)
* src/pic16/genarith.c (genPlus) added code for adding CARRY+literal
* src/pic16/pcode.c (pic16_OptimizeJumps) removed annoying statistics dump
* (pic16_newpCodeOpLit) changed (again) to cast to _unsigned_ char (as e.g.
-32766 is an invalid literal too...)
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3626
4a8a32a2-be11-0410-ad9d-
d568d2c75423
vrokas [Tue, 4 Jan 2005 00:51:18 +0000 (00:51 +0000)]
* src/pic16/gen.c (aopForSym, genEndFunction): applied some fixes
from Raphael Neider,
* src/pic16/pcode.c (pic16_newpCodeOpLit): removed casting to char
for 8-bit literals. This fixes some literal operands which are sign
extended to 16-bits ints when instruction needs only 8-bits.
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3625
4a8a32a2-be11-0410-ad9d-
d568d2c75423
pjs [Sat, 1 Jan 2005 04:08:04 +0000 (04:08 +0000)]
Added mcs51 asm versions of logf and expf
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3624
4a8a32a2-be11-0410-ad9d-
d568d2c75423
slade_rich [Wed, 29 Dec 2004 05:53:59 +0000 (05:53 +0000)]
PIC14 : Adjusted internal stack and pre-allocated registers for device types which have less than 0x7f registers.
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3623
4a8a32a2-be11-0410-ad9d-
d568d2c75423
slade_rich [Wed, 29 Dec 2004 05:53:12 +0000 (05:53 +0000)]
Adjusted internal stack and pre-allocated registers for device types which have less than 0x7f registers.
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3622
4a8a32a2-be11-0410-ad9d-
d568d2c75423
slade_rich [Tue, 28 Dec 2004 23:36:45 +0000 (23:36 +0000)]
PIC14 : Fixed problem with subtraction where the result would not be updated when borrowing.
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3621
4a8a32a2-be11-0410-ad9d-
d568d2c75423
slade_rich [Tue, 28 Dec 2004 23:34:24 +0000 (23:34 +0000)]
Fixed problem with subtraction where the result would not be updated when borrowing.
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3620
4a8a32a2-be11-0410-ad9d-
d568d2c75423
pjs [Tue, 28 Dec 2004 21:54:28 +0000 (21:54 +0000)]
Don't provide printf_fast, printf_fast_f and printf_tiny on architectures
they don't support (eg, with --xstack).
Don't compile shared asm float helper functions when asm float lib not
enabled.
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3619
4a8a32a2-be11-0410-ad9d-
d568d2c75423
maartenbrock [Tue, 28 Dec 2004 20:02:05 +0000 (20:02 +0000)]
* device/lib/sincosf.c (sincosf): don't invert bit/bool by ~
* support/regression/ports/mcs51-stack-auto/spec.mk: added new _fs.. files
to the SOURCES
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3618
4a8a32a2-be11-0410-ad9d-
d568d2c75423
pjs [Tue, 28 Dec 2004 11:17:44 +0000 (11:17 +0000)]
Added printf_fast_f. Same as printf_fast, but with floating point enabled
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3617
4a8a32a2-be11-0410-ad9d-
d568d2c75423
pjs [Mon, 27 Dec 2004 22:21:57 +0000 (22:21 +0000)]
Added mcs51 assembly float lib functions (add, sub, mul, div
and compares).
Always enable --float-reent for mcs51
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3616
4a8a32a2-be11-0410-ad9d-
d568d2c75423
pjs [Mon, 27 Dec 2004 10:51:44 +0000 (10:51 +0000)]
Added mcs51 assembly versions for the 12 float/integer conversion functions.
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3615
4a8a32a2-be11-0410-ad9d-
d568d2c75423
pjs [Mon, 27 Dec 2004 00:04:03 +0000 (00:04 +0000)]
Improvements to float support in printf_fast
Add 6 new files to float library, shared helper functions for upcoming
upcoming mcs51 float library
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3614
4a8a32a2-be11-0410-ad9d-
d568d2c75423
borutr [Sun, 26 Dec 2004 08:42:47 +0000 (08:42 +0000)]
* sim/ucsim/avr.src/arith_inst.cc: fixed bug #
1088372- savr is not
built by gcc 3.4.2
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3613
4a8a32a2-be11-0410-ad9d-
d568d2c75423
pjs [Sat, 25 Dec 2004 17:42:35 +0000 (17:42 +0000)]
Opps, update build so printf_tiny is actually part of the library.
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3612
4a8a32a2-be11-0410-ad9d-
d568d2c75423
pjs [Sat, 25 Dec 2004 17:11:53 +0000 (17:11 +0000)]
Added printf_tiny (minimal but useful printing in only 267 bytes)
Added float support and other options (not on by default) to printf_fast
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3611
4a8a32a2-be11-0410-ad9d-
d568d2c75423
maartenbrock [Fri, 24 Dec 2004 14:54:36 +0000 (14:54 +0000)]
* src/pic16/pcode.c: declaring variables other than at the start of a
block is not supported in C by VC6.
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3610
4a8a32a2-be11-0410-ad9d-
d568d2c75423
vrokas [Wed, 22 Dec 2004 07:08:06 +0000 (07:08 +0000)]
* applied a previous patch from Raphael Neider that wasn't included
in the previous commits, which fixes infinite loops within jumptable
improvements,
* made some fixes that previous patches introduced
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3609
4a8a32a2-be11-0410-ad9d-
d568d2c75423
vrokas [Tue, 21 Dec 2004 08:10:01 +0000 (08:10 +0000)]
* src/pic16/gen.c (pic16_aopGet): applied fix from Raphael Neider
that fixes an issue with AOP_PCODE asmop's offset,
* (pic16_popCopyReg): update instance field too,
* (mov2w): modified to pic16_mov2w because it conflicts with mov2w
function of pic port,
* (genCmp, genAnd, genAssign),
* src/pic16/genarith.c (genAddLit): some fixes from Raphael Neider,
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3608
4a8a32a2-be11-0410-ad9d-
d568d2c75423
vrokas [Mon, 20 Dec 2004 21:48:32 +0000 (21:48 +0000)]
* src/SDCCast.c (gatherAutoInit): allow pic16 to emit static
variables initial values to idata section,
* src/SDCCicode.c (geniCodeCall): patch from ### to fix unreferenced
variables in some functions. This utilizes parmBytes field of iCode
structure to hold the offset of the variable in stack. (might be
able to use the stack field too?)
* applied patch from Raphael Neider # ### , # ###
* src/pic16/glue.c (pic16emitRegularMap): fix to print static
variable initial values in idata section,
* src/pic16/ralloc.c (pic16_allocDirReg): don't allocate register
for static variables with initial value
* src/device/lib/pic16/libsdcc/float/ulong2fs.c (__ulong2fs):
applied fix in while loop from Raphael Neider.
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3607
4a8a32a2-be11-0410-ad9d-
d568d2c75423
maartenbrock [Sun, 19 Dec 2004 18:44:03 +0000 (18:44 +0000)]
* src/ds390/gen.c (genCpl): fixed bit=~(char/bit) bugs, added warning
* src/ds390/main.c (_ds390_regparm): don't pass bit params in registers
* src/ds390/ralloc.c (serialRegAssign): spill bits
* src/mcs51/gen.c (genCpl): fixed bit=~(char) bugs, added warning
* support/Util/SDCCerr.c,
* support/Util/SDCCerr.h: added warning W_COMPLEMENT for using bit=~(bit)
* support/regression/tests/bitvars.c: added tests for bitwise complement(~)
* support/regression/tests/bitwise.c: added test for bitwise complement(~)
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3606
4a8a32a2-be11-0410-ad9d-
d568d2c75423
maartenbrock [Thu, 9 Dec 2004 18:24:40 +0000 (18:24 +0000)]
* device/include/sdcc-lib.h: inserted LGPL, added includes
asm/ds390/features.h and asm/mcs51/features.h
* device/include/asm/default/features.h,
* device/include/asm/gbz80/features.h,
* device/include/asm/z80/features.h: added empty _AUTOMEM
and _STATMEM
* device/include/asm/ds390/features.h,
* device/include/asm/mcs51/features.h: added files with defines for
_AUTOMEM and _STATMEM indicating automatic and static storage class
* device/lib/printf_large.c (_print_format): optimized & used _AUTOMEM
* doc/sdccman.lyx: version 2.4.7, updated xstack documentation
* src/SDCCicode.c (geniCodeCast),
* src/SDCCsymt.c (compareType): allow cast of data-ptr to idata-ptr
* src/SDCCloop.c (loopInduction): removed unused variable lr
* src/SDCCopt.c (convilong, convertToFcall): moved "easy special case"
to convertToFcall to include char modulo (RFE
1065037), added check
if left operand is unsigned and use abs of literal value
* src/SDCCpeeph.c (setFromConditionArgs): removed double quotes option
as it doesn't work after conversion from peephole.def to peephole.rul
* src/mcs51/gen.c (toBoolean): added check for size,
(genModOneByte): optimized code for signed char modulo a literal
power of 2 (thanks to Hubert Sack),
(genRRC): removed unnecessary "clr c",
(genRLC): replaced "add a,acc" with cheaper "rlc a"
* src/mcs51/peeph.def: renamed 115 to 115.a, added rule 115.b: another
jump optimization,
swapped rules 256.c and 256.d,
extended 256.d by using new multiple checks (thanks Erik),
added rules 256.e and 256.f,
updated rule 261.a and 261.b to new generated code
* support/regression/tests/muldiv.c: added test div/mod by a power of 2
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3605
4a8a32a2-be11-0410-ad9d-
d568d2c75423
epetrich [Tue, 7 Dec 2004 04:05:14 +0000 (04:05 +0000)]
* src/SDCCloop.c (basicInduction, loopInduction): fixed several
induction related bugs, including first part of bug #
1074377
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3604
4a8a32a2-be11-0410-ad9d-
d568d2c75423
vrokas [Sun, 5 Dec 2004 00:16:11 +0000 (00:16 +0000)]
* applied patch from bug-report #
1076292,
* applied patches for genAnd and Goto-optimizations for Raphael
Neider,
* src/SDCCicode.c (printOperand): fixed !REGA source to compile and
dump a less iCode information,
* src/pic16/device.h (pic16_options_t): added field debgen,
* src/pic16/gen.h: added macros DUMP_FUNCTION_ENTRY,
DUMP_FUNCTION_EXIT, FENTRY, FENTRY2,
* src/pic16/gen.c (my_powof2): renamed to pic16_my_powof2 and made
puclic,
* (various functions): added macros FENTRY and FENTRY2 to functions,
to emit function prologue,
* (various functions): fixed indentation,
* (genNearPointerGet): fixed loading of FSR0,
* (genPackBits): applied patch from Raphael Neider to fix updating
of FSR0 and touching only the modified bits,
* src/pic16/genarith.c (various functions): added macros FENTRY to
emit function prologue in comments,
* src/pic16/pcode.h: added functions debugf2, debugf3,
* src/pic16/ralloc.c: partial fix for packForPush caused
segmentation fault,
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3603
4a8a32a2-be11-0410-ad9d-
d568d2c75423
frief [Sat, 4 Dec 2004 11:16:11 +0000 (11:16 +0000)]
* src/mcs51/peeph.def: added 261.a,b (16 bit rotate) by Stas Sergeev <stsp AT users.sourceforge.net> with reversed byte order
* support/regression/tests/rotate.c: added (ds390 skips some tests)
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3602
4a8a32a2-be11-0410-ad9d-
d568d2c75423
frief [Sat, 4 Dec 2004 11:15:06 +0000 (11:15 +0000)]
added 261.a,b (16 bit rotate) by Stas Sergeev <stsp AT users.sourceforge.net> with reversed byte order
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3601
4a8a32a2-be11-0410-ad9d-
d568d2c75423
frief [Sat, 4 Dec 2004 11:13:34 +0000 (11:13 +0000)]
added (ds390 skips some test cases)
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3600
4a8a32a2-be11-0410-ad9d-
d568d2c75423
epetrich [Sat, 4 Dec 2004 06:12:32 +0000 (06:12 +0000)]
* src/z80/gen.c (genLeftShift, genRightShift): fixed second part of
bug #
1074377
* src/hc08/gen.c (genrshFour, shiftRLong, shiftLLong),
* src/mcs51/gen.c (shiftLLong): Fixed some shifting bugs Frieder found
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3599
4a8a32a2-be11-0410-ad9d-
d568d2c75423
slade_rich [Thu, 2 Dec 2004 22:54:49 +0000 (22:54 +0000)]
PIC14 port - Fixed a problem where banksel was not being inserted.
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3598
4a8a32a2-be11-0410-ad9d-
d568d2c75423
slade_rich [Thu, 2 Dec 2004 22:53:16 +0000 (22:53 +0000)]
Fixed a problem where banksel was not being inserted.
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3597
4a8a32a2-be11-0410-ad9d-
d568d2c75423
epetrich [Thu, 2 Dec 2004 08:24:51 +0000 (08:24 +0000)]
* src/SDCCpeeph.c (callFuncByName): support combined peephole rule
conditions,
(setFromConditionArgs): friendly operand parser for peephole rules,
(operandBaseName, operandsNotRelated): new peephole condition
"operandsNotRelated" -- similar to "operandsNotSame", but takes
architecture specific register naming into account, handles n-way
comparisons, and supports quoted literals
* src/mcs51/peeph.def: restored rule 177.d with an extra condition
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3596
4a8a32a2-be11-0410-ad9d-
d568d2c75423
frief [Thu, 2 Dec 2004 08:09:58 +0000 (08:09 +0000)]
src/mcs51/peeph.def: fixed bug #
1076940
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3595
4a8a32a2-be11-0410-ad9d-
d568d2c75423
frief [Thu, 2 Dec 2004 08:08:42 +0000 (08:08 +0000)]
fixed bug #
1076940
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3594
4a8a32a2-be11-0410-ad9d-
d568d2c75423
slade_rich [Thu, 2 Dec 2004 00:51:13 +0000 (00:51 +0000)]
Added a header file for PIC16F877 device.
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3593
4a8a32a2-be11-0410-ad9d-
d568d2c75423
slade_rich [Thu, 2 Dec 2004 00:44:00 +0000 (00:44 +0000)]
Added a header file for PIC16F877 device.
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3592
4a8a32a2-be11-0410-ad9d-
d568d2c75423
frief [Sun, 28 Nov 2004 14:47:29 +0000 (14:47 +0000)]
corrected date in Changelog
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3591
4a8a32a2-be11-0410-ad9d-
d568d2c75423
frief [Sun, 28 Nov 2004 14:17:41 +0000 (14:17 +0000)]
Adding support for replacing ljmps with sjmps in jumptables
generated for switch statements. For now you need to set the
environment variable SDCC_SJMP_JUMPTABLE to enable this.
Now 4 algorithms for mcs51 jumptable generation are used:
ljmp or sjmp jumptables for up to 16 cases, stack-pushing target
addresses loaded pc-relative for up to 112 cases and stack-pushing
target addresses loaded with offset from dptr for up to 256 cases.
* src/SDCCpeeph.c: added peephole conditional labelJTInRange
* src/mcs51/main.c: adapted constants for switch table generation
* src/mcs51/peeph.def: added 260.x for replacing ljmp with sjmp
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3590
4a8a32a2-be11-0410-ad9d-
d568d2c75423
frief [Sun, 28 Nov 2004 14:16:20 +0000 (14:16 +0000)]
added peephole conditional labelJTInRange. For now you need to set the environment variable SDCC_SJMP_JUMPTABLE to enable this
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3589
4a8a32a2-be11-0410-ad9d-
d568d2c75423
frief [Sun, 28 Nov 2004 14:15:43 +0000 (14:15 +0000)]
adapted constants for switch table generation
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3588
4a8a32a2-be11-0410-ad9d-
d568d2c75423
maartenbrock [Fri, 26 Nov 2004 20:11:10 +0000 (20:11 +0000)]
* device/lib/printf_large.c (calculate_digit): removed optimization for octal and hex as it was way too large
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3587
4a8a32a2-be11-0410-ad9d-
d568d2c75423
maartenbrock [Fri, 26 Nov 2004 16:28:21 +0000 (16:28 +0000)]
* device/lib/printf_large.c (_print_format): fixed bug
1073386,
(calculate_digit): added optimization for octal and hex
* support/regression/tests/bug1057979.c: added test for bug
1073386
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3586
4a8a32a2-be11-0410-ad9d-
d568d2c75423
vrokas [Thu, 25 Nov 2004 09:05:27 +0000 (09:05 +0000)]
* src/pic16/pcode.c: fixed bug which may produce error in non-GNU
compilers
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3585
4a8a32a2-be11-0410-ad9d-
d568d2c75423
vrokas [Thu, 25 Nov 2004 09:02:58 +0000 (09:02 +0000)]
2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
* src/pic16/pcode.c: fixed bug which may produce error in non-GNU
compilers
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3584
4a8a32a2-be11-0410-ad9d-
d568d2c75423
vrokas [Wed, 24 Nov 2004 23:42:58 +0000 (23:42 +0000)]
* src/pic16/device.h,
* src/pic16/genarith.c,
* src/pic16/glue.c,
* src/pic16/main.c,
* src/pic16/pcode.c: applied patches #
1068154 and #
1070213
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3583
4a8a32a2-be11-0410-ad9d-
d568d2c75423
vrokas [Wed, 24 Nov 2004 00:20:50 +0000 (00:20 +0000)]
Large cummulative patch for pic16 port.
* device/lib/pic16/gstack.h: NEW, user can specify its own handler
to call when a stack overflow occurs,
* (malloc.h): added CVS Id tag,
* (pic18f{242,252,442,452}.h): added T0CONbits structure and
variable,
* added libc directory. The current version of LibC contains string
functions, ctype functions and macros and some functions of the
stdlib set (like malloc/free/atof/atoi etc...). All functions are to
be extensively tested in the future. Standard disclaimer here.
Library is not automatically build yet. But one can build it by
invoking 'make' inside the libc directory.
* added ADC library under libio. Preliminary version yet.
* src/pic16/gen.h: added emitTOGC macro, to toggle Carry flag,
* src/pic16/gen.c (aopForRemat): asmop size is filled by
aopForRemat() now and not by pic16_aopOp(),
* (pic16_popGetTempReg): removed warning messgae when allocating
temporary registers, its a buggy feature and will be removed,
* (pic16_popGet): set register instance field in AOP_CRY,
* (pic16_outBitC): fixed for results in size greater than 1,
* (genUminusFloat): fixed for pic16, ported code from mcs51,
* (pic16_storeForReturn): optimized return of 0,
* (genCmp): experimental code for new genCmp which uses PIC18's
special compare&skip instructions. Initial tests fail some times
with variables grater than 1 byte in size, so new code is disabled,
* (genUnpackBits, genPackBits): more optimizations in reading/writing,
a single bit,
* (genCast): began a fix to optimize the casting of a bit to another
bit, now assigning a bitfield to another bitfield will fail, sorry,
* src/pic16/main.c: disabled the use of lr-support feature,
* src/pic16/pcode.h: renamed PCASMDIR to PCAD,
* added some function prototypes, added function _debugf prototype,
* src/pic16/pcode.c: (pic16_get_op): fixed emitting operands of register
bits with offset (case PO_GPR_BIT),
* (genericPrint): don't emit INFO pcode when --pcode-verbose not in
command line,
* (isBankInstruction): modified to return 0 for no banking instruction,
and 1 for banking instruction,
* (pic16_isPCinFlow): check for PCAD (assembler directives) too,
caused stop processing pCodes after a inline assembly block,
* (pic16_popCopyGPR2Bit): updated to match bitfields with offset,
* src/pic16/pcoderegs.c: fixed a bug with eliminating some temporary
registers when it shouldn't,
* src/pic16/ralloc.c (allocReg): add preliminary support for
supporting a limited set of temporary registers,
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3582
4a8a32a2-be11-0410-ad9d-
d568d2c75423
epetrich [Tue, 23 Nov 2004 06:57:45 +0000 (06:57 +0000)]
* src/hc08/gen.c (genAssign, genPointerGetSetOfs, genDataPointerGet,
genDataPointerSet): ensure assignments always copy in MSB to LSB
order,
(loadRegFromAop): recognize CLRH optimization,
(genFunction): optimize RECEIVE iCodes in reentrant functions
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3581
4a8a32a2-be11-0410-ad9d-
d568d2c75423
epetrich [Sat, 20 Nov 2004 05:57:00 +0000 (05:57 +0000)]
* src/SDCCmain.c (parseCmdLine, optionsTable[]): fixed bug with
--out-fmt-s19 turning into --out-fmt-elf if s19 was already
selected.
* src/SDCCmain.c (linkEdit): don't define SSEG for HC08
* src/hc08/main.c (_hc08_setDefaultOptions): default xdata to be
contiguous with data
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3580
4a8a32a2-be11-0410-ad9d-
d568d2c75423
frief [Fri, 19 Nov 2004 19:02:01 +0000 (19:02 +0000)]
* device/lib/_gptrget.c (_gptrget),
* device/lib/_gptrgetc.c (_gptrgetc),
* device/lib/_gptrput.c (_gptrput): _naked allows to use ret
instead of sjmp to ret
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3579
4a8a32a2-be11-0410-ad9d-
d568d2c75423
frief [Fri, 19 Nov 2004 19:00:24 +0000 (19:00 +0000)]
_naked allows to use ret instead of sjmp to ret
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3578
4a8a32a2-be11-0410-ad9d-
d568d2c75423
frief [Fri, 19 Nov 2004 09:06:39 +0000 (09:06 +0000)]
added peepholes 3.d-g and 177.g,h provided by anonymous in RFE #
1067986, thanks
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3577
4a8a32a2-be11-0410-ad9d-
d568d2c75423
maartenbrock [Thu, 18 Nov 2004 12:38:26 +0000 (12:38 +0000)]
* .version: bumped version to 2.4.7
* device/lib/_gptrget.c (_gptrget): is now _naked
* device/lib/_gptrgetc.c (_gptrgetc): is now _naked
* device/lib/_gptrput.c (_gptrput): is now _naked
* src/SDCCast.c (createBlock): removed ridiculous self-assignment,
(createFunction): fixed xstack
* src/SDCCglue.c (emitMaps): set allocation required for bit area
* src/SDCCicode.c (geniCodeCast): don't change SPEC_OCLS for literal
or bit either,
(geniCodeCritical): store original interrupt state in an iTemp bit
var unless stack-auto
* src/SDCCicode.h: added CRITICAL and ENDCRITICAL to SKIP_IC2
* src/SDCCmain.c (setIncludePath): added include/target to search path
* src/SDCCmem.c (allocParms): store bit vars in bit space, not overlay
* src/SDCCsymt.c (checkFunction): don't check regbank for isr's against
prototype,
(processFuncArgs): put bit vars in bit area
* src/mcs51/gen.c (saveRegisters, unsaveRegisters, genXpush, saveRBank,
unsaveRBank): fixed xstack,
(genFunction): bugfix: replaced (global!) reentrant with fReentrant,
(genFunction, genEndFunction): fixed xstack,
(genAssign): optimization don't walk backwards through mem
* src/mcs51/main.c (_mcs51_regparm): don't pass bit params in registers
* src/mcs51/ralloc.c (createStackSpil): spill bits to bit area
* support/regression/Makefile: also make library (for stack-auto) when
making "all" and added "test-mcs51-xstack-auto"
* support/regression/fwk/lib/testfwk.c: added T2_isr prototype for mcs51
* support/regression/ports/mcs51/T2_isr.c: added this file as a stub
* support/regression/ports/mcs51/fwk.lib: added to link T2_isr stub
* support/regression/ports/mcs51/spec.mk: added rules for fwk.lib
* support/regression/ports/mcs51-stack-auto/spec.mk: replaced
make-library by MAKE_LIBRARY
* support/regression/ports/mcs51-xstack-auto/spec.mk: file added to run
regression tests for xstack
* support/regression/tests/bitvars.c: test for bit vars (bug 938782)
* support/regression/tests/critical.c: test for critical on mcs51
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3576
4a8a32a2-be11-0410-ad9d-
d568d2c75423
epetrich [Thu, 18 Nov 2004 04:11:15 +0000 (04:11 +0000)]
* support/regression/ports/ucz80/spec.mk: use include and lib files from
built version of sdcc instead of installed version
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3575
4a8a32a2-be11-0410-ad9d-
d568d2c75423
maartenbrock [Sun, 14 Nov 2004 11:53:10 +0000 (11:53 +0000)]
* src/mcs51/gen.c (toBoolean): fixed bug
1065458
* device/lib/Makefile.in: z80 uses printf_large.c, sprintf.c and
vprintf.c now
* device/lib/printf_large.c (calculate_digit): fixed bug
1057979
* device/lib/z80/Makefile: don't use printf.c as it fails bug
1057979
WARNING: remove device/lib/build/z80/printf.o by hand when
updating from previous build!
* device/lib/z80/printf.c: updated comment
* support/regression/tests/bug1057979.c: test all ports now
* support/regression/tests/bug1065458.c: file added
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3574
4a8a32a2-be11-0410-ad9d-
d568d2c75423
epetrich [Fri, 12 Nov 2004 05:53:56 +0000 (05:53 +0000)]
* src/z80/gen.c (genFunction, genEndFunction): avoided generating
*_start and *_end symbols for static functions
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3573
4a8a32a2-be11-0410-ad9d-
d568d2c75423
maartenbrock [Thu, 11 Nov 2004 12:10:48 +0000 (12:10 +0000)]
* src/SDCCmain.c (linkEdit): don't suppress crt0 if --nostdlib is used
and search crt0.o in all library paths,
(setIncludePath): proper handling of --nostdinc,
(setLibPath): proper handling of --nostdlib
* support/regression/Makefile,
* support/regression/ports/ds390/spec.mk,
* support/regression/ports/gbz80/spec.mk,
* support/regression/ports/hc08/spec.mk,
* support/regression/ports/mcs51/spec.mk,
* support/regression/ports/mcs51-large/spec.mk,
* support/regression/ports/mcs51-stack-auto/spec.mk,
* support/regression/ports/z80/spec.mk: use include and lib files from
built version of sdcc instead of installed version
* doc/sdccman.lyx: fixed typo in --nostdinc
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3572
4a8a32a2-be11-0410-ad9d-
d568d2c75423
slade_rich [Tue, 9 Nov 2004 23:57:01 +0000 (23:57 +0000)]
PIC14 - Added support to generate code for struct bit fields.
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3571
4a8a32a2-be11-0410-ad9d-
d568d2c75423
slade_rich [Tue, 9 Nov 2004 23:55:49 +0000 (23:55 +0000)]
Added support to generate code for struct bit fields.
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3570
4a8a32a2-be11-0410-ad9d-
d568d2c75423
maartenbrock [Sat, 6 Nov 2004 20:00:41 +0000 (20:00 +0000)]
* Added support/regression/tests/bug1057979.c
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3569
4a8a32a2-be11-0410-ad9d-
d568d2c75423
maartenbrock [Sat, 6 Nov 2004 19:56:53 +0000 (19:56 +0000)]
* as/xa51/xa_version.h,
* device/include/errno.h,
* device/include/regc515c.h,
* device/lib/_itoa.c,
* device/lib/_ltoa.c,
* device/lib/ser_ir_cts_rts.c,
* sim/ucsim/xa.src/glob.cc,
* sim/ucsim/xa.src/inst_gen.cc,
* sim/ucsim/xa.src/xa_bit.cc,
* sim/ucsim/xa.src/xa_sfr.cc,
* sim/ucsim/z80.src/inst_dd.cc,
* sim/ucsim/z80.src/inst_fdcb.cc,
* support/scripts/keil2sdcc.pl,
* src/pic16/pic16.dsp,
* src/pic16/pic16a.dsp: corrected cvs line endings
* device/lib/printf_large.c: fixed bug
1057979
* src/pic16/gen.c: fixed non-C standard code
* src/SDCCmain.c: made --pack-iram default, added --no-pack-iram
* src/SDCCglobl.h: changed pack_iram to no_pack_iram
* support/regression/ports/mcs51/support.c: reload T1 asap
* doc/sdccman.lyx: updated for options --pack-iram and --no-pack-iram,
pdata use and clear idata startup behaviour
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3568
4a8a32a2-be11-0410-ad9d-
d568d2c75423
vrokas [Fri, 5 Nov 2004 08:35:55 +0000 (08:35 +0000)]
* initial revision, PIC16 C Library headers
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3567
4a8a32a2-be11-0410-ad9d-
d568d2c75423
vrokas [Fri, 5 Nov 2004 01:35:47 +0000 (01:35 +0000)]
* initial import, various character functions
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3566
4a8a32a2-be11-0410-ad9d-
d568d2c75423
maartenbrock [Thu, 4 Nov 2004 21:19:23 +0000 (21:19 +0000)]
* device/examples/ds390/ow390/ad26.h,
* device/examples/ds390/ow390/cnt1d.h,
* device/examples/ds390/ow390/crcutil.c,
* device/examples/ds390/ow390/ownet.h,
* device/examples/ds390/ow390/owsesu.c,
* device/examples/ds390/ow390/swt12.h,
* device/examples/ds390/ow390/swtoper.c,
* device/examples/ds390/ow390/temp10.h,
* device/examples/ds390/ow390/thermodl.c,
* device/examples/ds390/tinitalk/tinitalk.dsp,
* device/examples/ds390/tinitalk/tinitalk.dsw,
* device/examples/mcs51/clock/hw.h,
* device/examples/mcs51/simple2/go.bat,
* device/examples/serialcomm/windows/serial.h,
* device/examples/xa51/dummy.c,
* device/examples/xa51/hello.c,
* device/include/80c51xa.h,
* device/include/at89x051.h: corrected cvs line endings
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3565
4a8a32a2-be11-0410-ad9d-
d568d2c75423
vrokas [Thu, 4 Nov 2004 12:34:49 +0000 (12:34 +0000)]
2004-11-04 Vangelis Rokas <vrokas AT otenet.gr>
* src/pic16/main.c (options): added command line --gstack, to trace
stack over/under flows,
* added pragma 'wparam' to allow passing first byte of function
parameters via WREG, syntax is #pragma wparam my_function[, func2...]
* src/pic16/gen.c (pic16_testStackOverflow): function which emits a
call to __gstack_test function and sets up the symbol as extern,
* (pic16_pushpCodeOp, pic16_poppCodeOp, pushw, pushaop, popaopidx,
* popaop): added call to pic16_testStackOverflow,
* (wParamCmp, inWparamList): NEW, test existence of a symbol in
wparamList list,
* (genCall, genPcall): now all parameters are passed via stack
except in functions that are pass to wparam pragma in which WREG is
used too,
* (genPcall): REENTRANT flag is checked to see if variable prototype
contains reentrant keyword, don't call a non-reentrant function, via
a reentrant function pointer or vice versa, functions are never
passed via WREG,
* (genJumpTab): applied patch from bug #
1057478 by R.Neider and
D.Winkler,
* src/pic16/glue.c (pic16emitRegularMap): fixed bug which caused a
SIGSEGV when accessing a NULL register stucture,
* (pic16_printGPointerType): modified to handle UPPER modifier for
function initializers, changed prototype of function to simpler one,
* (pic16_printIvalFuncPtr): check to see if function is already
added in externs list,
* src/pic16/pcoderegs.c (pCodeOptime2pCodes): fixed bug which
optimized a move from W to SFR with a move to the same register
later after a CALL,
* device/lib/pic16/debug: NEW directory, contains debug features
which are enabled when linking with libdebug.lib, currently command
line option --gstack enables stack pointer tracing for over/under
flow, corresponding sources are in debug/gstack
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3564
4a8a32a2-be11-0410-ad9d-
d568d2c75423
vrokas [Sat, 30 Oct 2004 11:15:15 +0000 (11:15 +0000)]
* doc/sdccman.lyx: updated SDCC version,
* (PIC16 port): update list of command line options,
* src/pic16/device.h (structure pic16_options_t): added field gstack
to enable stack overflow tracing on push/pops,
* src/pic16/device.c (statistics structure): added statistics
structure,
* (pic16_dump_access, pic16_dump_usection, pic16_dump_gsection,
pic16_dump_int_registers): increase statistics counters for each
* variable which is encountered
* (pic16_dump_usection): emit each .udata variable to its own udata
section,
* src/pic16/gen.c (assignResultValue, genCall, genPcall, genFunction):
when macro USE_WREG_IN_FUNC_PARAMS is set to 0 pass all function
parameters via stack, otherwise use old scheme,
* src/pic16/glue.c (pic16_emitStatistics): dump statistics in
assembler output file,
* src/pic16/main.c: added command line options --gstack to enable
push/pop tracing for stack overflow,
* src/pic16/pcode.c (all pCodeInstruction records for PIC18F
instructions): added size of each instruction,
* (pic16_countInstruction): estimate size of instructions in
the_pFile list, inline assembly blocks are not counted,
* (pic16_FixRegisterBanking): trace previous register usage, when
banksel optimizations is greater than 0, don't emit a redudant
banksel directive,
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3563
4a8a32a2-be11-0410-ad9d-
d568d2c75423
slade_rich [Tue, 26 Oct 2004 00:41:33 +0000 (00:41 +0000)]
PIC ports - fixed inefficient code produced when compiling a complimented bit operation.
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3561
4a8a32a2-be11-0410-ad9d-
d568d2c75423
slade_rich [Tue, 26 Oct 2004 00:38:32 +0000 (00:38 +0000)]
fixed inefficient code for compiling complimented bit.
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3560
4a8a32a2-be11-0410-ad9d-
d568d2c75423
slade_rich [Tue, 26 Oct 2004 00:37:46 +0000 (00:37 +0000)]
tidied it up a little.
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3559
4a8a32a2-be11-0410-ad9d-
d568d2c75423
frief [Mon, 25 Oct 2004 17:57:07 +0000 (17:57 +0000)]
src/mcs51/peeph.def: disabled 259.a,b for removing redundant ret, thanks to Martin Helmling for reporting (mail on sdcc-devel 2004-10-25)
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3558
4a8a32a2-be11-0410-ad9d-
d568d2c75423
frief [Mon, 25 Oct 2004 17:55:52 +0000 (17:55 +0000)]
removed 259.a,b. See comment at peephole 259.a
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3557
4a8a32a2-be11-0410-ad9d-
d568d2c75423
mhelmling [Mon, 25 Oct 2004 11:51:32 +0000 (11:51 +0000)]
single step withou run, disassemble of
onknown code
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3556
4a8a32a2-be11-0410-ad9d-
d568d2c75423
epetrich [Fri, 22 Oct 2004 17:20:11 +0000 (17:20 +0000)]
* src/SDCCast.c (reverseParms): fixed bug #
1040577 (part 2)
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3555
4a8a32a2-be11-0410-ad9d-
d568d2c75423
frief [Fri, 22 Oct 2004 14:56:11 +0000 (14:56 +0000)]
Peephole 256.c,d zeroing data from accumulator after jnz comparison
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3554
4a8a32a2-be11-0410-ad9d-
d568d2c75423
frief [Fri, 22 Oct 2004 14:52:59 +0000 (14:52 +0000)]
zeroing data from acculator after jnz comparison
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3553
4a8a32a2-be11-0410-ad9d-
d568d2c75423
frief [Fri, 22 Oct 2004 11:29:13 +0000 (11:29 +0000)]
* device/lib/ser_ir_cts_rts.c: integer promotion caused a call to the
non-reentrant function __modsint in the interrupt function (thus
corrupting math operations during serial I/O)
* device/lib/ser_ir.c: as above, changed buffersize
* src/mcs51/peeph.def: added 259.a,b for removing redundant ret
* doc/Makefile: added option -t for rsync
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3552
4a8a32a2-be11-0410-ad9d-
d568d2c75423
frief [Fri, 22 Oct 2004 11:27:53 +0000 (11:27 +0000)]
added 259.a,b for removing redundant ret
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3551
4a8a32a2-be11-0410-ad9d-
d568d2c75423
frief [Fri, 22 Oct 2004 11:26:17 +0000 (11:26 +0000)]
added option -t for rsync, (this has little effect as a cvs checkout usually spoils this anyway)
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3550
4a8a32a2-be11-0410-ad9d-
d568d2c75423
frief [Fri, 22 Oct 2004 11:24:48 +0000 (11:24 +0000)]
integer promotion caused a call to the non-reentrant function __modsint in the interrupt
function (thus corrupting math operations during serial I/O),
ser_ir.c: as above, changed buffersize
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3549
4a8a32a2-be11-0410-ad9d-
d568d2c75423
epetrich [Fri, 22 Oct 2004 04:02:03 +0000 (04:02 +0000)]
* src/SDCCast.h (struct ast),
* src/SDCCast.c (reverseParms, copyAst): fixed bug #
1040577
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3548
4a8a32a2-be11-0410-ad9d-
d568d2c75423