X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=ChangeLog;h=414d399132c03af4bfe91fce5db798e4cd1e825f;hb=4e21292c95e90105383519e6a1b0a7d5ed749d70;hp=5d86caebe054cf518eb6f698aeabe788ca0cfc6c;hpb=0900d4c3a2f72f0f6acff40372d845eb04387378;p=fw%2Fsdcc diff --git a/ChangeLog b/ChangeLog index 5d86caeb..414d3991 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,430 @@ +2003-09-05 Erik Petrich + * src/SDCCast.c (isConformingBody): fixed loop reversal bug + reported in bug #800609 + +2003-09-04 Vangelis Rokas + * 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 + + * device/lib/_mullong.c: replaced int by short for gcc + +2003-08-31 Erik Petrich + + * 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 + * 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 + + * 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 + + * doc/sdccman.lyx: reverted tables to those in cvs 1.64 + +2003-08-28 Bernhard Held + + * device/lib/_startup.c: quick & dirty fix for ds390/ds400; + these ports have their own __sdcc_external_start() + +2003-08-26 Bernhard Held + + pic patch provided by Slade Rich + * 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 + + * doc/sdccman.lyx: various additions and updates. Rearranged sections + +2003-08-22 Jesus Calvino-Fraga + + 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 + + A few small changes that speed up the peephole optimizer. + + * src/SDCCpeeph.c + +2003-08-22 Erik Petrich + + 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 + + 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 + + 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 + + pic patch provided by Slade Rich + 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 + + * src/z80/gen.c (isUnsplitable, fetchPairLong): fixed bug #770454 + +2003-08-18 Erik Petrich + + 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + * 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 + + 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 + + * src/SDCCval.c (valMult): fix overflow detection of negative int + +2003-08-07 Erik Petrich + + * 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 + + * 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 + + * 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 + + 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 + + * src/SDCCast.c (constExprTree): fix bug #781827 by Carl Worth + +2003-08-01 Jesus Calvino-Fraga + + * support\librarian\clean.mk: Do not remove Makefile. + * support\librarian\Makefile: added. + +2003-08-01 Jesus Calvino-Fraga + + Added librarian to MSVC build: + * all.dsp + * sdcc.dsw + * support\librarian\librarian.dsp + + 'configure' not needed for librarian, removed: + * support\librarian\configure + * support\librarian\configure.in + * support\librarian\config_in.h + * support\librarian\Makefile.in + + Hopefully these ones built the librarian and the rest of sdcc properly: + * Makefile + * Makefile.common.in + + Messed up 'configure', so revert to previous version: + * configure + * configure.in + +2003-07-31 Bernhard Held + + * src/SDCCicode.c (operandOperation): 3. fix, this time for Alpha; ULONG has 64 bits + there, while the mantissa of a double is "only" 53 bits wide. + +2003-07-31 Jesus Calvino-Fraga + + Adding sdcclib to the build. MSVC project coming soon. + Files added/changed: + + * support\librarian\clean.mk + * support\librarian\configure + * support\librarian\configure.in + * support\librarian\config_in.h + * support\librarian\Makefile.bcc + * support\librarian\Makefile.in + * support\librarian\sdcclib.c + * Makefile.bcc + * Makefile + * Makefile.common.in + * configure + * configure.in + +2003-07-29 Jesus Calvino-Fraga + + Linker now complaints if linked modules have conflicting options, for + example, one compiled using --model-large and another one compiled with + --model-small. The following files were modified: + + * as\mcs51\asdata.c + * as\mcs51\aslink.h + * as\mcs51\asm.h + * as\mcs51\asmain.c + * as\mcs51\asout.c + * as\mcs51\i51pst.c + * as\mcs51\lkdata.c + * as\mcs51\lklibr.c + * as\mcs51\lkmain.c + * as\z80\asdata.c + * as\z80\asm.h + * as\z80\asmain.c + * as\z80\asout.c + * as\z80\z80pst.c + * link\z80\aslink.h + * link\z80\lkdata.c + * link\z80\lklibr.c + * link\z80\lkmain.c + * src\SDCCglue.c + +2003-07-28 Jesus Calvino-Fraga + + *link/z80/aslink.h, link/z80/lklibr.c, as/mcs51/aslink.h, + as/mcs51/lklibr.c: Generate a warning when a library is not found. + +2003-07-28 Bernhard Held + + * src/z80/mappings.i: fix _mul[us][int,long] entries + +2003-07-26 Jesus Calvino-Fraga + + *src/SDCCmain.c: do not search for crt0.o when using --nostdlib + +2003-07-24 Bernhard Held + + * src/SDCCicode.c (operandOperation): really fixed problem with bitops + * support/regression/tests/bitopcse.c: added + fixed warning: + * src/avr/gen.c: + * src/pic/gen.c: + * src/pic16/gen.c: + * src/z80/gen.c: + * src/xa51/gen.c: + +2003-07-24 Jesus Calvino-Fraga + + added support for new library format to z80, gbz80 linkers: + *link/z80/aslink.h + *link/z80/lklex.c + *link/z80/lklib.c + *link/z80/lklist.c + +2003-07-24 Bernhard Held + + * src/SDCCicode.c (operandOperation): fixed problem with bitops and 0xffffffff; + after {double d = 0xffffffff; long l = d;} l will be 0x80000000 (LONG_MIN) + 2003-07-23 Bernhard Held added DUMMY_READ_VOLATILE: @@ -25,7 +452,7 @@ 2003-07-20 Bernhard Held - * src/pic16/glue.c: minor cleanup by Vangelis + * src/pic16/glue.c: minor cleanup by Vangelis 2003-07-19 Frieder Ferlemann @@ -36,7 +463,7 @@ * device/lib/_ser.c: process RX bytes earlier than TX bytes * device/lib/serial.c: process RX bytes earlier than TX bytes * src/mcs51/gen.c(genGenPointerGet/Set): removed writing of type after postincrement - + 2003-07-18 Erik Petrich * src/z80/gen.c: fixed some right shift bugs (#772726 among them) @@ -47,15 +474,15 @@ 2003-07-17 Bernhard Held - * device/lib/Makefile.in: bad fix, reverted to 1.43 - + * device/lib/Makefile.in: bad fix, reverted to 1.43 + 2003-07-16 Bernhard Held * device/lib/Makefile.in: added missing z80 object files 2003-07-14 Bernhard Held - * src/SDCCcse.c (algebraicOpts): CSE fun with &|^ and 0x00/0xff literals + * src/SDCCcse.c (algebraicOpts): CSE fun with &|^ and 0x00/0xff literals pic16 progress by Vangelis: * src/SDCCglobl.h: * src/SDCCmain.c: @@ -188,7 +615,7 @@ 2003-06-08 Jesus Calvino-Fraga * support/Util/SDCCerr.c, src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx: - added option --vc, so sdcc errors and warnings are compatible with + added option --vc, so sdcc errors and warnings are compatible with Microsoft Visual Studio. 2003-06-07 Jesus Calvino-Fraga @@ -219,7 +646,7 @@ 2003-05-29 Bernhard Held * src/pic/device.c: added 16F819, patch by "David I. Lehn" - * src/SDCCcse.c (algebraicOpts): fixed "c * 1" + * src/SDCCcse.c (algebraicOpts): fixed "c * 1" 2003-05-28 Bernhard Held