X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=ChangeLog;h=f6b4061ff01c422932013ef2e214ebca46b055c2;hb=7837c232c608353fb948c183d8e92775f427e5a9;hp=4052420d75acbb1c7cc8841a3c605a6f8843b734;hpb=03be4763cbca7539b86cdcc90decec59bed00c27;p=fw%2Fsdcc diff --git a/ChangeLog b/ChangeLog index 4052420d..f6b4061f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,226 @@ +2004-03-19 Erik Petrich + + * 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 + + * 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 + + * 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 + + * 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 + + * device/include/mc68hc908qy.h: corrected declarations of FLBPR and + OSCTRIMVAL as noted in bug #916008 + +2004-03-14 Erik Petrich + + * 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 + + * src/ds390/main.c (_ds390_genAssemblerPreamble): cosmetic change, + made ds390 register extensions look less like error messages + +2004-03-12 Erik Petrich + + * src/SDCCglue.c (printIvalPtr): fixed bug with pointer initializer + reported by Adam Wozniak in Sdcc-user list + +2004-03-10 Bernhard Held + + * src/SDCCast.c (decorateType): fixed with bug and promotion in + arithmetic optimizations, added debug output + +2004-03-09 Bernhard Held + + * 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 + + * src/pic16/gen.c (genSkip), + (genc16bit2lit), (gencjneshort): commented out + (is_LitOp): new helper function, checks operand type + (genCmpEq): rewritten + +2004-03-08 Bernhard Held + + * support/regression/tests/bug-908454.c: added + +2004-03-07 Bernhard Held + + * 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 + + * support/Util/findme.c: alloca() replaced with malloc()/free() pair + +2004-03-06 Vangelis Rokas + + * 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 + + * 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 + + * src/pic16/gen.c: (genpic16Code) use copy of printILine's output + for writing icode into asm output. + +2004-03-05 Vangelis Rokas + + * 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 + + * 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 + + * 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 + + * src/pic16/gen.c (gencjne): fixed for right=REG / left=LIT + +2004-02-03 Vangelis Rokas + + * src/pic16/ralloc.c (newReg): fixed bug #908929 + 2004-03-02 Erik Petrich * src/ds390/gen.c: added missing #include "main.h"