Made bitfield a distinct type from bit so that bitfields
[fw/sdcc] / ChangeLog
index bfb611922d2c7008b4c4ad10f0b4fb6336c0c3c3..e534f0fd507d9bcee8a358c6b2771d40646f9886 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,137 @@
+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
        * 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>