* device/lib/z80/printf.c: Changed emitter to volatile to work
[fw/sdcc] / ChangeLog
index 966497fd5a5622d6022899b683c12613b4e3d8c3..a88814c72f3b25612a98ca4bbfb24797a0ac1d1c 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,495 @@
+2002-04-22  Michael Hope  <michaelh@vroom>
+
+       * device/lib/z80/printf.c: Changed emitter to volatile to work around a pcall bug.
+
+       * configure.in (DD_COPT): Added include support required for gbdk.
+
+       * .version: Bumped version number just to increase it.
+
+       * src/SDCCmain.c: Added -nostdinc to the default options.
+
+2002-04-15  Michael Hope  <michaelh@vroom>
+
+       * device/lib/z80/printf.c (sprintf): Added.
+
+       * src/z80/ralloc.c (packRegisters): Disabled pack HL use for GB as it's broken.
+
+       * src/z80/peeph.def: Added transpose redundent load rule.
+
+       * src/z80/main.c: Added force callee saves for jaune.
+
+       * src/port.h: Removed the i186 and tlcs-900h ports as they weren't being being developed.
+
+       * src/SDCCmain.c: Pulled the options definition out so that you can add port specific options without changing the main file.
+
+2002-03-28  Johan Knol  <johan@balder>
+
+       * src/SDCCval.c: fixed bug #532436
+
+2002-03-14  Scott Dattalo <scott@dattalo.com>
+       * /src/port.h:
+       Added "char *Processor" field to the port structure.
+
+       * /src/SDCCmain.c:
+       Added -p option. Allows port dependent processor to be specified.
+
+       * all ports:
+       Initialized the new field char *Processor field to NULL in all ports
+
+       * /src/pic/*:
+       Compiler generated registers for interrupt context saving
+       were not getting allocated.
+               
+2002-03-16  Sandeep Dutta  <sandeep@ddi.com>
+
+       * /src/SDCCast.c:
+       Fixed left shift. Will promote the left side of a left shift
+       if a) left shifting more than size of operand or b) when assigned
+       to something size > size of left side
+
+2002-03-14  Scott Dattalo <scott@dattalo.com>
+       * src/pic/*
+       tons of changes. Register allocation has been 
+       rewritten. Added customization for the various PICs. Flow
+       analysis is restructured. ...
+
+       * src/pic/device.h:
+       Added
+
+       * src/pic/device.c:
+       Added. device.c is a PIC port hack to accomodate variations
+       in PIC devices.
+
+2002-03-13  Michael Hope  <michaelh@vroom>
+
+       * src/z80/gen.c (genGenPointerGet): Fixed a bug where a pointer in HL is dereferenced into HL but HL is not spilled.  Yeah.
+
+2002-03-04  johanknol  <johanknol@manik>
+
+       * /src/SDCCval.c: fixed
+
+       const unsigned char arr[][2] = { { 0, 1 } };
+       t18.c:1: error: Initializer element is not constant
+
+2002-03-04  bela  <bela@manik>
+
+       * /device/include/mcs51reg.h:
+       ds89c420 register definition update
+
+2002-03-03    <johan@FRIJA>
+
+       * support/Util/SDCCerr.c: did something, but don't no why anymore
+
+       * support/regression/tests/bug-524691.c: made it a little less shy 
+
+       * src/SDCCast.c (decorateType): fixed bug #524697 
+
+       * src/SDCCast.c: made some lineno improvements
+
+       * src/SDCCval.c (getNelements): changed warning to error
+
+       * src/SDCCglue.c (printIvalArray): changed warning to error
+
+       * src/SDCCicode.c: fixed a warning for mingw
+
+       * src/SDCCast.c (decorateType): fixed the << promotion for ops
+
+       * src/SDCCicode.c (geniCodeDivision): divide is shift only for unsigned (bug #524685)
+
+2002-03-02  Sandeep Dutta  <sandeep@ddi.com>
+
+       * src/ds390/peeph.def:
+       Added some more peephole rules
+
+       * src/ds390/gen.c: Various fixes & enhancements
+
+       * src/SDCClrange.c, src/SDCClrange.h:
+       functions "alldefsoutofrange" and "notusedinblock" moved to SDCClrange.c
+
+       * src/ds390/ralloc.c:
+       various fixes & enhancements (ds390) specific
+
+       * src/avr/ralloc.c, src/mcs51/ralloc.c, src/pic/ralloc.c, src/xa51/ralloc.c, src/z80/ralloc.c:
+       Functions "allDefsOutOfRange" & "notUsedinBlock" moved to SDCClrange.c
+       from rallocs.
+
+       * sdcc/src/SDCCcse.c: Better fix for bug # 514308
+
+2002-03-02    <johan@FRIJA>
+
+       * src/SDCCast.c (decorateType): fixed bug #524708
+
+       * src/SDCCval.c (floatFromVal): fixed the literal void (whatever that may be)
+
+       * src/SDCCicode.c (geniCodePtrPtrSubtract): fixed bug #524691
+
+2002-03-01  Michael Hope  <michaelh@vroom>
+
+       * src/SDCCsymt.c (initCSupport): Removed managling of support function names.
+
+       * src/z80/ralloc.c (packRegsForIYUse): Fixed fp bug where four byte operands were packed into IY.
+
+2002-03-01    <johan@FRIJA>
+
+       * src/SDCCglue.c (printIvalPtr): fixed bug #524211
+
+       * src/SDCCast.c (decorateType): fixed bug #524209
+
+       * src/SDCCval.c (valNot): fixed bug #524195
+
+2002-02-26    <johan@balder>
+
+       * src/xa51/gen.c: fixed a warning
+
+       * src/SDCCglue.c (printIvalFuncPtr): fixed bug #522534
+
+       * src/SDCCast.c (decorateType): fixed bug #522534
+
+2002-02-23    <johan@balder>
+
+       * src/SDCCdflow.c (computeDataFlow): fixed bug #460088
+
+2002-02-22    <johan@balder>
+
+       * src/SDCCast.c: fixed bug #514865
+
+       * src/SDCCy.c ("SDCC.y"): fixed bug #516625
+
+2002-02-21  Sandeep Dutta  <sandeep@ddi.com>
+
+       * sdcc/src/SDCCloop.c:
+       Previous fix was not good. basic blocks that have "break" or "return" are
+       not really partof a loop , but live ranges used in these blocks should
+       be live thru the entire loop, so set partOfLoop but don't add them to
+       loop region
+
+2002-02-21    <johan@FRIJA>
+
+       * src/SDCCcse.c: fixed bug #514308
+
+2002-02-20  Sandeep Dutta  <sandeep@ddi.com>
+
+       * src/SDCCloop.c:
+       Fixed BUG #519583. If a conditional block ended in a return/break
+       statement inside a loop, it was not being considered part of the loop.
+
+       * src/SDCCcflow.c: Removed fix (Fixed in SDCCloop.c)
+
+2002-02-10  Karl Bongers <karl@turbobit.com>
+
+       * debugger/*:
+       Fixed up SDCDB debugger somewhat.  Updated debugger/README
+       with lots of comments and notes.
+
+       * device/examples/test2.c:
+       Fix bug, "red" variable not being initialized(compiler complained).
+
+       * device/examples/Makefile, examples/test3.c:
+       Add Makefile in device/examples folder, compiles test3.c
+       for use as a multiple module SDCDB test case.
+
+       * sim/ucsim/cmd.src/cmdset.cc:
+       Took out debug printfs in ucsim "next" command.
+
+       * sim/ucsim/xa.src:
+       Karl and Johan start ucsim XA support.  Most dissassembly working,
+       about 75% emulation done(plenty of work remaining).
+
+       * sim/ucsim/z80.src:
+       Add Z80 support to ucsim, add test-ucz80 regression test,
+       notice ucsim/z80 emulation fails on examples/test3.c/itoa code.
+       Notice z80 compiler fails on examples/test3.c/crc code.
+
+2002-01-30  Sandeep Dutta  <sandeep@ddi.com>
+
+       * src/mcs51/gen.c, src/mcs51/main.c, src/mcs51/ralloc.c:
+       Added support for --parms-in-bank1
+
+       * src/ds390/peeph.def:
+       added a few more peephole optimzations
+
+       * src/ds390/main.c:
+       1) added __builtin_inp & __builtin_outp used to read in data of given length
+          from a memory mapped port
+       2) added __builtin_memcmp
+       3) added __builtin_swapw swap bytes of a short
+
+       * src/ds390/gen.c, src/ds390/gen.h, src/ds390/ralloc.c:
+       1) handle multiple send & receives from register bank1
+       2) ralloc can now allocate DPTR1 to some liveRanges
+
+       * src/SDCCsymt.c, src/SDCCsymt.h:
+       changes to handle multiple sends & receives
+
+       * src/SDCCptropt.h:
+       added some pointer arithmetic optimization
+
+       * src/SDCCptropt.c:
+       added some pointer arithmetic optimizations but not stable yet so not
+       called from anywhere (will get this working shortly)
+
+       * src/SDCCopt.c: fixed for multiple sends & receives
+
+       * src/SDCCmain.c:
+       1) added options --parms-in-bank1 (ds390/mcs51) & --protect-sp-update
+       2) preprocessing done AFTER port->finalizeoptions . This allows ports to
+          set preprocessor defines (depending on options)
+
+       * src/SDCCicode.c, src/SDCCicode.h:
+       changes made to handle multiple sends & receives
+
+       * src/SDCCglobl.h:
+       Added options --protect-sp-update (ds390) and --parms-in-bank1 (ds390/mcs51)
+
+       * src/SDCCcse.c, src/SDCCcse.h:
+       added function findbackward def (to be used in upcoming optimization)
+
+       * src/SDCCcflow.c, src/SDCCcflow.h:
+       added function returnAtEnd - to determine if a basic block terminates with
+       a RETURN iCode
+
+       * src/SDCCast.c, src/SDCCast.h:
+       added option parms-in-bank1
+
+       * device/lib/_divsint.c, device/lib/_divslong.c, device/lib/_divuint.c 
+       * device/lib/_divulong.c, device/lib/_modsint.c, device/lib/_modslong.c 
+       * device/lib/_modulong.c, device/lib/_mulint.c, device/lib/_mullong.c:
+       adjusted for --parms-in-bank1 option
+
+       * device/include/string.h:
+       donot redefine "reentrant" keyword
+
+       * device/include/ds80c390.h: Added some more SFRs
+
+2002-01-28  Bernhard Held  <bernhard@bernhardheld.de>
+
+       * sim/ucsim: Merged branch ucsim-034-pre3 to main trunk; new version 0.4 
+
+2002-01-26  Bernhard Held  <bernhard@bernhardheld.de>
+
+       * src/SDCCast.c (funcOfType): fix usage of double --float-reent
+
+2002-01-22  Bernhard Held  <bernhard@bernhardheld.de>
+
+       * support/regression/fwk/lib/testfwk.c (main): Removed workaround for bug #505387
+
+2002-01-18  Paul Stoffregen  <paul@pjrc.com>
+
+       * Added --xram-movc option
+
+2002-01-13  Bernhard Held  <bernhard@bernhardheld.de>
+
+       * support/regression/Makefile: don't include test-mcs51-stack-auto in target all
+
+2002-01-11  Johan Knol
+
+       * Added math lib of Jesus Calvino-Fraga
+
+2002-01-08  Bernhard Held  <bernhard@bernhardheld.de>
+
+       * src/SDCCmain.c (processFile): fix processing of ../../src.c
+       * support/regression/Makefile: new target test-mcs51-stack-auto
+       * support/regression/ports/mcs51-stack-auto/spec.mk: added
+
+2002-01-04  Bernhard Held  <bernhard@bernhardheld.de>
+
+       * src/SDCCglue.h: printIvalCharPtr(), not printIvalChar()
+
+2002-01-04  Bernhard Held  <bernhard@bernhardheld.de>
+
+       * support/regression/ports/mcs51/support.c: correct setup of timer / UART
+
+2002-01-03  Bernhard Held  <bernhard@bernhardheld.de>
+
+       * src/SDCCsymt.c (processFuncArgs): fix #498307 by Johan
+
+       * src/SDCCglue.h: add definition for printIvalChar()
+
+2002-01-02  Bernhard Held  <bernhard@bernhardheld.de>
+
+       * src/SDCCast.c: fix #498138 by Johan
+
+       * src/SDCCglue.c: fix #498138 by Johan
+
+2002-01-02  Bernhard Held  <bernhard@bernhardheld.de>
+
+       * support/regression/Makefile: fix clean
+
+       * support/regression/ports/ds390/support.c: fix transmission of last character
+
+2001-12-29  Sandeep Dutta  <sandeep@ddi.com>
+
+       * /sdcc/src/ds390/gen.c:
+       a) improved computing address of stack variable
+       b) took out some #if 0 code
+       c) improved parmBytes adjustment
+       d) improved genPlusIncr & genMinusIncr
+       e) genCmp could generate bad code (when left assigned to DPTR)
+       f) Fixed bug in hasInc
+
+       * /sdcc/src/ds390/ralloc.c:
+       a) packRegsForSupport could mess up live information (Fixed)
+       b) packRegsDPTRuse could be incorrect for left & right shift
+
+       * /sdcc/src/mcs51/ralloc.c:
+       packRegsForSupport could mess up the live information (Fixed)
+
+       * /sdcc/src/mcs51/gen.c: Fixed a bug in hasInc
+
+       * /sdcc/src/SDCCast.c:
+       can reverse a loop even if function call is present as long
+       as the loop control variable is local & is not passed as parameter
+
+2001-12-24  Sandeep Dutta  <sandeep@ddi.com>
+
+       * /sdcc/ChangeLog: *** empty log message ***
+
+       * /sdcc/src/ds390/gen.c, /sdcc/src/ds390/main.c:
+       More builtin function additions for TININative
+
+       * /sdcc/src/ds390/ralloc.c:
+       Had broken the regression testsuite
+
+       * /sdcc/src/SDCCast.c: Fixed a bug in dumptree
+
+       * /sdcc/src/SDCCsymt.c, /sdcc/src/SDCCsymt.h:
+       Added funcattr hasStackParms will be set for reentrant functions when there
+       are paramteres on the stack, this helps in minimizing frame pointer generation
+       typeFromStr can handle function pointers now
+
+       * /sdcc/doc/builtins.txt, /sdcc/doc/TININative.txt:
+       *** empty log message ***
+
+2001-12-24  Sandeep Dutta  <sandeep@ddi.com>
+
+       * /src/ds390/gen.c, /src/ds390/main.c:
+       More builtin function additions for TININative
+
+       * /src/ds390/ralloc.c:
+       Had broken the regression testsuite
+
+       * /src/SDCCast.c: Fixed a bug in dumptree
+
+       * /src/SDCCsymt.c, /src/SDCCsymt.h:
+       Added funcattr hasStackParms will be set for reentrant functions when there
+       are paramteres on the stack, this helps in minimizing frame pointer generation
+       typeFromStr can handle function pointers now
+
+       * /doc/builtins.txt, /doc/TININative.txt:
+       *** empty log message ***
+
+
+2001-12-24  Sandeep Dutta  <sandeep@ddi.com>
+
+       * /src/ds390/gen.c, /src/ds390/main.c, /src/ds390/peeph.def, /src/ds390/ralloc.c:
+       ALPHA version for -mTININative
+
+       * /src/izt/i186.c, /src/izt/tlcs900h.c, /src/mcs51/main.c, /src/pic/main.c, /src/z80/main.c, /src/avr/main.c:
+       updated to reflect changes in the port structure
+
+       * /src/port.h:
+       added function do_assemble (similar to do_link) if non-null this function
+       will be called to do assembly (-mTININative) requires a multi command
+       assembly
+       added function genAssemblerEnd will be called to generate assembler Epilogue
+
+       * /src/SDCCsymt.c:
+       added _JavaNative to debug info printing
+
+       * /src/SDCCmain.c: added option --tini-libid
+       added port->do_assemble function (-mTININative) has a multi command assemble
+
+       * /src/SDCCglue.c: Disabled "constExpr" check
+       added port->genAssemblerEnd function
+
+       * /src/SDCCglobl.h: Added option --tini-libid value
+
+       * /src/SDCCast.h:
+       tookout optimizeCompare from the header (has no external references)
+
+       * /src/SDCCast.c: made one more function "static"
+
+2001-12-23  Michael Hope  <michaelh@juju.net.nz>
+
+       * src/z80/mappings.i: Added z80asm support.
+
+       * src/z80/main.c: Added z80asm support on --asm=z80asm
+
+       * src/z80/gen.c: Fixed asm portability issues.
+
+       * src/asm.c (tvsprintf): Removed old code, added 'N' for function name.  For extern support.
+
+       * src/SDCCglue.c (printExterns): Added global/extern split.
+
+2001-12-17  Bernhard Held  <bernhard@bernhardheld.de>
+
+       * support/regression/Makefile: added test for mcs51 model large
+
+       * support/regression/ports/mcs51-large/spec.mk: added test for mcs51 model large
+
+       * support/regression/ports/gbz80/spec.mk: added -mgbz80
+
+2001-12-05  Michael Hope  <michaelh@juju.net.nz>
+
+       * src/diff.1 (Index): Many, many optmisiations.  Dhrystone up to 201.
+
+1904-01-06  Michael Hope  <michaelh@juju.net.nz>
+
+       * src/z80/ralloc.c (packRegsForIYUse): Fixed the case where an operand is in direct space.
+
+       * src/z80/gen.c (makeFreePairId): Optimised IY load by using a spare pair.
+
+2001-12-02  Bernhard Held  <bernhard@bernhardheld.de>
+
+       * src/mcs51/gen.c (genFunction): avoid excess "inc sp"
+
+       * support/regression/tests/simplefloat.c: Port to mcs51.
+
+2001-11-25  Michael Hope  <michaelh@juju.net.nz>
+       * support/regression/tests/bug-485362.c: Added.
+
+       * support/regression/tests/simplefloat.c (testDivNearOne): Added.
+
+       * src/z80/gen.c (aopOp): Fixed case where left and result are in the same spill loc and they have different sizes.
+
+       * src/z80/peeph.def: Added rules for optimising two byte compares on the same thing, and to optimise two ptr assign.
+
+       * src/z80/gen.c (aopDump): Added a dump function.
+
+2001-11-25  Bernhard Held  <bernhard@bernhardheld.de>
+       * sim/ucsim/s51.src/glob.cc: DS390 SFRs and bits added.
+
+       * sim/ucsim/s51.src/port.cc: Port 4 and 5 added.
+
+       * sim/ucsim/s51.src/regs51.h: DS390 SFRs added.
+
+       * sim/ucsim/s51.src/uc390.cc: Some details improved, CKRDY works for tinibios.
+
+       * sim/ucsim/s51.src/uc390cl.h: Work in progress.
+
+       * sim/ucsim/sim.src/uccl.h: 6 ports for DS390.
+
+       * support/regression/fwk/lib/testfwk.c: Run with tinibios.
+
+       * support/regression/ports/mcs51/spec.mk: Fine tuninig.
+
+       * support/regression/ports/ds390/support.c: Use tinibios.
+
+       * support/regression/ports/ds390/spec.mk: Fine tuning, use tinibios.
+
+2001-11-23  Michael Hope  <michaelh@juju.net.nz>support/regression/tests/bug-460010.c
+
+       * src/z80/ralloc.c (packRegsForHLUse3): Changed to not pack into HL if anything is in direct space.
+       (packRegsForHLUse3): Added packing support for send, cast, and return value from a call.
+
+       * src/z80/peeph.def: Added rules for optimising pushes of part of a pair.
+
+       * src/z80/gen.c (emitCall): Changed the stack fixup to not use HL.
+
 2001-11-18  Michael Hope  <michaelh@juju.net.nz>
 
+       * src/z80/gen.c (genCmp): Fixed compare on unsigned.
+
        * src/z80/ralloc.c (packRegsForHLUse3): Created and optimised.
        (packRegsForIYUse): Created and optimised.