* as/hc08/lkaomf51.c (OutputName): made name unsigned char,
[fw/sdcc] / ChangeLog
index 0264c0793a30fed7ddfd7d72c804eb22a0632036..89deffd7aa4fabc49be701d1d0d80512d804781e 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,418 @@
+2005-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * as/hc08/lkaomf51.c (OutputName): made name unsigned char,
+         (hex2dec): made hex_digit unsigned char, removed ascii dependance
+       * as/mcs51/lkaomf51.c (OutputName): made name unsigned char,
+         (hex2dec): made hex_digit unsigned char, removed ascii dependance
+       * as/mcs51/lkarea.c (lnkarea2): sort absolute areas to the front
+       * packihx/packihx.c (hexDigit): made c unsigned char
+       * as/mcs51/lklibr.c (fndsym),
+       * link/z80/lkgb.c (gb),
+       * link/z80/lklibr.c (fndsym),
+       * link/z80/lkrloc.c (relr),
+       * sim/ucsim/libltdl/ltdl.c (load_deplibs, try_dlopen),
+       * src/SDCC.lex (checkCurrFile, process_pragma),
+       * src/SDCCglue.c (spacesToUnderscores),
+       * src/SDCCmain.c (setParseWithComma, processFile),
+       * src/asm.c (tvsprintf, printCLine),
+       * src/avr/gen.c (emitcode, aopPut),
+       * src/ds390/gen.c (emitcode),
+       * src/hc08/gen.c (emitcode, emitinline),
+       * src/mcs51/gen.c (emitcode, genInline),
+       * src/pic/pcodepeep.c (cvt_extract_destination, cvt_extract_status,
+         tokenizeLineNode),
+       * src/pic/ralloc.c (debugLog),
+       * src/pic16/pcodepeep.c (cvt_extract_destination, cvt_extract_status,
+         tokenizeLineNode),
+       * src/pic16/ralloc.c (debugLog),
+       * src/z80/main.c (_process_pragma):
+          made all ctype.h function calls safe
+       * src/SDCCopt.c: include math.h for fabs
+       * src/SDCCpeeph.c: added macros ISCHARDIGIT, ISCHARSPACE and ISCHARALNUM
+         and used them throughout the code to make ctype.h function calls safe
+       * src/ds390/main.c (asmLineNodeFromLineNode),
+       * src/mcs51/main.c (asmLineNodeFromLineNode): made p unsigned char*
+       * src/pic/gen.c (DEBUGpic14_emitcode, pic14_emitcode): made lbp
+          unsigned char*
+       * src/pic/pcode.c (mnem2key): made mnem unsigned char*,
+         (newpCodeAsmDir): made ctype.h function calls safe
+       * src/pic16/gen.c (pic16_emitpcomment, DEBUGpic16_emitcode,
+         pic16_emitcode):  made lbp unsigned char*
+       * src/pic16/pcode.c (mnem2key): made mnem unsigned char*,
+         (pic16_newpCodeAsmDir): made ctype.h function calls safe
+       * src/xa51/gen.c (emitcode),
+       * src/z80/gen.c (_emit2): made lbp unsigned char*
+       * support/Util/MySystem.c (split_command): made cmd_line and p unsigned
+          char*
+
+2005-09-05 Raphael Neider <rneider AT web.de>
+
+       * src/pic16/ralloc.c (pic16_allocDirReg): use device specific
+         access bank splitpoint
+
+2005-09-05 Raphael Neider <rneider AT web.de>
+
+       * device/lib/pic16/libc/Makefile: added (missing) string to SUBDIRS
+
+2005-09-03 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * .version: changed to version 2.5.3
+       * doc/sdccman.lyx: changed version to 2.5.3,
+         documented --codeseg and --constseg and pragma codeseg and constseg,
+         documented bit parameters (reentrant) and bit returning
+       * src/SDCCicode.c (geniCodeReceive): fixed (possible) bug generating
+          currFunc->recvSize, but is this ok for all ports?
+         (ast2iCode): result of ~ on unsigned char must be cast to int for
+          bool to work
+       * src/SDCCmem.c (allocGlobal, allocLocal): don't put bit returning
+         function pointers in bit space
+       * src/SDCCsymt.c (checkSClass): allow bit returning function pointers,
+         (processFuncArgs): call port.reg_parm() with reentrancy info
+       * src/port.h,
+       * src/avr/main.c,
+       * src/ds390/main.c,
+       * src/hc08/main.c,
+       * src/pic/main.c,
+       * src/pic16/main.c,
+       * src/xa51/main.c,
+       * src/z80/main.c: port.reg_parm prototype extended with
+         "bool reentrant" parameter
+       * src/mcs51/main.c (_mcs51_regparm): use parameter reentrant instead of
+         options.stackAuto for allocating bit register parameters
+       * src/mcs51/gen.c (genNot): optimized complementing direct bit,
+         (genSend): set BitBankUsed if it is,
+         (selectRegBank): factored out of genCall for use in genPcall,
+         (genCall): removed redundant dtype assignmen, use selectRegBank,
+         (genPcall): handle returning in Carry properly, save in F0 if needed,
+         (genReceive): handle bit register parameters
+       * src/mcs51/ralloc.c (updateRegUsage): update BitBankUsed along the way,
+         (mcs51_assignRegisters): enable bit registers for all reentrant
+          functions and don't set BitBankUsed unconditionally
+       * src/mcs51/peeph.def (177.d): fixed bug if %2==%3
+       * support/regression/tests/bitvars.c: enable tests for SDCC_STACK_AUTO
+       * support/regression/tests/funptrs.c: added tests for BOOL and for return
+
+2005-08-27 Borut Razem <borut.razem AT siol.net>
+
+       * device/lib/Makefile.in: cp on sparc-solaris (SunOS) and on
+       ppc-osx (Darwin) does not support -u option. It seems that it is
+       supported only on Linux - GNU cp
+
+2005-08-25 Borut Razem <borut.razem AT siol.net>
+
+       * sim/ucsim/gui.src/serio.src/Makefile.in,
+         sim/ucsim/s51.src/Makefile.in, sim/ucsim/avr.src/Makefile.in,
+         sim/ucsim/z80.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
+         sim/ucsim/xa.src/Makefile.in: install -s changed to 2 steps:
+         install and strip, since the strip at /usr/ccs/bin should be used
+         on solaris
+
+2005-08-24 Borut Razem <borut.razem AT siol.net>
+
+       * clean.mk, device/lib/clean.mk: find on sparc-solaris does not support -maxdepth option
+
+2005-08-23 Bernhard Held <bernhard AT bernhardheld.de>
+
+       * src/SDCCopt.c (convertToFcall): fixed modulus with divisors 1 and
+       ffffffffu
+
+2005-08-23 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * as/mcs51/aslink.h: completed lkrloc.c prototypes
+       * as/mcs51/lkmain.c (link_main): fixed warning
+       * device/include/stdbool.h: ds390 has no advanced bit support yet
+       * src/SDCC.y: use SPEC_SHORT and renamed _signed to b_signed
+       * src/SDCCsymt.c: use SPEC_SHORT and renamed _signed to b_signed
+       * src/SDCCsymt.h (struct specifier): renamed _xxx bitfields to b_xxx
+         and updated their macros
+       * src/SDCCval.c (constVal): updated comment for renamed b_long
+
+2005-08-22 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * as/mcs51/asdata.c: changed ctype['['] to BINOP
+       * as/mcs51/asexpr.c (expr): added case '[' for bit access in bdata,
+         (term): abused bit 15 of s_addr to indicate bit-addressable bytes,
+         (oprio): set priority for '['
+       * as/mcs51/aslink.h: added define R_BIT, and prototypes for adb_bit
+          and adb_24_bit
+       * as/mcs51/asm.h: added defines R_BIT and S_BIT
+       * as/mcs51/lkarea.c (lnksect2): use T for seg BIT_BANK and overlay it
+       * as/mcs51/lkdata.c: changed ctype['['] to BINOP
+       * as/mcs51/lkmain.c (Areas51): rel2 contains 12 (=C) areas now,
+         added overlayable BIT_BANK area
+       * as/mcs51/lkmem.c (summary): add BIT_BANK to BSEG_BYTES in the report,
+         (summary2): explain 'T' in legenda
+       * as/mcs51/lkrloc.c: replaced old K&R style,
+         (relr): added R_BIT processing,
+         (errmsg): added "Bit-addressable relocation error",
+         (adb_bit): added for converting from byte- to bit-addressable space,
+         (adb_24_bit): added for converting from byte- to bit-addressable space
+       * device/include/stdbool.h: changed BOOL to __bit for mcs51 as it can be
+          used in reentrant functions now even as return value
+       * device/lib/_gptrput.c (_gptrput): removed obsolete code
+       * src/SDCCast.c (resultTypePropagate): also propagate AND_OP and OR_OP,
+         (decorateType): case '!', GETHBIT, AND_OP, OR_OP: result in bool or char
+       * src/SDCCglobl.h: added indicator BitBankUsed
+       * src/SDCCglue.c (glue): emit area BIT_BANK with byte 'bits' and equ's for
+          the bit registers b0-b7
+       * src/SDCCicode.c (operandFromSymbol): removed IS_BITVAR check,
+         (geniCodeCast): fixed bug 1263853,
+         (geniCodeLogicAndOr): put result in bool or char,
+         (geniCodeReceive): added parameter func for accessing the return type,
+         (geniCodeFunctionBody): pass func to geniCodeReceive
+       * src/SDCCmain.c: added indicator BitBankUsed
+       * src/SDCCmem.c (allocLocal): explicitly set sclass for V_BIT
+       * src/SDCCsymt.c (newBoolLink): added for creating a bool/bit,
+         (checkSClass): don't put automatic bool/bit on stack,
+         (checkFunction): removed check on function cannot return bit
+       * src/SDCCsymt.h: added newBoolLink prototype
+       * src/mcs51/gen.c (rb1regs): added bit registers,
+         (movc): created for assigning to carry,
+         (pushReg, popReg): created for pushing registers,
+         (sameRegs): check both AOP_REG and AOP_CRY types,
+         (aopOp): handle bit registers,
+         (aopPut): optimization no self-assign,
+         (saveRegisters): push reg->base (bits) only once for bit registers,
+          and use pushReg,
+         (unsaveRegisters): pop reg->base only once and use popReg,
+         (assignResultValue): added parameter func and return in carry for bits,
+         (genIpush): optimization no reload in A if not changed,
+         (genSend): bit parameters in reentrant functions are passed in bit
+          registers by first assigning to bits in B, then save registers and
+          copy B to bits,
+         (genCall): handle returning in Carry properly, save it in F0 if needed,
+         (genPcall): updated assignResultValue call, this is not safe yet for bit
+          returning function !!!
+         (genFunction): don't generate equ's for bit registers and use pushReg,
+         (genEndFunction): take care of bit returning functions and use popReg,
+         (genRet): return bit in Carry,
+         (genIfx): optimize bit registers and other directly addressable bits,
+         (genReceive): updated assignResultValue call
+       * src/mcs51/main.c (_mcs51_reset_regparm): added regBitParmFlg,
+         (_mcs51_regparm): allow passing of upto 8 bit parameters in bit
+          registers when using stack-auto
+       * src/mcs51/ralloc.c (_G): added allBitregs,
+         (regs8051): added the bit registers,
+         (createStackSpil): use macro IS_BIT,
+         (getRegBit): added to allocate a bit register, else spill,
+         (getRegBitNoSpil): added to allocate a bit register, else a gpr,
+         (updateRegUsage): factored out to ease stepping while debugging,
+         (serialRegAssign): use updateRegUsage, only spill bits if necessary,
+          also allocate bit registers,
+         (fillGaps): handle bit registers,
+         (findAllBitregs): added to create bit vector with all bit registers,
+         (mcs51_allBitregs): returns this bit vector,
+         (mcs51_assignRegisters): when using stack-auto use bit registers for
+          passing parameters and creating local variables
+       * src/mcs51/ralloc.h: added B0_IDX..B7_IDX and prototype mcs51_allBitregs
+
+2005-08-22 Borut Razem <borut.razem AT siol.net>
+
+       * device/lib/Makefile.in: replaced find option -or with -o
+         to make it run on solaris
+
+2005-08-22 Raphael Neider <rneider AT web.de>
+
+       * src/pic16/gen.c (pic16_loadFromReturn): added check for AOP_PCODE,
+         fixes #1265442 (crash on Solaris)
+
+2005-08-20 Borut Razem <borut.razem AT siol.net>
+
+       * configure, configure.in: added tests for libsocket and libnsl libraries,
+         requred by sdcdb on sparc-solaris; generate support/regression/Makefile
+         from support/regression/Makefile.in
+       * support/regression/Makefile.in: added
+       * device/lib/pic16/Makefile.common.in: force make to use bash shell
+       * sim/ucsim/libtool: regenerated on sparc-solaris
+       * sim/ucsim/avr.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
+         sim/ucsim/s51.src/Makefile.in, sim/ucsim/xa.src/Makefile.in,
+         sim/ucsim/z80.src/Makefile.in: removed GNU ld specific linker options
+         -Wl,--start-group and -Wl,--end-group to enable ucsim compilation on
+         sparc-solaris, which doesn't use GNU ld linker
+       * device/lib/Makefile.in: cp on sparc-solaris (SunOS) does not support -u option
+       * as/Makefile: find on sparc-solaris does not support -maxdepth option
+
+2005-08-19 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * src/mcs51/peeph.def: updated comments
+
+2005-08-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
+
+       * device/lib/_gptrget.c,
+       * device/lib/_gptrput.c: slightly shorter
+       * doc/sdccman.lyx: incremented version
+       * src/mcs51/peeph.def: moved peephole comments to the line of first
+         change to better keep line correlation, reanimated 186.e
+       * src/mcs51/peeph.def: renamed similar peepholes by using suffixes
+
+2005-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
+
+       * src/pic/pcode.c : Pasted ".line" assembly directives patch from
+         David Saxton with quotes around file name.
+
+2005-08-15 Borut Razem <borut.razem AT siol.net>
+
+       * support/regression/tests/bitfields.c, support/regression/tests/bitvars.c,
+         support/regression/tests/bitwise.c, support/regression/tests/literalop.c,
+         support/regression/tests/rotate.c, support/regression/tests/zeropad.c:
+         make tests run on x86_64 platform
+
+2005-08-13 Raphael Neider <rneider AT web.de>
+
+       * device/lib/pic16/Makefile.subdir: weakened clean-intermediate rule
+         as it might be executed DURING a build (parallel make is wonderful)
+
+2005-08-13 Raphael Neider <rneider AT web.de>
+
+       * device/lib/Makefile.in (port-specific-objects-pic16):
+         revert to cp $(PORT)/bin/*.* $(PORTDIR)
+       * device/lib/pic16/Makefile: added .PHONY targets, removed builddir
+         dependency
+       * device/lib/pic16/Makefile.rules: build subdirs before creating
+         the library, removed builddir rule, create $(builddir) early in
+         recurse rule, use empty recurse rule for leaf directories
+       * device/lib/pic16/Makefile.subdir: added phony targets, ignore
+         mkdir errors (race condition), removed duplicate suffix "hex"
+         from clean rules
+       * device/lib/pic16/libdev/Makefile: recursive make via + and $(MAKE)
+       * device/lib/pic16/libio/Makefile: create sub-make's builddir early,
+         prevents mkdir -p from aborting on Alpha
+
+2005-08-12 Raphael Neider <rneider AT web.de>
+
+       * src/pic16/glue.c (pic16_print(G)PointerType): do not flush
+         db-statements in order to allow for arrays of pointers in code
+         sections to be placed without interspersed 0-padding, fixes
+         bug #1256215
+       * (emitStatistics): fixed division by zero for pic18f1220
+       * src/pic16/pcode.c: buffer (up to) 12 DB directives to allow for
+         unpadded writing of 8-bit, 16-bit, 24-bit and 32-bit values
+       * (pic16_emitDS): respect DB_ITEMS_PER_LINE
+       * (pic16_pCodeConstString): keep track of already emitted string
+         literals to prevent "duplicate definitions of symbol _str_NR"
+       * src/pic16/ralloc.c (pic16_allocRegByName): removed not so helpful
+         debug message
+       * device/lib/Makefile.in: ignore failing PIC16 library builds
+       * device/lib/pic16/Makefile: do not build if gputils are missing
+       * device/lib/pic16/Makefile.common.in: do not enforce MAKEFLAGS=-s
+
+2005-08-10 Raphael Neider <rneider AT web.de>
+
+       * device/lib/Makefile.in: fixed copying pic16 libraries (broken by
+         my last commit)
+
+2005-08-10 Raphael Neider <rneider AT web.de>
+
+       * src/*.c, src/pic16/{gen.c,glue.c,main.c}: applied Vangelis
+         Rokas' patch to add the new fixed point type "__fixed16x16"
+       * device/lib/pic16/libsdcc/fixed16x16: added Vangelis' support
+         functions for __fixed16x16 arithmetics
+       * device/lib/pic16: reimplemented the build system to support
+         a separate build directory, better handling of libio (create
+         the library in a separate subdir for each architecture) and
+         easier configuration (centralized in Makefile.common)
+
+2005-08-07 Raphael Neider <rneider AT web.de>
+
+       * src/pic16/gen.c (genrshTwo): fixed sign extension
+       * src/pic16/device.c: added pic18f2320, 4220 and 4320
+       * device/include/pic16/pic18f2220.h: changed some bit definitions,
+         added T0CONbits
+       * device/include/pic16/pic18f4220.h: NEW, header for
+         pic18f4220 and pic18f4320
+       * device/include/pic16/pic18fregs.h: added new devices,
+         embraced Nop(), ClrWdt(), Sleep() and Reset() with do {} while(0)
+       * device/include/pic16/signal.h: resolved name clashes
+         on bit definitions, added DEF_HANDLER2(sig1,sig2,handler)
+         to also allow testing for interrupt enable bits, added
+         comments on how to use the macros
+       * device/lib/pic16/libdev/pic18f2220.c: added T0CONbits
+       * device/lib/pic16/libdev/pic18f{2320,4220,4320}.c: NEW,
+         register definitions for the devices
+       * device/lib/pic16/pics.all: added new devices
+       * device/lib/pic16/libc/stdlib/calloc.c: fixed zeroing
+         allocated memory
+       * device/lib/pic16/libc/stdlib/memfree: do not count
+         the block header as free memory
+       * device/lib/pic16/libc/stdlib/memmisc.c (_initHeap):
+         simplified and added missing end-of-blocklist-marker
+         (reported by Peter Onion, fixes #1252814)
+       * (_mergeHeapBlock): fixed loop condition
+       * device/lib/pic16/libc/stdlib/realloc.c: return NULL for
+         len==0, restructured code
+       * device/lib/pic16/libc/stdlib/{malloc,memfreemax}.c: cleaned
+         up a bit, reduced bitfield accesses, prevent endless loops
+         in case of heap corruption
+       * device/lib/pic16/libc/stdlib/x_ftoa.c: disabled
+         "unreferenced arguments/must return a value" warnings
+       * device/lib/pic16/libio/usart/ubaud.c (usart_baud):
+         replaced BAUDREG with SPBRG
+       * device/lib/pic16/libsdcc/lregs/{lrrest.c,lrst.c},
+         device/lib/pic16/debug/gstack/gstack.c: replaced
+         _naked, _asm, _endasm with __naked, __asm, __endasm
+
+2005-08-05 Raphael Neider <rneider AT web.de>
+
+       * src/pic16/gen.c (pic16_aopGet): fixed handling of offsets in
+         AOP_PCODE operands, fixes multibyte union-bitfield-accesses
+
+2005-08-05 Borut Razem <borut.razem AT siol.net>
+
+       * device/lib/Makefile.in: added missing ';'
+       * configure: removed ^M characters
+
+2005-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
+
+       * device/include/mcs51/at89c51ed2.h, device/include/mcs51/p89v51rd2.h,
+         device/include/mcs51/at89s53.h: changed to GNU Lesser General Public
+         License
+
+2005-08-04 Borut Razem <borut.razem AT siol.net>
+
+       * configure.in: pic16 libraries build 2nd try - enable running
+         configure in device/lib/pic16
+       * configure: regenerated from configure.in
+       * device/lib/Makefile.in: create $(PORT)/bin directory
+
+2005-08-03 Raphael Neider <rneider AT web.de>
+
+       * src/pic16/gen.c (pic16_derefPtr): NEW, single place
+         to get/set values via pointers
+       * (genUnpackBits,genPackBits): changed detection of
+         ptr->bitfield vs. sym.bitfield, fixed access via generic
+         pointers, removed dead (wrong) code for multibyte bitfields
+       * (genNearPointerGet, genGenPointerGet): removed useless code,
+         fixed bitfield detection, fixes #1250594
+       * (genNearPointerSet): removed useless code
+       * src/pic16/gen.h: renamed pic16_emitpcode to pic16_emitpcode_real
+         and introduced macro pic16_emitpcode that conditionally emits
+         the origin of the following pCode (useful for debugging SDCC)
+       * src/pic16/pcode.c: changed (and disabled) some debug outputs
+       * (createDefmap): fixed handling of LFSR for --optimize-df
+
+2005-08-02 Borut Razem <borut.razem AT siol.net>
+
+       * device/lib/Makefile.in: pic16 libraries build enabled since
+         gputils-0.13.2 are now localy installed at sourceforge's compile farm
+
+2005-08-02 Raphael Neider <rneider AT web.de>
+
+       * src/pic16/gen.c (genPackBits): removed deprecated warning
+       * (genGenPointerSet): fixed bitfield detection
+
+2005-08-02 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
+
+       * device/include/mcs51/msm8xc154s.h: Removed PT2 definition, now in 8052.h.
+
+2005-07-31 Raphael Neider <rneider AT web.de>
+
+       * device/lib/pic16/libdev/pic18f458.c,
+         device/include/pic16/pic18f458.h: added missing T0CONbits
+
+2005-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * device/include/mcs51/msm8xc154s.h: added, thanks to Matthias Arndt
+
 2005-07-28 Maarten Brock <sourceforge.brock AT dse.nl>
 
        * src/mcs51/gen.c (operandsEqu): fixed bug 1246687