* src/mcs51/gen.c (pushSide, genSignedRightShift, genDjnz, geniPush):
[fw/sdcc] / ChangeLog
index 4052420d75acbb1c7cc8841a3c605a6f8843b734..f6b4061ff01c422932013ef2e214ebca46b055c2 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,226 @@
+2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+       * src/mcs51/gen.c (pushSide, genSignedRightShift, genDjnz, geniPush):
+       use MOVA macro to avoid "mov a,acc" when peephole optimizer is
+       disabled (fixes bug #916294)
+       * sim/ucsim/s51.src/mov.cc (inst_mov_a_addr): Throw an error on
+       "mov a,acc"; patch provided by Lenny Story
+       * device/include/mc68hc908gp32.h: header contibuted by Juan Gonzalez
+
+2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+       * src/mcs51/gen.c (genFunction): optimize RECEIVE in reentrant
+       functions
+       * src/ds390/gen.c (genFunction, genEndFunction),
+       * src/ds390/ralloc.c (ds390_assignRegisters),
+       * src/mcs51/gen.c (genFunction, genEndFunction, mcs51_assignRegisters):
+       * src/mcs51/ralloc.c (mcs51_assignRegisters): Skip optimizing registers
+       pushed if there are parameters passed on the stack. Also, a cleaner
+       way to decide if r0/r1 should be pushed/popped. (Together they fix
+       bug #918693)
+
+2004-03-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+       * doc/sdccman.lyx,
+       * device/lib/mcs51/crtpagesfr.asm,
+       * device/lib/mcs51/crtxinit.asm,
+       * device/lib/mcs51/crtxstack.asm: Changed name of _PAGESFR to _XPAGE
+       to avoid confusion with Si Lab's SFRPAGE register.
+
+2004-03-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+       * src/SDCCglue.c (emitMaps): allow public sfr variables
+       * src/SDCCglue.c (initialComments): include compiler build date
+       with compiler version and put the timestamp of the generated
+       assembly file on a serperate line to be less confusing.
+       * src/port.h: added genInitStartup hook
+       * 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: genInitStartup initialize as NULL (default to
+       historical behaviour)
+       * src/SDCCglue.c (glue): _sdcc_gsinit_startup is now port specific.
+       * src/mcs51/main.c: (_mcs51_genInitStartup, _mcs51_genExtraAreas,
+       _mcs51_genXINIT, _mcs51_genRAMCLEAR): link initialization code from the
+       library instead of hard coding it into the compiler.
+       * support/regression/ports/mcs51-stack-auto/spec.mk,
+       * src/SDCCmain.c (linkEdit): added mcs51.lib to the link libraries
+       * device/lib/mcs51/Makefile,
+       * device/lib/small/Makefile,
+       * device/lib/large/Makefile,
+       * device/lib/mcs51/crtpagesfr.asm,
+       * device/lib/mcs51/crtstart.asm,
+       * device/lib/mcs51/crtxclear.asm,
+       * device/lib/mcs51/crtxinit.asm,
+       * device/lib/mcs51/crtclear.asm,
+       * device/lib/mcs51/crtxstack.asm: move most of the mcs51 C runtime
+       startup/initialization out of src/SDCCglue.c and src/mcs51/main.c
+       and into user configurable files.
+       * device/lib/clean.mk: clean mcs51 directory too
+       * support/regression/tests/longlit.c: added static to T1 declaration
+       * doc/sdccman.lyx: documented _PAGESFR sfr for customizing pdata
+       accesses in the initialization code
+
+2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+       * device/include/mc68hc908qy.h: corrected declarations of FLBPR and
+       OSCTRIMVAL as noted in bug #916008
+
+2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+       * src/SDCCloop.c (basicInduction): fixed bug with loop induction
+       in loops with multiple exits (reported as incorrect registers
+       used by Martin Helmling in Sdcc-user list)
+
+2004-03-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
+
+       * src/ds390/main.c (_ds390_genAssemblerPreamble): cosmetic change,
+       made ds390 register extensions look less like error messages
+
+2004-03-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+       * src/SDCCglue.c (printIvalPtr): fixed bug with pointer initializer
+       reported by Adam Wozniak in Sdcc-user list
+
+2004-03-10 Bernhard Held <bernhard AT bernhardheld.de>
+       
+       * src/SDCCast.c (decorateType): fixed with bug and promotion in
+       arithmetic optimizations, added debug output
+
+2004-03-09 Bernhard Held <bernhard AT bernhardheld.de>
+
+       * device/lib/time.c (mktime): fixed bug reported by Bert Thomas
+       * sdcc.spec: updated and split sdcc into 3 rpms
+       * src/SDCCast.c (decorateType): &|^ don't need addCast(); addCast() is
+       needed for literals of LEFT_OP and '+'
+       * src/SDCCicode.c (geniCodeLogic): I must have been braindead when I
+       introduced RESULT_TYPE_NOPROM
+       (geniCodeMultiply): fixed logic for decision if mul is optimized to 
+       left shift
+       * src/SDCCsymt.c (computeType): op is int; added RESULT_TYPE_OTHER;
+       limited promotion to int only for '*'
+       * src/SDCCsymt.h (computeType): op is int, removed RESULT_TYPE_NOPROM
+
+2004-03-09 Hans Dorn <hjdorn AT users.sourceforge.net>
+
+       * src/pic16/gen.c (genSkip),
+       (genc16bit2lit), (gencjneshort): commented out
+       (is_LitOp): new helper function, checks operand type
+       (genCmpEq): rewritten
+
+2004-03-08 Bernhard Held <bernhard AT bernhardheld.de>
+
+       * support/regression/tests/bug-908454.c: added
+
+2004-03-07 Bernhard Held <bernhard AT bernhardheld.de>
+
+       * src/SDCCast.c (addCast): fixed bug #908454 by promoting bits to char
+       * src/SDCCicode.c (usualBinaryConversions): op needs int type
+       (geniCodeCast): cosmetic, don't preserve bit storage class
+       (geniCodeLeftShift): added promotion
+       (geniCodeLogic): fixed regression
+       * src/SDCCsymt.c (computeTypeOr): accept bits too
+       (compareType): 2nd part of fix for bug #908454, needed for bitfields
+
+2004-03-07  Borut Razem <borut.razem AT siol.net>
+
+       * support/Util/findme.c: alloca() replaced with malloc()/free() pair
+
+2004-03-06 Vangelis Rokas <vrokas AT otenet.gr>
+
+       * src/pic16/ralloc.c (pic16_genPackRegisters): reverted to old
+       version of pic16_genPackRegisters which does not check if ic is a
+       CAST operator,
+       * src/pic16/gen.c (ifxForOp): disabled new and untested code in
+       function cause string1.c regression test fails
+
+2004-03-06 Bernhard Held <bernhard AT bernhardheld.de>
+
+       * sim/ucsim/configure.in,
+       * sim/ucsim/configure,
+       * sim/ucsim/doc/Makefile.in: use docdir
+       * src/SDCC.y: fixed sbit atrributes
+       * src/SDCCast.c (getResultTypeFromType): added support for bitfields
+       * src/SDCCast.c (decorateType): |^& need special promotion handling
+       * src/SDCCast.h,
+       * src/SDCCsymt.h: moved definition of RESULT_TYPE
+       * src/SDCCsymt.h (computeType),
+       * src/SDCCicode.c: computeType() needs op
+       * src/SDCCsymt.c (checkTypeSanity),
+       * doc/sddman.lyx: "plain" bitfields are unsigned
+       * src/SDCCsymt.c (computeTypeOr): added
+       * src/SDCCsymt.c (computeType): added support for bitfields, fixed
+       |^& ops
+       * src/SDCCval.c (val*): computeType() needs op
+       * src/SDCCval.c (valCastLiteral): fixed casting of bitfields
+       * support/regression/tests/onebyte.c: added tests for |^&
+
+2004-03-06 Hans Dorn <hjdorn AT users.sourceforge.net>
+
+       * src/pic16/gen.c: (genpic16Code) use copy of printILine's output
+       for writing icode into asm output.
+
+2004-03-05 Vangelis Rokas <vrokas AT otenet.gr>
+
+       * src/pic16/device.c: added some debug lines enabled
+       with macro DEBUG_CHECK,
+       * src/pic16/genarith.c: more debug in genPlus,
+       * (pic16_genUMult8XLit_16, pic16_genUMult8X8_16): removed,
+       * (pic16_genUMult16X16_16, pic16_genUMult16XLit_16): NEW,
+       * src/pic16/gen.c: added prototypes for pic16_genMult16X16_16,
+       * (aopForSym): onStack symbols are re-placed in data memspace,
+       and onStack flag is cleared,
+       * (pic16_popGetTempReg, pic16_popReleaseTempReg): modified to
+       copy temporary pcodeop,
+       * (genPcall): added warning for not updating PCLATU,
+       * (genFunction): removed test with IFFUNC_CALLEESAVES, its
+       always true for pic16 port,
+       * (genMultOneWord): NEW, supports integer multiplication,
+       * (genMult): modified to call genMultOneWord,
+       * (ifxForOp): added warning when return NULL,
+       * src/pic16/glue.c (pic16emitRegularMap): symbol implicit
+       flag is set before call to operandFromSymbol for implicit
+       added structures,
+       * src/pic16/main.c (_pic16_finaliseOptions): options.float_rent,
+       options.intlong_rent are set by default,
+       * (_hasNativeMulFor): modified to allow port generation of integer
+       multiplication,
+       * src/pic16/ralloc.c (pic16_allocDirReg): commented out line which
+       set regtype to REG_SFR for all registers, restricting seting the
+       accessBank flag for registers 0<= r < 0x80 and 0xf80<=r<=0xfff,
+
+2004-03-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
+
+       * src/mcs51/peephole.def: added 251.b and 253.x. 253.x are applied
+       more than 500 times in the regression tests
+
+2004-03-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+       * support/Util/SDCCerr.h,
+       * support/Util/SDCCerr.c,
+       * src/SDCC.y (struct_or_union_specifier, enum_specifier,
+       enumerator_list),
+       * src/SDCCsymt.c (addSymChain): show location of oriignal definition
+       for symbol conflicts.
+       * support/valdiags/tests/enum.c,
+       * support/valdiags/tests/tentdecl.c,
+       * support/valdiags/tests/struct.c: expect possible error messages
+       referring to original symbol definitions.
+       * src/SDCC.y (struct_or_union_specifier, struct_declarator),
+       * src/SDCCsymt.h,
+       * src/SDCCsymt.c (promoteAnonStructs): support anonymous struct/union
+
+2004-03-03 Hans Dorn <hjdorn AT users.sourceforge.net>
+
+       * src/pic16/gen.c (gencjne): fixed for right=REG / left=LIT
+
+2004-02-03 Vangelis Rokas <vrokas AT otenet.gr>
+
+       * src/pic16/ralloc.c (newReg): fixed bug #908929
+
 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
 
        * src/ds390/gen.c: added missing #include "main.h"