* src/version.awk: adapted for svn
* /asxxxx/asxhtml/*.gif: set property svn:mime-type to image/gif
sim/ucsim/doc/*.gif: set property svn:mime-type to image/gif
sim/ucsim/doc/*.jpg: set property svn:mime-type to image/jpeg
/binutils-avr/etc/*.vi, *.jin: removed all properties
support/scripts/sdcc.ico: set property svn:mime-type to image/x-icon
* support/regression/collate-results.py: fixed output in case of a valdiag error
* support/regression/generate-cases.py: fixed splitting of pathnames with dots
* as/hc08/lklibr.c,
* as/mcs51/lklibr.c (addfile): fixed off-by-one bug
* device/lib/pic/libdev/*.c,
* device/include/pic/*.h: replaced sfr and data with __sfr and __data,
fixes #1468739, enables compilation in --std-c99 mode
* support/scripts/inc2h.pl: emit __sfr/__data instead of sfr/data
* src/pic/device.c (find_device): removed debug output
(list_valid_pics): enabled verbose listing of supported devices
* device/include/stdbool.h: define bool as char for pic14/16 as well
* .version: bumped version to 2.5.6 (pic14 ABI changed)
* src/SDCCmain.c: add -DSDCC_PROCESSOR=<id> for pic14 port
* src/pic/glue.c (emitSymbolToFile,pic14_constructAbsMap,
pic14emitRegularMap,pic14emitMaps): moved output for absolute symbols to
pic14_constructAbsMap
(pic14printPublics): declare absolute global symbols as global
(pic14createInterruptVect),
* src/pic/ralloc.c (IS_CONFIG_ADDRESS): support second config word,
(newReg): assume new registers unused, use correct name in
hashtable (reg->name instead of name), more debugLog output
* src/pic/device.h (PIC_device): added fields for verbose output
* src/pic/device.c: moved device definition to pic14devices.txt,
added routines for runtime parsing of pic14devices.txt,
added support for second config word
* src/pic/main.c (_process_pragma): removed #pragma maxram,
(_pic14_keywords): no longer accept "bit" and "sbit" keywords
(_pic14_initPaths): add search paths with "pic" suffix (not "pic14")
(_pic14_parseOptions): moved pCodeInitRegisters here
(_pic14_do_link): add "pic$(ARCH).lib" to linker arguments
* src/pic/pcode.c (AnalyzeBanking): bail out on unset processor,
(pCodeInitRegisters): rewrapped comments, perpared new approach to
handling the pseudo stack
* device/lib/Makefile.in: ignore failures in objects-pic16,
* device/lib/pic/{configure,configure.in,Makefile}: added libdev/
* device/lib/pic/NEWS: document new dependency on picXXX.lib
* device/lib/pic/Makefile.subdir,
* device/lib/pic16/Makefile.subdir: improved clean rules
* device/lib/pic/libdev/: NEW, pic14 device libraries
* device/lib/pic/libsdcc/_gptr{get,put}{1,2,3,4}.S: use _X not X
* device/lib/pic/libsdcc/macros.inc: use _X not X, declare default SFRs
* device/include/Makefile.in: create subdir and install pic14 headers
* device/include/pic/p16f_common.inc: removed unused declarations
* device/include/pic/pic16*.h: added header files for 100+ 14 bit
PICs from inc2h.pl v1.6,
replaced BIT_AT macros with struct declarations
* device/include/pic/pic14devices.txt: definition of supported devices,
all above improvements contributed by Zik Saleeba, thanks
* support/scripts/inc2h.pl: removed BIT_AT, replaced with structs
* support/scripts/sdcc.nsi: also install pic14 device libraries and
headers
* device/include/mcs51/c8051f410.h: added interrupt numbers,
* device/include/mcs51/c8051f200.h: old SiLabs mcu completes the list,
thanks to Charles Olds
* src/SDCCpeeph.c (labelIsReturnOnly): fixed bug 1464657
* src/mcs51/gen.c (genJumpTab): fixed bug in medium model
* support/regression/bug1464657.c: added, new test
* src/SDCCpeeph.c (initPeepHole): implemented RFE 1460196, when both
--no-peep and --peep-file <file> are used don't use default rules but
do use the <file>
maartenbrock [Fri, 24 Mar 2006 15:27:11 +0000 (15:27 +0000)]
* src/z80/gen.c (genFunction, genEndFunction): fixed bug 1160666,
implemented patch 1120823 Thanks to Willy De la Court (normal
interrupts need an interrupt number now if they are made critical),
and enabled nesting of critical functions though not for gbz80
(genCritical, genEndCritical): added functions
(genZ80Code): added cases for CRITICAL and ENDCRITICAL
* src/z80/mappings.i: added "ei" to all mappings
frief [Mon, 20 Mar 2006 08:17:46 +0000 (08:17 +0000)]
applied patch fixing GCC 4.1 build submitted by the Debian SDCC maintainer Aurelien Jarno:
"Credits goes to Martin Michlmayr, who rebuilt the whole Debian archive with gcc 4.1 on mips and wrote the patch"
tecodev [Thu, 16 Mar 2006 09:32:20 +0000 (09:32 +0000)]
* src/pic16/genarith.c (genAddLit): simplified and fixed case where
the left operand is shorter than the result (c* = lit-c* + int),
fixes bug #1450796
* src/pic16/gen.c (genRightShift): check IS_SYMOP before accessing
OP_SYMBOL
vrokas [Wed, 15 Mar 2006 00:43:05 +0000 (00:43 +0000)]
* src/SDCCmain.c (linkEdit): do not test for PIC16 target since, PIC16
linking is done manually in pic16 port's _linkEdit,
* src/SDCCsymt.c (compStructSize): for target PIC16 and shell variable
PIC16_PACKED_BITFIELDS, compact bitfield structures as much as possible,
* src/pic16/gen.c (aopForSym): when direct register name is WREG then
allocate asmop as AOP_ACC,
(aopForRemat): added parameter 'bool result' in function declaration,
(pic16_aopGet): return AOP_ACC when accessing WREG,
(pic16_popGetTempReg): minor modification,
(pic16_popRegFromIdx): first try with 'pic16_regWithIdx' then with
'pic16_allocWithIdx',
(genPcall): removed ftype, usage of OP_SYM_TYPE asserted error when
calling function in absolute addresses,
(genAssign): take into account AOP_ACC asmop,
* src/pic16/pcode.c (pic16_newpCodeOpReg): minor modifications,
* src/pic16/pcoderegs.c: some debug functions and lines added,
* src/pic16/ralloc.c (decodeRegType): added but commented out,
* (pic16_typeRegWithIdx): search 'pic16_dynInternalRegs' for given
register too,
* (pic16_findFreeReg, pic16_findFreeRegNext): allocate new register via
call to allocReg, not by manually allocating a new one,
(pic16_assignRegisters): now before going through the register
allocating functions mark all registers as free. This eliminates some
side effects resulting from peephole parser done earlier in the backbone
maartenbrock [Fri, 10 Mar 2006 15:57:12 +0000 (15:57 +0000)]
* src/mcs51/gen.c (sameReg): new, checks if two aop regs are the same,
(genSend): bugfix, do not allocate and free twice,
(shiftRLong): handle partially overlapping aops
* support/regression/tests/bitopcse.c: fixed warning redefined idata
maartenbrock [Wed, 8 Mar 2006 16:42:33 +0000 (16:42 +0000)]
* support/regression/tests/bug1409955.c: new, added
* src/mcs51/gen.h: changed asmop.freed:1 to asmop.allocated for tracking
* src/mcs51/gen.c (newAsmop): set asmop.allocated to 1,
(aopForSym, aopOp): increment asmop.allocated if reused,
(freeAsmop): decrement asmop.allocated and check for zero instead of
using asmop.freed,
(freeForBranchAsmop): use asmop.allocated instead of asmop.freed,
(genNot, genCpl, genUminus, genMinus, genMult, genDiv, genMod, genCmpGt,
genCmpLt, genAndOp, genOrOp, genAnd, genOr, genXor, genRRC, genRLC,
genGetHbit, genGetAbit, genGetByte, genGetWord, genSwap,
genLeftShiftLiteral, genLeftShift, genRightShiftLiteral,
genSignedRightShift, genRightShift, genDataPointerGet,
genPagedPointerGet, genFarPointerGet, genCodePointerGet,
genGenPointerGet, genDataPointerSet, genAssign, genCast): free asmop's
in reverse order from allocation,
(genPlus, genCmpEq): free asmop's in reverse order from allocation and
added swappedLR to keep track
* support/regression/fwk/include/testfwk.h: added defines for xdata, idata,
pdata & code for GCC, z80, gbz80 & hc08
* support/regression/tests/zeropad.c: moved defines to testfwk.h
maartenbrock [Tue, 7 Mar 2006 13:09:37 +0000 (13:09 +0000)]
* device/include/mcs51/c8051f410.h: new SiLabs mcu
* src/ds390/peeph.def: disabled 186.d and 227.a as fix for #1434401
* support/regression/tests/array.c: added parenthesis, made arrays unsigned
vrokas [Mon, 6 Mar 2006 08:27:52 +0000 (08:27 +0000)]
* src/pic16/device.h (struct pic16_options_t): added 'int CATregs' flag
which dumps before the function entry point a data byte which represents
the number of the local variables used by the specified function, added
'xinst' for initial support for Extended Instruction Support,
* src/pic16/gen.c (aopForSym, pic16_aopGet): beautifications,
(pic16_testStackOverflow): do not prefix GSTACK_TEST_NAME with
port->fun_prefix anymore (may change later),
(genFunction, genEndFunction): do not store/restore local registers for
_main (this should take care the --main-return command line option in
the future),
(genOr): removed some legacy pic-port instructions,
* src/pic16/genarith.c (genAddLit): re-enabled old code because
performing operations with SFR's causes data to be written more than
once to each SFR. Perhaps SFRs should be handled in special cases...
* src/pic16/glue.c: macros BIG_ENDIAN and BYTE_IN_LONG are moved to
pcode.h
* src/pic16/main.c (_process_pragma): stack bound checking did not take
into account for stack starting position,
(struct OPTIONS pic16_optionsTable): added command line argument
--extended or -y for Extended Instruction Support,
* src/pic16/ralloc.c (pic16_decodeOp): added case for FUNCTION,
(deassignLRs): *** perhaps the most important change, old 'for' code
(comented out for reference), didn't account for some registers which
were left marked 'not free' after a pointer operation. The change
reduces register usage a lot in some cases
borutr [Sat, 4 Mar 2006 23:41:54 +0000 (23:41 +0000)]
* support/regression/ports/hc08/spec.mk: remove *.asm in traget _clean
* support/regression/tests/bug-524697.c: decreased array size for
mcs51 to fit into the internal RAM
* support/regression/Makefile.in: a little bit more verbose
tecodev [Thu, 2 Mar 2006 16:30:48 +0000 (16:30 +0000)]
* src/pic16/gen.c (genPcall,pic16_derefPtr,genGenPointerGet,
genConstPointerGet): use safe way of generating MOVFF to cover
literals as well as registers, fixes bug #1440527
* src/pic16/glue.c (pic16_printIvalBitFields): prevent NULL pointer
dereference
(pic16_printIvalUnion,pic16_isUnion): NEW, handle initialized unions
more correctly, fixes bug #1232186
(pic16_printIval): use pic16_printIvalUnion() for initialized unions
* src/pic16/main.c (_pic16_linkEdit): reorder linker arguments to make
gplink guess the correct processor in more cases, applied patch
from Till Riedel attached to and fixing bug #1436552
maartenbrock [Thu, 16 Feb 2006 11:11:51 +0000 (11:11 +0000)]
* device/include/mcs51/at89s8253.h: new, thanks to Krzysztof Polomka
* device/include/mcs51/at89S8252.h: fixed, thanks to Krzysztof Polomka
* device/include/mcs51/c8051f326.h,
* device/include/mcs51/c8051f340.h: new SiLabs mcu's
* device/include/mcs51/c8051f000.h,
* device/include/mcs51/c8051f018.h,
* device/include/mcs51/c8051f020.h: used () with __at, renamed IDLE,STOP to
PCON_IDLE,PCON_STOP and added sfr16 definitions
maartenbrock [Mon, 13 Feb 2006 22:48:50 +0000 (22:48 +0000)]
* src/SDCCast.c (constExprValue): return NULL if not a value
* src/SDCCglue.c (printIvalArray): fixed bug 1225568
* src/hc08/gen.c(genUnpackBits, genUnpackBitsImmed): fixed bug 1019480
* support/regression/tests/bitfields.c: enabled signed bitfield for all
maartenbrock [Fri, 10 Feb 2006 13:37:25 +0000 (13:37 +0000)]
* device/include/mcs51/at89c51snd1c.h: updated comments, see patch 1428901
* device/include/mcs51/c8051f330.h,
* device/include/mcs51/c8051f350.h: used () with __at, renamed IDLE,STOP to
PCON_IDLE,PCON_STOP and added sfr16 definitions
* device/lib/_divsint.c,
* device/lib/_divuint.c,
* device/lib/_divulong.c,
* device/lib/_divulong.c: renamed a,b to x,y to avoid confusion, fixed
register bank bug for small stackauto
maartenbrock [Wed, 8 Feb 2006 22:23:29 +0000 (22:23 +0000)]
* support/regression/ports/mcs51-xstack-auto/spec.mk: forgot -I(...)/mcs51
* all.dsp: corrected several bin paths
* device/include/mcs51/c8051f120.h,
* device/include/mcs51/c8051f300.h,
* device/include/mcs51/c8051f310.h: used () with __at and renamed IDLE,STOP
to PCON_IDLE,PCON_STOP
* device/include/mcs51/c8051f320.h: see above, also added sfr16 definitions
* device/lib/printf_large.c (output_float): fixed bug 1388703
* support/regression/tests/bug1057979.c: added test for bug 1388703
tecodev [Wed, 8 Feb 2006 18:32:55 +0000 (18:32 +0000)]
* src/pic/pcode.c (pciTRIS): fixed typo,
(BuildFlow,LinkFlow_pCode): added (disabled) debug output,
(LinkFlow): fixed handling of flows that end in a call,
(ReuseReg): perform safety check earlier
* src/pic/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed
to work with flows at the beginning of a pBlock,
fixes #1426557 (Symbol not previously defined),
(pic14_ReMapLiveRanges): NEW, destroy and rebuild register
usage information
(RemoveUnusedRegisters): update register usage info
* src/pic/ralloc.c (newReg): prevent duplicate registers from being
created, reuse existing ones instead
* src/pic/gen.c (genPcall): fixed #1424719
bernhardheld [Fri, 27 Jan 2006 21:38:09 +0000 (21:38 +0000)]
* src/SDCC.y: fixed bug #716242, exchanged pointer and function declarator in the symbol chain
* src/SDCCsymt.h,
* src/SDCCsymt.c (processFuncPtrArgs): added, removes "(void)" parameter list for function pointers
* src/SDCCast.c (decorateType): added call of processFuncPtrArgs()
* support/regression/tests/bug-716242.c: added
bernhardheld [Sat, 31 Dec 2005 15:22:55 +0000 (15:22 +0000)]
* src/SDCCval.c (cheapestVal): beautified
(valNot): ANSI: result type is int (SDCC: unsigned char)
* support/regression/tests/onebyte.c: added promotion and signedness tests for unary minus
* support/regression/tests/not.c: added
bernhardheld [Sat, 31 Dec 2005 13:17:32 +0000 (13:17 +0000)]
* src/SDCCast.c (decorateType): fix promotion of unary minus
* src/SDCCsymt.c (computeType): beautified
* src/SDCCval.c (cheapestVal): beautified, old non-Ansi version removed,
(valUnaryPM, valComplement, valNot): fix sign and promotion
* support/regression/tests/uminus.c: speedup by removing superflous test case 'int'
* support/regression/tests/onebyte.c: added promotion and signedness tests for unary minus
* support/regressions/tests/bug-477927.c: disable warning about uninitialized variables
bernhardheld [Wed, 28 Dec 2005 22:01:43 +0000 (22:01 +0000)]
* src/mcs51/gen.c (gen51Code): show final register usage after fillGaps in asm with --i-code-in-asm
* src/SDCClrange.c (sequenceiCode, setLiveFrom, setLiveTo, markLiveRanges, markAlive, findNextUseSym, findNextUse, unvisitBlocks, incUsed, rliveClear, adjustIChain): made static,
(setFromRange): excluded because it's unused,
(findPrevUseSym, markWholeLoop): added,
(findPrevUse): rewritten; fixes bug 895992; now a complete search through all branches of predecessors enables sdcc to emit the warning W_LOCAL_NOINIT, marking of outermost loop was incomplete,
(rlivePoint): made static, added parameter emitWarnings which is only true during the first run out of two,
(findRecursiveSucc, findRecursivePred): removed,
(computeLiveRanges): made static, added parameter emitWarnings,
(dumpIcRlive): added for debugging only
* src/SDCClrange.h: added boolean parameter to computeLiveRanges(), removed prototype of setFromRange()
* src/SDCCopt.c (eBBlockFromiCode): added new parameter emitWarnings in call of computeLiveRanges()
* support/regression/tests/bug-895992.c: added
* support/regression/tests/bug-971834.c: added
* support/valdiag/tests/bug-895992.c: added
* support/valdiag/tests/bug-971834.c: added
tecodev [Sun, 18 Dec 2005 14:51:13 +0000 (14:51 +0000)]
* src/pic16/gen.c: added IS_DIRECT macro for "direct" operands,
(genUnpackBits): improved code for direct operands,
(genPackBits): improved code for literal assignment to bitfields
and for direct destination operands (no FSR indirection),
prevented redundant AND, fixes #1362800,
(AccLsh): added parameter to disable masking of the result
* src/pic16/pcode.c (pic16_safepCodeUnlink): fixed to work with
skip instructions with side-effects (like incfsz),
(pic16_pCodeIsAlive): suppress verbose output unless pcode_verbose,
* src/pic16/pcoderegs.c (RemoveRegsFromSet): removed annoying warning
* device/lib/pic16/Makefile.common.in: added --asm=@GPASM@ to CC,
fixes #1375263
maartenbrock [Wed, 7 Dec 2005 12:49:32 +0000 (12:49 +0000)]
* device/lib/Makefile.in: fixed to enable port-specific-objects
* device/lib/ds390/i2c390.c (BitOutI2C): optimized by making bout unsigned
char, thanks Hubert Sack
* doc/sdccman.lyx: documented --xstack-loc,
elaborated a bit more on interrupts and pitfalls,
removed "setjmp/longjmp unsupported",
documented some unsupported C99 features
* src/SDCCmain.c (linkEdit): adapted default lib path for --stack-auto
* src/SDCCpeeph.c (readRules): inserted patch 1367130 for finding missing
if, thanks Hubert Sack
* src/mcs51/gen.c (genEndFunction): enabled "pop psw" for regbank 0 isr
* support/regression/Makefile.in: test-mcs51-stack-auto no longer needs to
make make_library
* support/regression/get_ticks.py: new, get cpu cycles and code size, so
regression tests can report resource usage (rfe 700441)
* support/regression/collate-results.py: report resource usage
* support/regression/ports/ds390/spec.mk,
* support/regression/ports/hc08/spec.mk,
* support/regression/ports/mcs51/spec.mk,
* support/regression/ports/ucz80/spec.mk: run sim output through get_ticks
* support/regression/ports/ds390/uCsim.cmd,
* support/regression/ports/hc08/uCsim.cmd,
* support/regression/ports/mcs51/uCsim.cmd,
* support/regression/ports/ucz80/uCsim.cmd: inserted "state" to report time
* support/regression/ports/mcs51-stack-auto/spec.mk: no need to build the
library, use the default one
* support/regression/ports/mcs51-xstack-auto/spec.mk: inserted rules for
building the library