Large cummulative patch for pic16 port.
authorvrokas <vrokas@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Wed, 24 Nov 2004 00:20:50 +0000 (00:20 +0000)
committervrokas <vrokas@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Wed, 24 Nov 2004 00:20:50 +0000 (00:20 +0000)
commit4e39e662bca4e52121166ee8f3b8dae33eb568d6
treeae5b2423c462c155060ddc270ffbe2694db4b20f
parent18f9df0efdfae5e5fd861a5c9434aeb0920ad345
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
86 files changed:
ChangeLog
device/include/pic16/adc.h [new file with mode: 0644]
device/include/pic16/gstack.h [new file with mode: 0644]
device/include/pic16/malloc.h
device/include/pic16/pic18f242.h
device/include/pic16/pic18f252.h
device/include/pic16/pic18f442.h
device/include/pic16/pic18f452.h
device/lib/pic16/libc/Makefile [new file with mode: 0644]
device/lib/pic16/libc/Makefile.rules [new file with mode: 0644]
device/lib/pic16/libc/ctype/Makefile [new file with mode: 0644]
device/lib/pic16/libc/ctype/iscntrl.c [new file with mode: 0644]
device/lib/pic16/libc/ctype/isdigit.c [new file with mode: 0644]
device/lib/pic16/libc/ctype/isgraph.c [new file with mode: 0644]
device/lib/pic16/libc/ctype/islower.c [new file with mode: 0644]
device/lib/pic16/libc/ctype/isprint.c [new file with mode: 0644]
device/lib/pic16/libc/ctype/ispunct.c [new file with mode: 0644]
device/lib/pic16/libc/ctype/isspace.c [new file with mode: 0644]
device/lib/pic16/libc/ctype/isupper.c [new file with mode: 0644]
device/lib/pic16/libc/ctype/isxdigit.c [new file with mode: 0644]
device/lib/pic16/libc/stdlib/Makefile [new file with mode: 0644]
device/lib/pic16/libc/stdlib/atof.c [new file with mode: 0644]
device/lib/pic16/libc/stdlib/atoi.c [new file with mode: 0644]
device/lib/pic16/libc/stdlib/atol.c [new file with mode: 0644]
device/lib/pic16/libc/stdlib/calloc.c [new file with mode: 0644]
device/lib/pic16/libc/stdlib/free.c [new file with mode: 0644]
device/lib/pic16/libc/stdlib/ltoa.c [new file with mode: 0644]
device/lib/pic16/libc/stdlib/malloc.c [new file with mode: 0644]
device/lib/pic16/libc/stdlib/realloc.c [new file with mode: 0644]
device/lib/pic16/libc/string/Makefile [new file with mode: 0644]
device/lib/pic16/libc/string/memccpy.c [new file with mode: 0644]
device/lib/pic16/libc/string/memchr.c [new file with mode: 0644]
device/lib/pic16/libc/string/memchrpgm.c [new file with mode: 0644]
device/lib/pic16/libc/string/memchrram.c [new file with mode: 0644]
device/lib/pic16/libc/string/memcmp.c [new file with mode: 0644]
device/lib/pic16/libc/string/memcpy.c [new file with mode: 0644]
device/lib/pic16/libc/string/memcpypgm2ram.c [new file with mode: 0644]
device/lib/pic16/libc/string/memcpyram2ram.c [new file with mode: 0644]
device/lib/pic16/libc/string/memmove.c [new file with mode: 0644]
device/lib/pic16/libc/string/memrchr.c [new file with mode: 0644]
device/lib/pic16/libc/string/memset.c [new file with mode: 0644]
device/lib/pic16/libc/string/strcat.c [new file with mode: 0644]
device/lib/pic16/libc/string/strchr.c [new file with mode: 0644]
device/lib/pic16/libc/string/strcmp.c [new file with mode: 0644]
device/lib/pic16/libc/string/strcpy.c [new file with mode: 0644]
device/lib/pic16/libc/string/strcspn.c [new file with mode: 0644]
device/lib/pic16/libc/string/strlen.c [new file with mode: 0644]
device/lib/pic16/libc/string/strlwr.c [new file with mode: 0644]
device/lib/pic16/libc/string/strncat.c [new file with mode: 0644]
device/lib/pic16/libc/string/strncmp.c [new file with mode: 0644]
device/lib/pic16/libc/string/strncpy.c [new file with mode: 0644]
device/lib/pic16/libc/string/strpbrk.c [new file with mode: 0644]
device/lib/pic16/libc/string/strrchr.c [new file with mode: 0644]
device/lib/pic16/libc/string/strspn.c [new file with mode: 0644]
device/lib/pic16/libc/string/strstr.c [new file with mode: 0644]
device/lib/pic16/libc/string/strtok.c [new file with mode: 0644]
device/lib/pic16/libc/string/strupr.c [new file with mode: 0644]
device/lib/pic16/libdev/pic18f242.c
device/lib/pic16/libdev/pic18f252.c
device/lib/pic16/libdev/pic18f442.c
device/lib/pic16/libdev/pic18f452.c
device/lib/pic16/libio/Makefile [new file with mode: 0644]
device/lib/pic16/libio/Makefile.rules [new file with mode: 0644]
device/lib/pic16/libio/adc/Makefile [new file with mode: 0644]
device/lib/pic16/libio/adc/adcbusy.c [new file with mode: 0644]
device/lib/pic16/libio/adc/adcclose.c [new file with mode: 0644]
device/lib/pic16/libio/adc/adcconv.c [new file with mode: 0644]
device/lib/pic16/libio/adc/adcopen.c [new file with mode: 0644]
device/lib/pic16/libio/adc/adcread.c [new file with mode: 0644]
device/lib/pic16/libio/adc/adcsetch.c [new file with mode: 0644]
device/lib/pic16/libsdcc/Makefile
device/lib/pic16/libsdcc/char/divschar.c
device/lib/pic16/libsdcc/char/divuchar.c
device/lib/pic16/libsdcc/char/modschar.c
device/lib/pic16/libsdcc/float/Makefile
src/pic16/gen.c
src/pic16/gen.h
src/pic16/genarith.c
src/pic16/glue.c
src/pic16/main.c
src/pic16/pcode.c
src/pic16/pcode.h
src/pic16/pcodepeep.c
src/pic16/pcoderegs.c
src/pic16/peeph.def
src/pic16/ralloc.c