]> git.gag.com Git - fw/sdcc/log
fw/sdcc
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

19 years ago* src/SDCCast.c (gatherAutoInit): allow pic16 to emit static
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

19 years ago* src/ds390/gen.c (genCpl): fixed bit=~(char/bit) bugs, added warning
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

19 years ago* device/include/sdcc-lib.h: inserted LGPL, added includes
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

19 years ago* src/SDCCloop.c (basicInduction, loopInduction): fixed several
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

19 years ago* applied patch from bug-report #1076292,
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

19 years ago* src/mcs51/peeph.def: added 261.a,b (16 bit rotate) by Stas Sergeev <stsp AT users...
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

19 years agoadded 261.a,b (16 bit rotate) by Stas Sergeev <stsp AT users.sourceforge.net> with...
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

19 years agoadded (ds390 skips some test cases)
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

19 years ago* src/z80/gen.c (genLeftShift, genRightShift): fixed second part of
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

19 years agoPIC14 port - Fixed a problem where banksel was not being inserted.
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

19 years agoFixed a problem where banksel was not being inserted.
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

19 years ago* src/SDCCpeeph.c (callFuncByName): support combined peephole rule
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

19 years agosrc/mcs51/peeph.def: fixed bug #1076940
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

19 years agofixed bug #1076940
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

19 years agoAdded a header file for PIC16F877 device.
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

19 years agoAdded a header file for PIC16F877 device.
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

19 years agocorrected date in Changelog
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

19 years agoAdding support for replacing ljmps with sjmps in jumptables
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

19 years agoadded peephole conditional labelJTInRange. For now you need to set the environment...
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

19 years agoadapted constants for switch table generation
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

19 years ago* device/lib/printf_large.c (calculate_digit): removed optimization for octal and...
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

19 years ago* device/lib/printf_large.c (_print_format): fixed bug 1073386,
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

19 years ago* src/pic16/pcode.c: fixed bug which may produce error in non-GNU
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

19 years ago2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
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

19 years ago* src/pic16/device.h,
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

19 years agoLarge cummulative patch for pic16 port.
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

19 years ago* src/hc08/gen.c (genAssign, genPointerGetSetOfs, genDataPointerGet,
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

19 years ago* src/SDCCmain.c (parseCmdLine, optionsTable[]): fixed bug with
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

19 years ago* device/lib/_gptrget.c (_gptrget),
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

19 years ago_naked allows to use ret instead of sjmp to ret
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

19 years agoadded peepholes 3.d-g and 177.g,h provided by anonymous in RFE #1067986, thanks
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

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

19 years ago* support/regression/ports/ucz80/spec.mk: use include and lib files from
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

20 years ago* src/mcs51/gen.c (toBoolean): fixed bug 1065458
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

20 years ago* src/z80/gen.c (genFunction, genEndFunction): avoided generating
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

20 years ago* src/SDCCmain.c (linkEdit): don't suppress crt0 if --nostdlib is used
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

20 years agoPIC14 - Added support to generate code for struct bit fields.
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

20 years agoAdded support to generate code for struct bit fields.
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

20 years ago* Added support/regression/tests/bug1057979.c
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

20 years ago* as/xa51/xa_version.h,
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

20 years ago* initial revision, PIC16 C Library headers
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

20 years ago* initial import, various character functions
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

20 years ago* device/examples/ds390/ow390/ad26.h,
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

20 years ago2004-11-04 Vangelis Rokas <vrokas AT otenet.gr>
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

20 years ago* doc/sdccman.lyx: updated SDCC version,
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

20 years agoPIC ports - fixed inefficient code produced when compiling a complimented bit operation.
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

20 years agofixed inefficient code for compiling complimented bit.
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

20 years agotidied it up a little.
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

20 years agosrc/mcs51/peeph.def: disabled 259.a,b for removing redundant ret, thanks to Martin...
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

20 years agoremoved 259.a,b. See comment at peephole 259.a
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

20 years ago single step withou run, disassemble of
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

20 years ago* src/SDCCast.c (reverseParms): fixed bug #1040577 (part 2)
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

20 years agoPeephole 256.c,d zeroing data from accumulator after jnz comparison
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

20 years agozeroing data from acculator after jnz comparison
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

20 years ago* device/lib/ser_ir_cts_rts.c: integer promotion caused a call to the
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

20 years agoadded 259.a,b for removing redundant ret
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

20 years agoadded option -t for rsync, (this has little effect as a cvs checkout usually spoils...
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

20 years agointeger promotion caused a call to the non-reentrant function __modsint in the interrupt
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

20 years ago* src/SDCCast.h (struct ast),
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

20 years ago* support/scripts/sdcc.nsi: added include/pic16/*.h to the setup package
borutr [Wed, 20 Oct 2004 21:05:47 +0000 (21:05 +0000)]
* support/scripts/sdcc.nsi: added include/pic16/*.h to the setup package

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

20 years ago* device/lib/pic16/libsdcc/Makefile: added lregs directory in
vrokas [Wed, 20 Oct 2004 14:02:16 +0000 (14:02 +0000)]
* device/lib/pic16/libsdcc/Makefile: added lregs directory in
makefile targets,
* device/lib/pic16/libsdcc/lregs/{Makefile,lrst.c,lrrest.c}: NEW
support functions to replace long sequences of MOVFF's from access
bank registers to stack and vice versa,
* src/pic16/device.h: added new field opt_flags, where optimization
flags can be set to enable certain features,
* src/pic16/gen.c (pic16_emitpinfo): NEW to add PC_INFO pCode in
* pBlock, (genFunction, genEndFunction): surroung loop for
saving/loading used registers in stack with PC_INFO pCodes,
INF_LREGS. Code in between can then be optimized by pCode optimizer
to support function calls,
* (genDataPointerSet): fixed bug which loaded float fields in
structures with corrupt data,
* src/pic16/genutils.c (debugf, _debugf): macro/function which emits
in a standard way debug info on stderr. Feature used for developing
and debugging only,
* src/pic16/glue.c (pic16glue): reformatted, deleted some old and
obsolete chunks of code,
* if optimization flag OF_LR_SUPPORT was set, call pic16_OptimizeLocalRegs,
* src/pic16/main.c (_pic16_parseOptions): added handler for --flr-support,
* pic16/src/pcode.c (pic16_newpCodeInfo,
* (pic16_newpCodeOpLocalRegs),
* (pic16_convertLocalRegs2Support): NEW, to support new optimization
feature,
* (pic16_pCodeConstString): printing of the initial value of a
symbol as a comment is inhibited since parsing was already done by
copyStr and output is corrupt,
* (pic16_pCode2str, genericPrint): handle PC_INFO pCode,

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

20 years ago* src/mcs51/ralloc.c (packRegisters): fixed bug #1044601
epetrich [Wed, 20 Oct 2004 04:50:40 +0000 (04:50 +0000)]
* src/mcs51/ralloc.c (packRegisters): fixed bug #1044601

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

20 years ago* as/mcs51/lkarea.c: removed old K&R style,
maartenbrock [Tue, 19 Oct 2004 11:10:37 +0000 (11:10 +0000)]
* as/mcs51/lkarea.c: removed old K&R style,
  (lnksect): changed check on boundary error,
  (lnksect2): changed check on boundary error,
  (lnksect2): extend XSTK to end of page if size = 1
* as/mcs51/lkmain.c: removed old K&R style,
  (Areas51): create l_IRAM symbol
* as/mcs51/lkmem.c (summary2): added report on PSEG and XSTK
* device/lib/Makefile.in: renamed model-mcs51-reentrant to
  model-mcs51-stack-auto, added model-mcs51-xstack-auto
* device/lib/_mullong.c: added version to be compiled with xstack
* device/lib/mcs51/crtclear.asm: clear only upto --iram-size
* device/lib/mcs51/crtxclear.asm: clear pdata as well
* device/lib/mcs51/crtxstack.asm: fixed comment
* src/SDCCglue.c: maxInterrupts defaults to 0,
  (emitMaps): added pdata,
  (createInterruptVect): (re)moved default,
  (glue): added pdata,
  (glue): moved __start__xstack to XSTK with default size 1
* src/SDCCmain.c (parseCmdLine): automatically set options.intlong_rent
  and options.float_rent when options.stackAuto is set,
  (linkEdit): only write XDATA_NAME if provided on command line
* src/SDCCmem.h,
* src/SDCCmem.c: added pdata
* src/port.h: added pdata_name to PORT
* src/mcs51/gen.c (toBoolean): fixed for Acc use of aopGet,
  (saveRegisters, unsaveRegisters): removed usage of B,
  (genMinus): fixed accumulator clash,
  (genJumpTab): added comment, this needs another look
* src/mcs51/gen.c: added check for "B in use" paranoia,
  added pushB() and popB()
* src/mcs51/peeph.def: restart after 177.c so 177.a can get a second
  chance
* src/avr/main.c,
* src/ds390/main.c,
* src/hc08/main.c,
* src/mcs51/main.c,
* src/pic/main.c,
* src/pic16/main.c,
* src/xa51/main.c,
* src/z80/main.c: (reset_regparms) made void parameter explicit and
  added PSEG (PAG,XDATA) or NULL to port specifier
* src/ds390/main.c (_ds390_genIVT): moved implemented default in here
* src/mcs51/main.c (_mcs51_genIVT): moved implemented default in here,
  (_mcs51_genInitStartup): removed __start__xstack equ,
  (mcs51_port): moved xstack from XSEG (XDATA) to XSTK (PAG,XDATA)
* src/pic16/device.c (pic16_dump_usection, pic16_dump_isection),
* src/z80/gen.c (_rleAppend): fixed warnings
* support/regression/tests/zeropad.c: added pdata test
* .version: bumped to 2.4.6

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

20 years ago* support/scripts/sdcc.nsi: cross compiling of WIN32 setup.exe on Linux
borutr [Sun, 17 Oct 2004 09:40:03 +0000 (09:40 +0000)]
* support/scripts/sdcc.nsi: cross compiling of WIN32 setup.exe on Linux
as a part of nightly build

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

20 years ago2004-10-16 Vangelis Rokas <vrokas AT otenet.gr>
vrokas [Sat, 16 Oct 2004 14:48:33 +0000 (14:48 +0000)]
2004-10-16 Vangelis Rokas <vrokas AT otenet.gr>

* device/include/pic16/math.h: included sdcc-lib.h,
* device/lib/pic16/startup/crt*.c: startup function marked _naked
* src/pic16/gen.c (struct _G): added field useWreg, is set to 1 when
WREG holds the first byte function parameters,
* (aopForSym): take special case for symbols which are in FARSPACE
but in CODESPACE too,
* (assignResultValue): modified to take into account _G.useWreg,
* (genCall): don't use wreg for parameter passing when function is
declared as reentrant, too, added optimization INCF to stack
pointer when stack parameter count is 1,
* (genFunction, genEndFunction): refurnished and fixed to not using
wreg for passing parameters when function has varargs or is
reentrant, fixed bug with symbol name compare for generating
functions in absolute address,
* (pic16_storeForReturn): refurnished,
* (genCmp): began writing a new version of the function, not ready
yet, therefore it is disabled,
* (genAssign): do not read code memory when assigning a function to
a pointer function,
* src/pic16/glue.c (pic16emitStaticSeg): abSym->name is defined an
array of characters, not pointer,
* (pic16initialComments): in debug mode emit an .ident directive for
the assembler,
* (_process_pragma): emit a new warning type (internal to pic16)
when setting stack to default length, emit a similar warning when
placing a function at absolute address and address is not word aligned
* (_pic16_parseOptions): added 'return TRUE' statement,
* (_pic16_linkEdit): if compiling a source, then add the source's
file object, first in the list of objects to link,

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

20 years agocheck now pop stack result
mhelmling [Fri, 15 Oct 2004 04:37:19 +0000 (04:37 +0000)]
check now pop stack result

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

20 years agoPIC14 - modifications.
slade_rich [Wed, 13 Oct 2004 01:26:34 +0000 (01:26 +0000)]
PIC14 - modifications.

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

20 years agoincreased count on regUsedinRange to prevent unnecessary warning.
slade_rich [Wed, 13 Oct 2004 01:24:29 +0000 (01:24 +0000)]
increased count on regUsedinRange to prevent unnecessary warning.

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

20 years agoremoved VC warning.
slade_rich [Wed, 13 Oct 2004 01:23:50 +0000 (01:23 +0000)]
removed VC warning.

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

20 years agochanged comment.
slade_rich [Wed, 13 Oct 2004 01:23:24 +0000 (01:23 +0000)]
changed comment.

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

20 years ago* device/lib/pic16/libsdcc/gptr/gptrput[234].c: an external
vrokas [Tue, 12 Oct 2004 09:49:27 +0000 (09:49 +0000)]
* device/lib/pic16/libsdcc/gptr/gptrput[234].c: an external
reference to a deprecated symbol _GPTRREG was causing failure to
link. Thanks G. M. Gallant for the info.

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

20 years ago* device/lib/pic16/libsdcc/gptr/gptrput[234].c: an external
vrokas [Tue, 12 Oct 2004 09:48:19 +0000 (09:48 +0000)]
* device/lib/pic16/libsdcc/gptr/gptrput[234].c: an external
reference to a deprecated symbol _GPTRREG was causing failure to
link. Thanks G. M. Gallant for the info.
* src/pic16/*.dsp: added CR-LF at eol so MSVC can read them

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

20 years agofix of need_config bug
drdani [Tue, 12 Oct 2004 07:52:09 +0000 (07:52 +0000)]
fix of need_config bug

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

20 years agoPIC14 : Applied a code patch supplied by Paul Ashmore in comments for Bugs item ...
slade_rich [Tue, 12 Oct 2004 00:43:29 +0000 (00:43 +0000)]
PIC14 : Applied a code patch supplied by Paul Ashmore in comments for Bugs item #954788.

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

20 years agoApplied a code patch supplied by Paul Ashmore in comments for Bugs item #954788.
slade_rich [Tue, 12 Oct 2004 00:42:08 +0000 (00:42 +0000)]
Applied a code patch supplied by Paul Ashmore in comments for Bugs item #954788.

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

20 years ago* in genGenPointerSet forgot to use postdec1
vrokas [Sun, 10 Oct 2004 21:05:13 +0000 (21:05 +0000)]
* in genGenPointerSet forgot to use postdec1

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

20 years ago* minor corrections between previous commit
vrokas [Sun, 10 Oct 2004 21:02:46 +0000 (21:02 +0000)]
* minor corrections between previous commit

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

20 years ago* src/pic16/device.c (pic16_dump_gsection,
vrokas [Sun, 10 Oct 2004 20:50:36 +0000 (20:50 +0000)]
* src/pic16/device.c (pic16_dump_gsection,
* pic16_groupRegistersInSection): handle symbols declared to be in
access bank differently,
* src/pic16/gen.c (struct _G): added field resDirect,
* (aopForSym): if symbol on stack and iCode is '=' and result exists,
send values read from stack directly to result and don't allocate
temporary values,
* (pic16_sameRegs): fixed bug that allowed MOVFF to move between
same registers,
* (pic16_sameRegsOfs): NEW,
* (freeAsmop): if _G.resDirect is set then do not mark registers as
free because they were not allocated from temporary pool,
* pic16_popRegFromString): workaround to fix a problem with
allocating variables twice or never,
* (genGenPointerGet): using PRODL instead of FSR0H,
* (genGenPointerSet): using POSTDEC1 (that is a stack location)
instead of FSR0H,
* (genAssign): take advantage of the _G.resDirect flag,
* (genCast): around line 11844, use mov2f instead of directly
MOVFF'ing between operands to account for literal values,
* src/pic16/genutils.c: some new debug functions for gpsim have been
added,
* src/pic16/glue.c (pic16_printIvalType): fixed bug that initialized
float with integer part only,
* src/pic16/main.c (_process_pragma): handle pragma udata access to
place variables in access bank
* device/lib/pic16/libsdcc/gptr/gptr*.c: using BRA instead of GOTO,
updated sources to reflect recent changes in gen.c

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

20 years ago* src/pic16/device.c (pic16_dump_gsection,
vrokas [Sun, 10 Oct 2004 20:45:19 +0000 (20:45 +0000)]
* src/pic16/device.c (pic16_dump_gsection,
* pic16_groupRegistersInSection): handle symbols declared to be in
access bank differently,
* src/pic16/gen.c (struct _G): added field resDirect,
* (aopForSym): if symbol on stack and iCode is '=' and result exists,
send values read from stack directly to result and don't allocate
temporary values,
* (pic16_sameRegs): fixed bug that allowed MOVFF to move between
same registers,
* (pic16_sameRegsOfs): NEW,
* (freeAsmop): if _G.resDirect is set then do not mark registers as
free because they were not allocated from temporary pool,
* pic16_popRegFromString): workaround to fix a problem with
allocating variables twice or never,
* (genGenPointerGet): using PRODL instead of FSR0H,
* (genGenPointerSet): using POSTDEC1 (that is a stack location)
instead of FSR0H,
* (genAssign): take advantage of the _G.resDirect flag,
* (genCast): around line 11844, use mov2f instead of directly
MOVFF'ing between operands to account for literal values,
* src/pic16/genutils.c: some new debug functions for gpsim have been
added,
* src/pic16/glue.c (pic16_printIvalType): fixed bug that initialized
float with integer part only,
* src/pic16/main.c (_process_pragma): handle pragma udata access to
place variables in access bank
* device/lib/pic16/libsdcc/gptr/gptr*.c: using BRA instead of GOTO,
updated sources to reflect recent changes in gen.c

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

20 years ago* device/lib/pic16/libsdcc/Makefile.rules: fixed bug concerning
vrokas [Wed, 6 Oct 2004 01:07:12 +0000 (01:07 +0000)]
* device/lib/pic16/libsdcc/Makefile.rules: fixed bug concerning
sources that searched for headers in installation path, now the
device/include/pic16 is used,
* src/pic16/glue.c (pic16glue),
* src/pic16/pcode.c (pCode2str, genericPrint): don't print .file or
.line directives if not in debug mode, this suppresses assembler's
warnings for ignored directives

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

20 years ago* src/port.h: made reset_regparms prototype void parameter explicit.
maartenbrock [Tue, 5 Oct 2004 10:59:23 +0000 (10:59 +0000)]
* src/port.h: made reset_regparms prototype void parameter explicit.
* src/SDCCsymt.c (processFuncArgs): removed argument "func".
* src/mcs51/ralloc.c (packRegisters): new fix for bugs 898889 & 979599.
* doc/sdccman.lyx: documented warning disabling and how to use
  printf_large to make it print floats.
* device/include/stdbool.h: NEW
* device/lib/_atof.c,
* device/lib/_divuint.c,
* device/lib/_divulong.c,
* device/lib/expf.c,
* device/lib/printf_large.c,
* device/lib/sincosf.c,
* device/lib/sincoshf.c: used stdbool.h, all compile with stack-auto now
* device/lib/Makefile.in: added target for model-mcs51-reentrant to build
  a completely reentrant lib.

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

20 years ago* device/lib/pic16/libsdcc/gptr/gptr*.c: added return statements
vrokas [Tue, 5 Oct 2004 00:00:25 +0000 (00:00 +0000)]
* device/lib/pic16/libsdcc/gptr/gptr*.c: added return statements
* device/include/pic16/stdio.h: fixed bug with colon

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

20 years ago* device/include/pic16/math.h, stdarg.h, stdio.h, stdlib.h: minor mistakes
vrokas [Sun, 3 Oct 2004 12:12:40 +0000 (12:12 +0000)]
* device/include/pic16/math.h, stdarg.h, stdio.h, stdlib.h: minor mistakes
updated

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

20 years ago* device/include/pic16/stdio.h,
vrokas [Sun, 3 Oct 2004 12:05:16 +0000 (12:05 +0000)]
* device/include/pic16/stdio.h,
* device/include/pic16/stdlib.h,
* device/include/pic16/math.h: NEW
* device/lib/pic16/libsdcc/gptr/*.c (gptrget*, gptrput*): functions
declared as _naked to reduce overhead

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