fw/sdcc
19 years ago* src/SDCCBBlock.c (iCodeBreakDown): fixed bug #1170212
epetrich [Mon, 28 Mar 2005 00:47:38 +0000 (00:47 +0000)]
* src/SDCCBBlock.c (iCodeBreakDown): fixed bug #1170212

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3709 4a8a32a2-be11-0410-ad9d-d568d2c75423

19 years ago* src/pic16/gen.c (genSkipc): fixed semantics (execute branch
tecodev [Sat, 26 Mar 2005 17:49:18 +0000 (17:49 +0000)]
* src/pic16/gen.c (genSkipc): fixed semantics (execute branch
  if condition == CARRY)
* (genCmp): adapted to new genSkipc semantics
* src/pic16/genutils.c (pic6_genCmp_special): removed side effect
  on rIfx (genCmp was broken)

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3708 4a8a32a2-be11-0410-ad9d-d568d2c75423

19 years ago* src/SDCCmain.c (setDefaultOptions, optionsTable[], parseCmdLine),
epetrich [Sat, 26 Mar 2005 06:07:40 +0000 (06:07 +0000)]
* src/SDCCmain.c (setDefaultOptions, optionsTable[], parseCmdLine),
* src/z80/main.c (_keywords[]),
* src/SDCCglobal.h (struct options),
* src/SDCC.y,
* src/SDCC.lex (isTargetKeyword, doPragma, pragma_tbl[]): new pragmas
to enable/disable SDCC and C99 extensions/keywords (std_c89, std_sdcc89,
std_c99, std_sdcc99). Also, equivalent command line options (--std-c89,
--std-sdcc89, --std-c99, --std-sdcc99). SDCC specific keywords are
always available in leading double underscore form. The C99 support is
mostly missing, but it's a start.
* support/regression/tests/bug-227710.c: fixed nonconforming use of
reserved identifier "__data".

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3707 4a8a32a2-be11-0410-ad9d-d568d2c75423

19 years ago* src/mcs51/peeph.def: fixed bug 1170013
maartenbrock [Thu, 24 Mar 2005 17:18:59 +0000 (17:18 +0000)]
* src/mcs51/peeph.def: fixed bug 1170013

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3706 4a8a32a2-be11-0410-ad9d-d568d2c75423

19 years ago* device/include/mcs51reg.h: fixed bug 842007
maartenbrock [Tue, 22 Mar 2005 16:40:25 +0000 (16:40 +0000)]
* device/include/mcs51reg.h: fixed bug 842007

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3705 4a8a32a2-be11-0410-ad9d-d568d2c75423

19 years ago* src/SDCCcflow.c (dfNumCompare): committed the wrong version of this
epetrich [Mon, 21 Mar 2005 13:56:44 +0000 (13:56 +0000)]
* src/SDCCcflow.c (dfNumCompare): committed the wrong version of this
last time.

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3704 4a8a32a2-be11-0410-ad9d-d568d2c75423

19 years ago* src/port.h (struct PORT),
epetrich [Sun, 20 Mar 2005 19:31:19 +0000 (19:31 +0000)]
* src/port.h (struct PORT),
* src/avr/ralloc.c (avr_assignRegisters),
* src/avr/main.c,
* src/ds390/ralloc.c (ds390_assignRegisters),
* src/ds390/main.c,
* src/hc08/ralloc.c (hc08_assignRegisters),
* src/hc08/main.c,
* src/mcs51/ralloc.c (mcs51_assignRegisters),
* src/mcs51/main.c,
* src/pic/ralloc.c (pic14_assignRegisters),
* src/pic/main.c,
* src/pic16/ralloc.c (pic16_assignRegisters),
* src/pic16/main.c,
* src/xa51/ralloc.c (xa51_assignRegisters),
* src/xa51/main.c,
* src/z80/ralloc.c (z80_assignRegisters),
* src/z80/ralloc.h,
* src/SDCCopt.c (eBBlockFromiCode, replaceRegEqv, killDeadCode),
* src/SDCCcse.c (ifxOptimize, cseBBlock, cseAllBlocks),
* src/SDCCcse.h,
* src/SDCCdflow.c (computeDataFlow),
* src/SDCCdflow.h,
* src/SDCCloop.c (addDefInExprs, loopInvariants, loopOptimizations),
* src/SDCCloop.h,
* src/SDCCcflow.c (*),
* src/SDCCcflow.h,
* src/SDCCBBlock.c (iCodeBreakDown, dumpEbbsToFileExt, eBBWithEntryLabel),
* src/SDCCBBlock.h (struct ebbIndex): new struct that keeps two copies
of the eBBlock list, sorted by both bbnum and dfnum. (fixes bug with
immedDom() returning wrong block; probably fixes bug #1160833)

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3703 4a8a32a2-be11-0410-ad9d-d568d2c75423

19 years ago* support/scripts/inc2h.pl: WIN32 port
borutr [Sun, 20 Mar 2005 17:50:34 +0000 (17:50 +0000)]
* support/scripts/inc2h.pl: WIN32 port

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3702 4a8a32a2-be11-0410-ad9d-d568d2c75423

19 years ago* device/lib/makefile.in: added abs.c and labs.c
maartenbrock [Sat, 19 Mar 2005 18:47:47 +0000 (18:47 +0000)]
* device/lib/makefile.in: added abs.c and labs.c

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3701 4a8a32a2-be11-0410-ad9d-d568d2c75423

19 years ago* device/include/stdint.h: added
maartenbrock [Thu, 17 Mar 2005 10:00:37 +0000 (10:00 +0000)]
* device/include/stdint.h: added
* device/lib/abs.c: added
* device/lib/labs.c: added
* device/include/stdlib.h: added abs() and labs() prototypes
* device/lib/libsdcc.lib: added abs and labs
* device/include/float.h,
* device/lib/_fsmul.c,
* device/lib/printf_fast.c,
* device/lib/printf_tiny.c: updated comments

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3700 4a8a32a2-be11-0410-ad9d-d568d2c75423

19 years ago* src/SDCCicode.c (geniCodeSwitch, geniCodeJumpTable): fixed
epetrich [Thu, 17 Mar 2005 06:52:33 +0000 (06:52 +0000)]
* src/SDCCicode.c (geniCodeSwitch, geniCodeJumpTable): fixed
bug #1164313

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3699 4a8a32a2-be11-0410-ad9d-d568d2c75423

19 years ago* src/SDCCcse.c (cseBBlock): retain assignment to self when volatile
epetrich [Wed, 16 Mar 2005 06:20:13 +0000 (06:20 +0000)]
* src/SDCCcse.c (cseBBlock): retain assignment to self when volatile
* src/SDCCast.c (isLoopCountable): fixed bug #1161985

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3697 4a8a32a2-be11-0410-ad9d-d568d2c75423

19 years ago* device/lib/printf_large.c: removed inline assembly for portability and
maartenbrock [Tue, 15 Mar 2005 07:34:20 +0000 (07:34 +0000)]
* device/lib/printf_large.c: removed inline assembly for portability and
  readability. Use printf_fast if speed or size are more important.
* src/pic16/gen.c: removed conditions around use of DEBUGpc
* src/pic16/genutils.h: added define for DEBUGpc for MSVC

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3696 4a8a32a2-be11-0410-ad9d-d568d2c75423

19 years ago* src/pic16/genutils.c (pic16_genCmp_special): initialized offs to
vrokas [Tue, 15 Mar 2005 00:13:18 +0000 (00:13 +0000)]
* src/pic16/genutils.c (pic16_genCmp_special): initialized offs to
prevent compiler warning

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3695 4a8a32a2-be11-0410-ad9d-d568d2c75423

19 years ago* device/lib/pic16/startup/crt0i.c (_cinit): local variables where
vrokas [Mon, 14 Mar 2005 01:24:58 +0000 (01:24 +0000)]
* device/lib/pic16/startup/crt0i.c (_cinit): local variables where
moved to level 0 and declared as static. Also they are explicit
placed in access bank. This was necessery because some times they
might cross memory bank boundaries. crt0iz.c is *NOT* updated!!!
* src/pic16/device.h: added flag OPTIMIZE_CMP to enable some compare
optimizations. Currently only compare to unsigned char is implemented,
* src/pic16/gen.c: added fReturnIdx array,
* (struct resolvedIfx) is moved to gen.h and made public,
* (struct _G): added sregsAlloc and sregsAllocSet fields,
* (aopForSym): added an optimization to directly store in stack of
the operand of a SEND iCode,
* (pic16_aopOp): don't return return registers as strings (AOP_STR)
but as registers instead (AOP_REG) using the fReturnIdx array,
* (pic16_freeAsmop): remove the freed register from the
_G.sregsAlloc field,
* (pic16_aopGet): in case AOP_STR, the compare to 'a' is changed to
a compare of 'WREG',
* (pic16_popGetTempRegCond): changed function prototype, now
function takes also a bitVector argument v which holds the current
set of registers that are allocated for stack access by aopForSym,
registers allocated in aopForSym for accessing stack symbols are not
any more part of the functions usedRegs field,
* (genCall): some times aopOp is called for a stack variable to be
send, aopForSym might perform the push, if this is true make sure
that genCall doesn't push the variable twice by testing _G.resDirect,
* (genFunction): changed testing for unspecified interrupt number
from 256 to INTNO_UNSPEC,
* modified selection scheme of frame pointer generation. Previously
if function did use local registers a frame pointer was generated,
now a frame pointer is generated only if function has arguments
(that need PLUSW2 register access), or has stack arguments, or the
compiler is not instructed to omit the frame pointer,
* (genEndFunction): before restoring local registers that were saved
in the function preamble, also restore the registers that *might*
have been allocated for stack access,
* (genRet): removed some old comments,
* (genCmp, the active (RN's) version): added a call to the
pic16_genCmp_special function to perform the compare with a more
robust and optimized way,
* (genInline): a feature has been added in inline code generation,
which allows a wildcard variable substitution when writing inline
assembly. Code is incomplete and experimental therefore undocumented,
* (genCast): changed order of aopOp for result and right to allow
aopForSym to directly load the result if possible,
* src/pic16/genutils.c (selectCompareOp, pic16_genCmp_special): NEW,
perform an optimized compare on some selected special occasions,
* src/pic16/genutils.h: declaration of resolvedIfx structure from gen.c,
* src/pic16/glue.c (pic16createInterrupVect): make sure we never
generate an IVT any more,
* src/pic16/main.c (pic16_optionsTable): added command line option
--optimize-cmp,
* (_pic16_initPaths): when calling C preprocessor define pic18fXXXX
macro too, when calling assembler define pic18fXXXX *and* __18Fxxxx
macros,
* src/pic16/NOTES: Raphael Neider added in list of active developers
* src/pic16/pcode.c (OPT_TYPE_STR): added strings jumptable_begin and
jumptable_end to prevent bug #,
* (pic16_pciADDWFC, ADDFWC, COMF, CLRF): added some missing flags in
inCond and outCond fields,
* src/pic16/pcoderegs.c (pCodeOptime2pCodes): add a fix for bug #,
* src/pic16/ralloc.c (serialRegAssign): explicit set willCS to 0 to
turn off register spilling,
* (packRegsForOneUse): synced with other ports' versions although it
is not used currently,
* (pic16_packRegisters): added an optimization while reading
structure bitfields, some registers may be saved (malloc code is
decreased by 80 bytes)

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3694 4a8a32a2-be11-0410-ad9d-d568d2c75423

19 years ago* src/SDCCcse.c (cseBBlock): inside 'do operand lookup' loop test if
vrokas [Sat, 12 Mar 2005 10:39:48 +0000 (10:39 +0000)]
* src/SDCCcse.c (cseBBlock): inside 'do operand lookup' loop test if
left is a bitfield, if yes, then don't optimize assignment. Perhaps
this can be optimized more?

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3693 4a8a32a2-be11-0410-ad9d-d568d2c75423

19 years ago* src/pic16/gen.c (pic16_loadFSR0, genPackBits, genUnpackBits,
tecodev [Thu, 10 Mar 2005 15:09:48 +0000 (15:09 +0000)]
* src/pic16/gen.c (pic16_loadFSR0, genPackBits, genUnpackBits,
  genNearPointerGet): (hopefully) fixed access to bitfields via
  pointers (p->bitN = x; and x = p->bitN; failed)

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3692 4a8a32a2-be11-0410-ad9d-d568d2c75423

19 years agofix leading zero support in printf_fast
pjs [Wed, 9 Mar 2005 20:41:09 +0000 (20:41 +0000)]
fix leading zero support in printf_fast

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3691 4a8a32a2-be11-0410-ad9d-d568d2c75423

19 years ago* src/SDCCopt.c (killDeadCode): fixed bug #1156016
tecodev [Wed, 9 Mar 2005 19:18:47 +0000 (19:18 +0000)]
* src/SDCCopt.c (killDeadCode): fixed bug #1156016

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3690 4a8a32a2-be11-0410-ad9d-d568d2c75423

19 years ago* src/SDCCicode.h: moved CRITICAL and ENDCRITICAL from SKIP_IC2 to SKIP_IC
maartenbrock [Sun, 6 Mar 2005 11:50:17 +0000 (11:50 +0000)]
* src/SDCCicode.h: moved CRITICAL and ENDCRITICAL from SKIP_IC2 to SKIP_IC
* src/mcs51/ralloc.c (willCauseSpill): added check for REG_BIT type,
  (regTypeNum): set REG_BIT type if necessary
* src/mcs51/ralloc.h: added define REG_BIT, used to fix bug 1144613
* support/regression/tests/critical.c: check bug 1144613

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3689 4a8a32a2-be11-0410-ad9d-d568d2c75423

19 years agosab80c509 definitions added
bela [Thu, 3 Mar 2005 10:34:53 +0000 (10:34 +0000)]
sab80c509 definitions added

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3688 4a8a32a2-be11-0410-ad9d-d568d2c75423

19 years ago* src/pic16/gen.c (genRightShiftLiteral): fixed bug #1154256
tecodev [Wed, 2 Mar 2005 10:34:29 +0000 (10:34 +0000)]
* src/pic16/gen.c (genRightShiftLiteral): fixed bug #1154256

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3687 4a8a32a2-be11-0410-ad9d-d568d2c75423

19 years ago* src/avr/ralloc.c (serialRegAssign),
epetrich [Sat, 26 Feb 2005 22:18:06 +0000 (22:18 +0000)]
* src/avr/ralloc.c (serialRegAssign),
* src/ds390/ralloc.c (serialRegAssign),
* src/hc08/ralloc.c (serialRegAssign),
* src/mcs51/ralloc.c (serialRegAssign),
* src/pic/ralloc.c (serialRegAssign),
* src/pic16/ralloc.c (serialRegAssign),
* src/xa51/ralloc.c (serialRegAssign),
* src/z80/ralloc.c (serialRegAssign): fixed bug #1105154

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3686 4a8a32a2-be11-0410-ad9d-d568d2c75423

19 years agoChanged /Zm1000 to /Zm1500
jesusc [Thu, 24 Feb 2005 17:29:00 +0000 (17:29 +0000)]
Changed /Zm1000 to /Zm1500

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3685 4a8a32a2-be11-0410-ad9d-d568d2c75423

19 years ago* src/SDCCast.c (decorateType): fixed bug 1124787
maartenbrock [Tue, 22 Feb 2005 16:06:03 +0000 (16:06 +0000)]
* src/SDCCast.c (decorateType): fixed bug 1124787

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3684 4a8a32a2-be11-0410-ad9d-d568d2c75423

19 years agoHubert Sack <sack AT digiplan.de>
frief [Sun, 20 Feb 2005 22:22:39 +0000 (22:22 +0000)]
Hubert Sack <sack AT digiplan.de>
* src/mcs51/peeph.def: added peepholes 3.h-k and 132.a-f from patch #1121755

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3683 4a8a32a2-be11-0410-ad9d-d568d2c75423

19 years ago* src/SDCCpeeph.def: new keyword "labelRefCountChange" which allows peepholes to...
frief [Sun, 20 Feb 2005 19:31:18 +0000 (19:31 +0000)]
* src/SDCCpeeph.def: new keyword "labelRefCountChange" which allows peepholes to keep the correct label reference count when adding/removing references to labels. A peephole file using this is appended to patch #1144962.

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3682 4a8a32a2-be11-0410-ad9d-d568d2c75423

19 years agonew keyword "labelRefCountChange" which allows peepholes to keep the correct label...
frief [Sun, 20 Feb 2005 19:29:56 +0000 (19:29 +0000)]
new keyword "labelRefCountChange" which allows peepholes to keep the correct label reference count when adding/removing references to labels. A peephole file using this is appended to patch #1144962.

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3681 4a8a32a2-be11-0410-ad9d-d568d2c75423

19 years ago* device/lib/pic16/libc/string/memccpy.c: changed 3rd argument to char
tecodev [Mon, 14 Feb 2005 11:00:42 +0000 (11:00 +0000)]
* device/lib/pic16/libc/string/memccpy.c: changed 3rd argument to char
* src/SDCC.lex (process_pragma): fixed to make disable_warning work for PIC16
* src/pic16/gen.c (aopForSym, calls to pic16_aopOp): prevent unneccessary
  retrievals of result operand's value on assignment

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3680 4a8a32a2-be11-0410-ad9d-d568d2c75423

19 years ago* device/include/pic16/string.h: modified prototype for memccpy()
vrokas [Sun, 13 Feb 2005 13:57:22 +0000 (13:57 +0000)]
* device/include/pic16/string.h: modified prototype for memccpy()
to memccpy(void *, void *, char, size_t)
* src/pic16/gen.c (genFunction, genEndFunction): reenable if-case to
check whether to omit frame pointer or not,
* (genInline): convert all occurences of "\n" to LF in inline
assembler blocks, this helps formatting the inline text,
* (pic16_loadFSR0): modified prototype,
* (genNearPointerGet, genNearPointerSet): reorganization of code,
removed some 8051 legacy code,
* (genPackBits): enabled handling bitfields exceeding one byte in size,
* src/pic16/ralloc.c (pic16_assignRegisters): clear dynrIdx variable
before allocating temporary registers in functions,

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3679 4a8a32a2-be11-0410-ad9d-d568d2c75423

19 years ago* support/regression/tests/bitvars.c: corrected the "fix"
maartenbrock [Fri, 11 Feb 2005 19:09:41 +0000 (19:09 +0000)]
* support/regression/tests/bitvars.c: corrected the "fix"

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3677 4a8a32a2-be11-0410-ad9d-d568d2c75423

19 years ago* support/regression/tests/bitvars.c,
maartenbrock [Thu, 10 Feb 2005 14:37:00 +0000 (14:37 +0000)]
* support/regression/tests/bitvars.c,
* support/regression/tests/bitwise.c,
* support/regression/tests/rotate.c: "fixed" problems on Alpha

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3676 4a8a32a2-be11-0410-ad9d-d568d2c75423

19 years ago* src/pic16/pcode.c (assignToSameBank) : fixed cast to pointer of
tecodev [Thu, 10 Feb 2005 12:44:53 +0000 (12:44 +0000)]
* src/pic16/pcode.c (assignToSameBank) : fixed cast to pointer of
  different size for Alpha
* src/pic16/gen.c (genCmpEq) : improved compare with 0

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3675 4a8a32a2-be11-0410-ad9d-d568d2c75423

19 years ago* src/SDCC.lex(doPragma) : save and restore warning options as well
tecodev [Wed, 9 Feb 2005 14:59:40 +0000 (14:59 +0000)]
* src/SDCC.lex(doPragma) : save and restore warning options as well
  (also added new stack plus clone- and copyAndFreeSDCCERRG())
* have #pragma less_pedantic set the errorlevel to WARNING
  (fixes #1117001)
* (cloneOptimize) : fixed wrong malloc's size
* support/Util/SDCCerr.[ch] : made SDCCERRG globally accessible to
  facilitate correct handling of #pragma (save|restore)

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3674 4a8a32a2-be11-0410-ad9d-d568d2c75423

19 years ago* src/mcs51/gen.c: removed non-standard C nameless struct/union
maartenbrock [Wed, 9 Feb 2005 14:32:35 +0000 (14:32 +0000)]
* src/mcs51/gen.c: removed non-standard C nameless struct/union

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3673 4a8a32a2-be11-0410-ad9d-d568d2c75423

19 years agoPIC14 : Fix for bugs #1080519 & #1115662.
slade_rich [Fri, 4 Feb 2005 01:38:17 +0000 (01:38 +0000)]
PIC14 : Fix for bugs #1080519 & #1115662.

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3672 4a8a32a2-be11-0410-ad9d-d568d2c75423

19 years agoFix for bugs #1080519 & #1115662.
slade_rich [Fri, 4 Feb 2005 01:35:52 +0000 (01:35 +0000)]
Fix for bugs #1080519 & #1115662.

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3671 4a8a32a2-be11-0410-ad9d-d568d2c75423

19 years ago* device/include/mcs51/c8051f120.h: added decalrations for sbit port 2,3&4
maartenbrock [Thu, 3 Feb 2005 11:44:10 +0000 (11:44 +0000)]
* device/include/mcs51/c8051f120.h: added decalrations for sbit port 2,3&4

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3670 4a8a32a2-be11-0410-ad9d-d568d2c75423

19 years ago* src/SDCCast.c (processParms): disabled W_NONRENT_ARGS for pic16 port
tecodev [Wed, 2 Feb 2005 21:53:55 +0000 (21:53 +0000)]
* src/SDCCast.c (processParms): disabled W_NONRENT_ARGS for pic16 port
* src/pic16/gen.c (aopForSym): reenabled special case for function pointers
* (pic16_storeForReturn): fixed to allow returning function pointers
* (genPackBits): improved accessing full bytes, implemented for GPOINTERs
* device/include/pic16/{stddef.h,stdbool.h}: added

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3669 4a8a32a2-be11-0410-ad9d-d568d2c75423

19 years ago* device/include/mcs51/c8051f040.h: added define CPT2_PAGE
maartenbrock [Wed, 2 Feb 2005 20:28:16 +0000 (20:28 +0000)]
* device/include/mcs51/c8051f040.h: added define CPT2_PAGE

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3668 4a8a32a2-be11-0410-ad9d-d568d2c75423

19 years agoPIC16 : Added file graph.c to make it compile under windows.
slade_rich [Mon, 31 Jan 2005 23:15:30 +0000 (23:15 +0000)]
PIC16 : Added file graph.c to make it compile under windows.

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3667 4a8a32a2-be11-0410-ad9d-d568d2c75423

19 years agoAdded file graph.c to make it compile under windows.
slade_rich [Mon, 31 Jan 2005 23:13:54 +0000 (23:13 +0000)]
Added file graph.c to make it compile under windows.

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3666 4a8a32a2-be11-0410-ad9d-d568d2c75423

19 years ago* support/scripts/sdcc.nsi: added include/asm/ds390, include/asm/mcs51,
borutr [Mon, 31 Jan 2005 16:50:31 +0000 (16:50 +0000)]
* support/scripts/sdcc.nsi: added include/asm/ds390, include/asm/mcs51,
  include/mcs51 and include/z80 directories to the package

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3665 4a8a32a2-be11-0410-ad9d-d568d2c75423

19 years ago* src/hc08/gen.c (genFunction): fixed bug #1112752
epetrich [Mon, 31 Jan 2005 02:54:42 +0000 (02:54 +0000)]
* src/hc08/gen.c (genFunction): fixed bug #1112752

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3664 4a8a32a2-be11-0410-ad9d-d568d2c75423

19 years agosrc/mcs51/peeph.def: adapted peephole 258.x to changed gen.c (genAnd)
frief [Sun, 30 Jan 2005 11:37:43 +0000 (11:37 +0000)]
src/mcs51/peeph.def: adapted peephole 258.x to changed gen.c (genAnd)

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3663 4a8a32a2-be11-0410-ad9d-d568d2c75423

19 years agoadapted peephole 258.x to changed gen.c (genAnd)
frief [Sun, 30 Jan 2005 11:36:41 +0000 (11:36 +0000)]
adapted peephole 258.x to changed gen.c (genAnd)

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3662 4a8a32a2-be11-0410-ad9d-d568d2c75423

19 years agosrc/mcs51/gen.c (genAnd): accessing LSB/MSB by rotating acc
frief [Sat, 29 Jan 2005 19:56:34 +0000 (19:56 +0000)]
src/mcs51/gen.c (genAnd): accessing LSB/MSB by rotating acc

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3661 4a8a32a2-be11-0410-ad9d-d568d2c75423

19 years ago(genAnd): accessing LSB/MSB by rotating acc
frief [Sat, 29 Jan 2005 19:37:28 +0000 (19:37 +0000)]
(genAnd): accessing LSB/MSB by rotating acc

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3660 4a8a32a2-be11-0410-ad9d-d568d2c75423

19 years ago* device/include/Makefile.in: create/copy mcs51 and z80 include subdirs
maartenbrock [Sat, 29 Jan 2005 19:19:10 +0000 (19:19 +0000)]
* device/include/Makefile.in: create/copy mcs51 and z80 include subdirs

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3659 4a8a32a2-be11-0410-ad9d-d568d2c75423

19 years ago* device/include/c8051fxxx.h: removed these 6 new files
maartenbrock [Thu, 27 Jan 2005 11:48:57 +0000 (11:48 +0000)]
* device/include/c8051fxxx.h: removed these 6 new files
* device/include/mcs51/c8051fxxx.h: added these 11 new files

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3658 4a8a32a2-be11-0410-ad9d-d568d2c75423

19 years ago* src/pic16/gen.c (genAssign): fixed assignment from longs
tecodev [Wed, 26 Jan 2005 14:42:28 +0000 (14:42 +0000)]
* src/pic16/gen.c (genAssign): fixed assignment from longs
  in codespace (were cut to three bytes)
* (genDummyRead): implemented (except for CODESPACE...),
  fixed bug #1108575
* src/pic16/glue.c (emitStatistics): beautified
* device/lib/pic16/libm/Makefile: added include path

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3657 4a8a32a2-be11-0410-ad9d-d568d2c75423

19 years ago* src/z80/gen.c (aopPut): fixed bug #1103902
epetrich [Wed, 26 Jan 2005 14:20:13 +0000 (14:20 +0000)]
* src/z80/gen.c (aopPut): fixed bug #1103902

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3656 4a8a32a2-be11-0410-ad9d-d568d2c75423

19 years ago* device/lib/expf.c: fixed bug #1095792
epetrich [Tue, 25 Jan 2005 05:59:15 +0000 (05:59 +0000)]
* device/lib/expf.c: fixed bug #1095792

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3655 4a8a32a2-be11-0410-ad9d-d568d2c75423

19 years ago* device/lib/pic16/libm: added Math library sources
vrokas [Mon, 24 Jan 2005 10:38:53 +0000 (10:38 +0000)]
* device/lib/pic16/libm: added Math library sources

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3654 4a8a32a2-be11-0410-ad9d-d568d2c75423

19 years ago* src/pic16/pcode.h: added second memory operand to pCodeOpReg
tecodev [Mon, 24 Jan 2005 00:18:44 +0000 (00:18 +0000)]
* src/pic16/pcode.h: added second memory operand to pCodeOpReg
  to enable upcast to pCodeOpReg2 (there is no type tag to
  differenciate the two and pic16_popGet2p casts into PCOR2)
* src/pic16/main.c (_process_pragma): fixed another malloc bug
  (sizeof(sectNames) changed to sizeof(sectName))
  Both patches fix segfaults under MinGW.

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3653 4a8a32a2-be11-0410-ad9d-d568d2c75423

19 years ago* src/SDCCopt.c (killDeadCode): restored original behaviour
tecodev [Sun, 23 Jan 2005 19:14:19 +0000 (19:14 +0000)]
* src/SDCCopt.c (killDeadCode): restored original behaviour
  (volatile operands might get thrown away though)

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3652 4a8a32a2-be11-0410-ad9d-d568d2c75423

19 years ago* src/pic16/{device.c,pcode.c}: s/free/Safe_free/g for
tecodev [Sun, 23 Jan 2005 17:54:15 +0000 (17:54 +0000)]
* src/pic16/{device.c,pcode.c}: s/free/Safe_free/g for
  Safe_[mc]?alloc()'ed variables
* src/pic16/gen.c (pic16_aopOp,pic16_popGet): added handling
  of (byte sized) temporaries (assign them to WREG for now)
* src/pic16/main.c (_process_pragma): fixed nasty malloc bug
  (used sizeof(set *sectSyms) instead of sizeof(struct sectSym)),
  this might fix SIGSEGVs on MinGW...

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3651 4a8a32a2-be11-0410-ad9d-d568d2c75423

19 years ago* src/pic16/gen.c: fixed bug #1106975,
vrokas [Sun, 23 Jan 2005 11:23:43 +0000 (11:23 +0000)]
* src/pic16/gen.c: fixed bug #1106975,
* src/pic16/gen.c: fixed possible bug #1102572, now during TOS
pointer update, INTCON is saved, global interrupts are disabled and
restored after updateing TOS.
* src/SDCC.y, src/SDCC.lex, src/SDCCsymt.c, src/SDCCsymt.h:
* added function attribute 'shadowregs' to take advantage of shadow
registers,
* added function attribute 'wparam' as an alternative to the wparam
pragma,
* support/Utils/SDCCerr.[ch]: added error E_SHADOWREGS_NO_ISR when
user declares a non-ISR function as 'shadowregs',
* doc/sdccman.lyx: updated to reflect recent changes of pic16 port

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3650 4a8a32a2-be11-0410-ad9d-d568d2c75423

19 years ago* printf_tiny.c: NEW,
vrokas [Sat, 22 Jan 2005 19:24:50 +0000 (19:24 +0000)]
* printf_tiny.c: NEW,
* device/lib/pic16/libc/*/Makefile: added --stack-auto to correctly compile
printf_*.c, ltoa.c, etc...

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3649 4a8a32a2-be11-0410-ad9d-d568d2c75423

19 years ago* .version: bumped version number to 2.4.8
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

19 years ago* src/SDCCopt.c (killDeadCode): checking for right operand can cause
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

19 years ago* src/SDCCopt.c (killDeadCode): do not throw iCodes away if one
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

19 years ago* src/pic16/pcoderegs.c (pCodeOptime2pCodes): reenabled optimization
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

19 years ago* src/pic16/pcoderegs.c (pCodeOptime2pCodes): disabled optimization
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

19 years ago* src/SDCCglue.c (glue): make sure code area is declared before the
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

19 years ago* device/lib/Makefile.in: fixed test for pic16 install dir
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

19 years ago* src/pic16/genarith.c (pic16_genPlus): removed debug output
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

19 years ago* src/SDCCglobl.h: ensure that PATH_MAX >= 2048 to guarantee
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

19 years ago* Makefile, Makefile.rules: compile utils directory,
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

19 years ago* device/lib/pic16/libc/stdlib/x_ftoa.c: it defines x_ftoa function
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

19 years ago* device/lib/pic16/libc/stdlib/x_ftoa.c: it defines x_ftoa function
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

19 years ago* device/lib/pic16/libc/utils/cnvfrac.S,cnvint.S: support functions to
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

19 years ago* added x_ftoa.c: it defines x_ftoa function which converts a float number
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

19 years ago* device/include/asm/pic16/features.h: added _CODE, _DATA, _AUTOMEM,
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

19 years ago* src/pic16/pcode.[ch]: introduced pic16_stackpnt_*,
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

19 years ago* doc/sdccman.lyx: update documentation about stack pragma, added
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

19 years agoFixed error in log date
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

19 years agoMSVC 6 does not support macro variable arguments
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

19 years ago* src/pic16/device.c (pic16_dump_usection) changed naming scheme for
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

19 years ago* src/pic16/gen.c (genGenericShift) added handling of differently
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

19 years ago* src/pic16/gen.c (genIfxJump) fixed inverted skips on CARRY
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

19 years ago* src/pic16/gen.c (genIfxJump) fixed inverted skips on CARRY
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

19 years ago* src/pic16/gen.c (aopForSym, genEndFunction): applied some fixes
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

19 years agoAdded mcs51 asm versions of logf and expf
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

19 years agoPIC14 : Adjusted internal stack and pre-allocated registers for device types which...
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

19 years agoAdjusted internal stack and pre-allocated registers for device types which have less...
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

19 years agoPIC14 : Fixed problem with subtraction where the result would not be updated when...
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

19 years agoFixed problem with subtraction where the result would not be updated when borrowing.
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

19 years agoDon't provide printf_fast, printf_fast_f and printf_tiny on architectures
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

19 years ago* device/lib/sincosf.c (sincosf): don't invert bit/bool by ~
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

19 years agoAdded printf_fast_f. Same as printf_fast, but with floating point enabled
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

19 years agoAdded mcs51 assembly float lib functions (add, sub, mul, div
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

19 years agoAdded mcs51 assembly versions for the 12 float/integer conversion functions.
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

19 years agoImprovements to float support in printf_fast
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

19 years ago* sim/ucsim/avr.src/arith_inst.cc: fixed bug #1088372- savr is not
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

19 years agoOpps, update build so printf_tiny is actually part of the library.
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

19 years agoAdded printf_tiny (minimal but useful printing in only 267 bytes)
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

19 years ago* src/pic16/pcode.c: declaring variables other than at the start of a
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

19 years ago* applied a previous patch from Raphael Neider that wasn't included
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

19 years ago* src/pic16/gen.c (pic16_aopGet): applied fix from Raphael Neider
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