* src/SDCCsymt.c (sclsFromPtr),
[fw/sdcc] / ChangeLog
index ade051246ab37de93cc47d5c47f0f8562ffd9eda..3795a8d8c0bfac0213e9448ff3fe56ba333a822e 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,402 @@
+2003-09-14  Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+       * src/SDCCsymt.c (sclsFromPtr),
+       * src/SDCCsymt.h,
+       * src/SDCCast.c (decorateType): fixed bug #462971. Also, better
+       support for standard C idiom of memory mapped variables; for
+       example, *((xdata int*)0x1234) = 1 is now internally equivalent
+       to xdata int at 0x1234 tempvar = 1.
+       * sim/ucsim/z80.src/inst_xd.cc: fixed bug #805483 with patch
+       provided by Akiya ISHIDA
+
+2003-09-13  Bernhard Held <bernhard@bernhardheld.de>
+
+       * src/SDCCval.c (cheapestVal): reenabled to reduce int to char
+       * src/SDCCval.c (constVal): added reduction from int to char
+       * src/SDCCval.c (valMult, valDiv): fixed sign handling
+       * src/SDCCval.c (valShift): fixed after change of cheapestVal()
+       * src/SDCCval.c (valCompare): fixed EQ_OP and NE_OP; they have
+       to ignore the sign
+       * support/regression/tests/shifts.c: fixed
+
+2003-09-13  Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+       * src/z80/gen.c (genXor): Fixed bug #805445
+
+2003-09-12  Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+       Fixed bug #621531 (const & volatile confusion in the type chain).
+       DCL_PTR_CONST, DCL_PTR_VOLATILE, & IS_PTR_CONST now exclusively
+       refer to the const or volatile state of the pointer itself.
+
+       * src/SDCCast.c
+       * src/SDCCglue.c
+       * src/SDCCicode.c
+       * src/SDCCsymt.c
+       * src/SDCCval.c
+       * src/SDCC.y
+       * src/SDCCsymt.h
+       * src/pic/gen.c
+       * src/pic/ralloc.c
+       * src/pic16/gen.c
+       * src/pic16/ralloc.c
+       * support/regression/tests/const.c
+
+2003-09-10  Jesus Calvino-Fraga <jesusc@ece.ubc.ca>
+
+       When checking for duplicated modules, use absolute paths
+       instead of relative paths.  Files changed:
+
+       * as/mcs51/lklib.c
+       * link/z80/lklib.c
+
+2003-09-09  Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+       * src/SDCCicode.c (geniCodeLogic): fixed bug #797572
+
+2003-09-07  Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+       * device/include/string.h: added size_t typedef, changed
+       prototypes to use size_t, eliminated separate reentrant and
+       non-reentrant declarations, added _memmove declaration
+       * device/lib/_memcpy.c: changed to use size_t instead of int,
+       changed /4 to >>2 to avoid division library call
+       * device/lib/_memcmp.c,
+       * device/lib/_memset.c,
+       * device/lib/_strncat.c,
+       * device/lib/_strncpy.c,
+       * device/lib/_strncmp.c: changed to use size_t instead of int
+       * device/lib/_memmove.c: new file (fixed bug #772294)
+       * device/lib/Makefile.in: added _memmove.c
+       * device/lib/z80/asm_strings.s: fixed bug #772290
+       * support/regression/tests/bitfields.c: attempt to fix host assertion
+       failure on amd64-unknown-linux2.2
+
+2003-09-06  Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+       * src/z80/gen.c (aopPut, spillPairReg): fixed bug #800998
+       * src/z80/gen.c (genFunction, genEndFunction): fixed "bug" #774700
+       * as/z80/asmain.c (main): fixed bug #801766
+
+2003-09-06  Bernhard Held <bernhard@bernhardheld.de>
+
+       * src/SDCCicode.c (ast2iCode): fixed differences in iCode with different
+       compilers
+
+2003-09-05  Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+       * src/SDCCast.c (isConformingBody): fixed loop reversal bug
+       reported in bug #800609
+
+2003-09-04  Vangelis Rokas <vrokas@otenet.gr>
+
+       * Top header beautifications in src/pic16 directory:
+         device.c, device.h, gen.c, gen.h, genarith.c, glue.c, pcode.c,
+         pcodeflow.c, pcodeflow.h, pcode.h, pcodepeep.c, pcoderegs.c,
+         pcoderegs.h, ralloc.c, ralloc.h
+       * main.c: added top header and GPL license notice
+       * pcode.c: fixed the if-conditional warning
+2003-09-04  Bernhard Held <bernhard@bernhardheld.de>
+
+       * device/lib/_mullong.c: replaced int by short for gcc
+
+2003-08-31  Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+       * src/SDCCpeeph.c (notVolatile, notVolatileVariable): handle IFX
+        and JUMPTABLE iCodes properly now (worked by accident before)
+       * src/mcs51/gen.c (leftRightUseAcc),
+       * src/ds390/gen.c (leftRightUseAcc): handle IFX and JUMPTABLE
+       iCode properly now. Use getSize instead of nRegs since a & b
+       aren't part of the nRegs tally.
+
+2003-08-31  Vangelis Rokas <vrokas@otenet.gr>
+
+       * src/pic16/main.c: corrected offsets of interrupt vectors in _pic16_genIVT()
+       * src/pic16/pcode.c: fix to disable inserting BANKSEL directive
+         before instructions that use the _STATUS register
+
+2003-08-31  Bernhard Held <bernhard@bernhardheld.de>
+
+       * src/mcs51/gen.c (freeAsmop): fixed off by one in stack offset (AOP_STK)
+       * src/mcs51/gen.c (genNearPointerSet): added missing opcode for
+       fetching of the pointer
+       * src/mcs51/gen.c (genNearPointerGet): added reuse of PREG,
+       copied from genNearPointerSet()
+       * src/mcs51/gen.c (genNearPointerGet): don't pop r0/r1, if RESULTONSTACK
+       * src/mcs51/gen.c: changed order of freeAsmop(left/right/result)-calls.
+       If they pop r0/r1 they must be called in the opposite order than aopOp().
+       * device/lib/_mullong.c: fixed for "--model-large --int-long-reent"
+       (resp. --stack-auto), prepared for --xstack
+
+2003-08-28  Frieder Ferlemann <Frieder.Ferlemann@web.de>
+
+       * doc/sdccman.lyx: reverted tables to those in cvs 1.64
+
+2003-08-28  Bernhard Held <bernhard@bernhardheld.de>
+
+       * device/lib/_startup.c: quick & dirty fix for ds390/ds400;
+       these ports have their own __sdcc_external_start()
+
+2003-08-26  Bernhard Held <bernhard@bernhardheld.de>
+
+       pic patch provided by Slade Rich <slade_rich@yahoo.com>
+       * src/pic/glue.c (pic14printPublics): fixed bug introduced when symbol
+       type for bits was changed. It resulted in bit variables becoming
+       global, which is not permitted in PIC 14 assembly output.
+
+2003-08-23  Frieder Ferlemann <Frieder.Ferlemann@web.de>
+
+       * doc/sdccman.lyx: various additions and updates. Rearranged sections
+
+2003-08-22  Jesus Calvino-Fraga <jesusc@ece.ubc.ca>
+
+       Z80 and MCS51 linkers complaint if a public symbol is defined
+       in more than one library module:
+
+       * as/mcs51/lklib.c
+       * link/z80/lklib.c
+       * as/mcs51/Makefile.in
+
+2003-08-22  Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+       A few small changes that speed up the peephole optimizer.
+
+       * src/SDCCpeeph.c
+
+2003-08-22  Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+       Try to make the peephole optimizer smarter by maintaining
+       an association between the assembly source code and the
+       iCodes that originated them. Put this information to use
+       with a new peephole rule condition "notVolatile" so that
+       the rules can be aggressive yet still safe.
+
+       * src/SDCCpeeph.c
+       * src/SDCCpeeph.h
+       * src/mcs51/gen.c
+       * src/mcs51/peeph.def
+
+2003-08-20  Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+       Fixed bug #741761
+
+       * src/mcs51/gen.c (aopForSym, leftRightUseAcc),
+       * src/ds390/gen.c (aopForSym, leftRightUseAcc): preserve A and B
+       if the left or right operand symbols have the accuse flag set.
+
+2003-08-20  Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+       Changed the type of the result of the ! (NOT) operator to char;
+       previously it returned the same type as the source. This allows
+       us to eliminate all the genFloatNot functions (all of its target
+       implementations were very buggy) since !float can use the same
+       code as !long now.
+
+       * src/SDCCicode.c (ast2iCode): ! returns char
+       * src/mcs51/gen.c (genNot, genNotFloat),
+       * src/ds390/gen.c (genNot, genNotFloat),
+       * src/z80/gen.c (genNot, genNotFloat),
+       * src/pic/gen.c (genNot, genNotFloat),
+       * src/pic16/gen.c (genNot, genNotFloat): eliminated genNotFloat
+
+2003-08-19  Bernhard Held <bernhard@bernhardheld.de>
+
+       pic patch provided by Slade Rich <slade_rich@yahoo.com>
+       1. Interrupt would not compile properly. Ensure PCLATH register is saved
+          during interrupts. Ensure WSAVE is located at a shared bank address.
+       2. Fixed page selection in some places
+       3. Fixed BTFSS/C to where necessary use registers directly and not simply
+          the registers name strings.
+       4. Fixed "signed / unsigned compare" compiler warnings.
+       5. The PIC port manages its own allocation of the general purpose
+          registers, but makes no attempt to reuse them. As a result when
+          compiling it soon runs out of general purpose registers. Some
+          additional code was added to the files pcode.c and device.c to walk
+          through the function call tree and rename the registers so that they
+          get reused.
+
+       * src/pic/device.c
+       * src/pic/gen.c
+       * src/pic/glue.c
+       * src/pic/pcode.c
+       * src/pic/pcode.h
+       * src/pic/ralloc.c
+       * src/pic/ralloc.h
+       * src/pic/genarith.c: Fixed problems with PIC 14 port in functions
+       genPlus() & genMinus() when the result is the same as left or right
+
+2003-08-18  Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+       * src/z80/gen.c (isUnsplitable, fetchPairLong): fixed bug #770454
+
+2003-08-18  Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+       Made bitfield a distinct type from bit so that bitfields
+       convert as per ANSI C and bits retain their traditional
+       boolean style behaviour. Implemented bitfield support in
+       the z80 port.
+
+       * src/SDCCsymt.h,
+       * src/SDCCsymt.c,
+       * src/SDCCast.c,
+       * src/cdbFile.c,
+       * src/mcs51/gen.c,
+       * src/ds390/gen.c: bit v bitfield split
+       * src/z80/gen.c: New support for bitfields
+       * support/regression/tests/bitfields.c: reenabled z80,
+       added more tests
+
+2003-08-17  Frieder Ferlemann <Frieder.Ferlemann@web.de>
+
+       Rules 246.x, 247.x relate to bitfields, the others speed up
+       access to xdata mapped I/O devices.
+
+       * src/mcs51/peeph.def: added 26 peepholes 246.x - 248.x, 180.x
+
+2003-08-16  Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+       Cleaned up genPackBits and genUnpackBits and added two helper
+       functions, emitPtrByteGet & emitPtrByteSet. Added optimizations
+       for literal assignments in genPackBits (thanks to Frieder for
+       reminding me).
+
+       * src/mcs51/gen.c
+       * src/ds390/gen.c
+
+2003-08-16  Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+       Fixed bug #748310 (pointer to function type mishandled when the
+       function name is omitted). Also fixed a SIGSEGV when a function
+       attribute (reentrant, etc) is used on a non-function or on a
+       function but misplaced before the parameter list.
+
+       * src/SDCC.y (abstract_declarator, abstract_declaractor2): fixed
+       bug #748310
+       * src/SDCC.y (declarator2_function_attributes): avoided SIGSEGV
+       * support/Util/SDCCerr.h,
+       * support/Util/SDCCerr.c: Added func attr misuse error msg
+
+2003-08-13  Bernhard Held <bernhard@bernhardheld.de>
+
+       Fixed bug #787649 by anonymous
+       * src/SDCCglue.c (emitRegularMap): added emission of sloc for func ptr
+       * src/ds390/gen.c (aopForSym): fixed func ptr in sloc
+
+2003-08-14  Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+       Fixed numerous bitfield problems.
+
+       * src/SDCC.y: More bitfield related error checking
+       * src/SDCCsymt.h,
+       * src/SDCCsymt.c (compStructSize): fixed bitfield offset calc
+       * support/Util/SDCCerr.h,
+       * support/Util/SDCCerr.c: Added & edited some bitfield err msgs
+       * src/mcs51/gen.c (genPackBits, genUnpackBits): fixed mask bugs
+       * src/ds390/gen.c (genPackBits, genUnpackBits): fixed mask bugs
+       * support/regression/tests/bitfields.c: tests added
+
+2003-08-13  Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+       Made the constant following the "interrupt" keyword optional. If
+       omitted, the function will not automatically be given an entry
+       in the interrupt vector table (similar to #pragma NOIV, but
+       less syntacticly kludgy). The interrupt number is also now
+       range checked. Also fixed a bug in the high order bit example
+       in the manual.
+
+       * src/SDCC.y
+       * src/SDCCmem.c
+       * src/SDCCglue.c
+       * src/SDCCsymt.h
+       * support/Util/SDCCerr.c
+       * support/Util/SDCCerr.h
+       * doc/sdccman.lyx
+
+2003-08-13  Bernhard Held <bernhard@bernhardheld.de>
+
+       * src/SDCCcse.c (algebraicOpts): fix bug converting op from value to type
+       * src/SDCCicode.c (operandOperation): rewritten some ops
+       (*, ==, unary_minus) to fix possible overflows and to accord with ANSI
+       * src/SDCCsymt.c (computeType): literals are handled the same way as any
+       other type
+       * src/SDCCval.c (cheapestVal): removed, it doesn't accord with ANSI (can
+       be re-activated by defining REDUCE_LITERALS)
+       * src/SDCCval.c (constVal): fixed; hex and octal constants can be
+       unsigned, but are signed by default
+       * src/SDCCval.c (constVal): rearranged
+       * src/SDCCval.c (valMod): preliminary fix
+       * src/SDCCval.c (valCastLiteral): use TYPE_* types
+       * support/regression/literalop.c: added, work in progress
+
+2003-08-12  Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+       Generate warnings for useless declarations like "char data;"
+       that don't do what new users expect.
+
+       * src/SDCC.y
+       * support/Util/SDCCerr.h
+       * support/Util/SDCCerr.c
+
+2003-08-09  Bernhard Held <bernhard@bernhardheld.de>
+
+       * src/SDCCval.c (valMult): fix overflow detection of negative int
+
+2003-08-07  Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+       * src/z80/ralloc.c (joinPushes): made compatible with new signedness
+
+       Changes to support big endian targets:
+
+       * src/ports.h
+       * src/SDCCglue.c
+       * src/avr/main.c
+       * src/ds390/main.c
+       * src/izt/i186.c
+       * src/mcs51/main.c
+       * src/pic/main.c
+       * src/pic16/main.c
+       * src/xa51/main.c
+       * src/z80/main.c
+
+2003-08-06  Bernhard Held <bernhard@bernhardheld.de>
+
+       * src/SDCCval.c (cheapestVal): changed behaviour to the same as constVal()
+       * device/lib/time.c: fixed warning "integer overflow in expression"
+
+2003-08-05  Bernhard Held <bernhard@bernhardheld.de>
+
+       * src/SDCCval.c (cheapestVal, valueFromLit): use TYPE_* types
+       * src/SDCCval.c (constVal): changed default to signed; hex and octal
+       constants are unsigned; added recognition of "u" flag for unsigned
+       * src/SDCCval.c (valMult): fixed signdness, added warning for overflow
+       * src/SDCCval.c (valDiv, valMod): fixed signdness
+       * src/SDCCicode.c (operandOperation): fixed critical typo; fixed
+       signedness of modulo, left and right shift
+       * support/Util/SDCCerr.c: added warning "integer overflow in expression"
+       * support/Util/SDCCerr.h: added warning W_INT_OVL
+       * src/SDCCast.c (decorateType): fixed gcc3.3 warning
+       * src/SDCCast.c (ast_print): improved output of constants
+
+2003-08-04  Jesus Calvino-Fraga <jesusc@ece.ubc.ca>
+
+       Fixed some warnings when building with MSVC:
+
+       * as\mcs51\asdata.c
+       * as\z80\asdata.c
+       * as\mcs51\asm.h
+       * as\z80\asm.h
+       * link\z80\aslink.h
+       * link\z80\lkdata.c
+       * link\z80\lkeval.c
+       * link\z80\lkgb.c
+       * link\z80\lkihx.c
+       * link\z80\lks19.c
+       * link\z80\lksym.c
+       * support\cpp2\cpplib.c
+       * src\ds390\gen.c
+       * src\mcs51\gen.c
+    
 2003-08-03  Bernhard Held <bernhard@bernhardheld.de>
 
        * src/SDCCast.c (constExprTree): fix bug #781827 by Carl Worth <cworth@isi.edu>
        * link\z80\lkdata.c
        * link\z80\lklibr.c
        * link\z80\lkmain.c
-       * src\SDCCglue.c 
+       * src\SDCCglue.c
 
 2003-07-28  Jesus Calvino-Fraga <jesusc@ece.ubc.ca>
 
        An sfr/sbit can have an "at #" AND an initializer
        * src/SDCCsymt.c (checkSClass): 
        * src/SDCCmem.c (allocGlobal): 
-       * src/SDCCmem.c (allocLocal): 
+       * src/SDCCmem.c (allocLocal):
        * src/SDCCast.c (createBlock): 
 
 2003-03-17  Bernhard Held <bernhard@bernhardheld.de>