From: Sandeep D. <sa...@dd...> - 2001-02-18 01:16:05
|
Fixed 3 bugs a) case label constant -0x01 b) scope of some local variables with same name c) constant pointer semantics. Sandeep |
From: Sandeep D. <sa...@dd...> - 2001-02-26 02:44:39
|
Fixed bit field initialization & access in code space. Sandeep |
From: Sandeep D. <sa...@dd...> - 2001-03-03 22:53:23
|
Made a commit. a) fixed the bug with pointer init with array. b) Added a routine PA(ast *t), this will print the ast in a human readable format, (Not very well tested). can be used only after decorateType() has been called on the tree. Sandeep |
From: Sandeep D. <sa...@dd...> - 2001-04-01 00:42:43
|
a) Added an optimization to the mcs51 back-end. I think this can be copied for ds390. For expressions like *p++ = 0; or c = *p++; the increment will be done during the pointerget/pointerset. Separate addition will not be generated. b) Added asm file extension to port.h REBUILD src DIRECTORY FROM SCRATCH. this allows avr port to generate .s file extension for assembler. c) Some more AVR specific progress. Sandeep |
From: Sandeep D. <sa...@wi...> - 2002-01-30 14:55:07
|
2002-01-30 Sandeep Dutta <sa...@dd...> * src/mcs51/gen.c, src/mcs51/main.c, src/mcs51/ralloc.c: Added support for --parms-in-bank1 * src/ds390/peeph.def: added a few more peephole optimzations * src/ds390/main.c: 1) added __builtin_inp & __builtin_outp used to read in data of given length from a memory mapped port 2) added __builtin_memcmp 3) added __builtin_swapw swap bytes of a short * src/ds390/gen.c, src/ds390/gen.h, src/ds390/ralloc.c: 1) handle multiple send & receives from register bank1 2) ralloc can now allocate DPTR1 to some liveRanges * src/SDCCsymt.c, src/SDCCsymt.h: changes to handle multiple sends & receives * src/SDCCptropt.h: added some pointer arithmetic optimization * src/SDCCptropt.c: added some pointer arithmetic optimizations but not stable yet so not called from anywhere (will get this working shortly) * src/SDCCopt.c: fixed for multiple sends & receives * src/SDCCmain.c: 1) added options --parms-in-bank1 (ds390/mcs51) & --protect-sp-update 2) preprocessing done AFTER port->finalizeoptions . This allows ports to set preprocessor defines (depending on options) * src/SDCCicode.c, src/SDCCicode.h: changes made to handle multiple sends & receives * src/SDCCglobl.h: Added options --protect-sp-update (ds390) and --parms-in-bank1 (ds390/mcs51) * src/SDCCcse.c, src/SDCCcse.h: added function findbackward def (to be used in upcoming optimization) * src/SDCCcflow.c, src/SDCCcflow.h: added function returnAtEnd - to determine if a basic block terminates with a RETURN iCode * src/SDCCast.c, src/SDCCast.h: added option parms-in-bank1 * device/lib/_divsint.c, device/lib/_divslong.c, device/lib/_divuint.c * device/lib/_divulong.c, device/lib/_modsint.c, device/lib/_modslong.c * device/lib/_modulong.c, device/lib/_mulint.c, device/lib/_mullong.c: adjusted for --parms-in-bank1 option * device/include/string.h: donot redefine "reentrant" keyword * device/include/ds80c390.h: Added some more SFRs |
From: Sandeep D. <sa...@wi...> - 2002-01-30 15:42:10
|
A little bit more on the changes --parms-in-bank1 (ds390/mcs51) -- when this option is set the compiler will pass parameters using bank1 registers. The first parameter will be passed in DPTR:b:a (as before) the second parameter onwards 8 more bytes will be passed in b1_0 thru b1_7... i.e. with this option set we can pass up to 12 bytes of parameter in registers. The libraries will need to be rebuilt with this option , the interrupt service routines will save and restore this bank ...using bank1 in a interrupt service routine will have BAD consequences .. I have fixed up the optimized assembler routines in the library to work with this option as well . --protect-sp-update (ds390) will disable interrupts when updating ESP:SP. The DS390 port can now allocate DPTR1 to live ranges , currently only for pointer variables (size <= 3), infrastructure added for more DPTRS. Dhrystone for ds390 now stands at 504 . Sandeep |
From: Sandeep D. <sa...@wi...> - 2002-02-20 15:06:18
|
2002-02-20 Sandeep Dutta <sa...@dd...> * src/SDCCloop.c: Fixed BUG #519583. If a conditional block ended in a return/break statement inside a loop, it was not being considered part of the loop. * src/SDCCcflow.c: Removed fix (Fixed in SDCCloop.c) |
From: Sandeep D. <sa...@wi...> - 2001-12-24 04:01:53
|
* /src/ds390/gen.c, /src/ds390/main.c, /src/ds390/peeph.def, /src/ds390/ralloc.c: ALPHA version for -mTININative * /src/izt/i186.c, /src/izt/tlcs900h.c, /src/mcs51/main.c, /src/pic/main.c, /src/z80/main.c, /src/avr/main.c: updated to reflect changes in the port structure * /src/port.h: added function do_assemble (similar to do_link) if non-null this function will be called to do assembly (-mTININative) requires a multi command assembly added function genAssemblerEnd will be called to generate assembler Epilogue * /src/SDCCsymt.c: added _JavaNative to debug info printing * /src/SDCCmain.c: added option --tini-libid added port->do_assemble function (-mTININative) has a multi command assemble * /src/SDCCglue.c: Disabled "constExpr" check added port->genAssemblerEnd function * /src/SDCCglobl.h: Added option --tini-libid value * /src/SDCCast.h: tookout optimizeCompare from the header (has no external references) * /src/SDCCast.c: made one more function "static" |
From: Sandeep D. <sa...@wi...> - 2001-12-24 22:47:54
|
2001-12-24 Sandeep Dutta <sa...@dd...> * /src/ds390/gen.c, /src/ds390/main.c: More builtin function additions for TININative * /src/ds390/ralloc.c: Had broken the regression testsuite * /src/SDCCast.c: Fixed a bug in dumptree * /src/SDCCsymt.c, /src/SDCCsymt.h: Added funcattr hasStackParms will be set for reentrant functions when there are paramteres on the stack, this helps in minimizing frame pointer generation typeFromStr can handle function pointers now * /doc/builtins.txt, /doc/TININative.txt: *** empty log message *** |
From: Sandeep D. <sa...@wi...> - 2001-12-30 00:30:59
|
2001-12-29 Sandeep Dutta <sa...@dd...> * /sdcc/src/ds390/gen.c: a) improved computing address of stack variable b) took out some #if 0 code c) improved parmBytes adjustment d) improved genPlusIncr & genMinusIncr e) genCmp could generate bad code (when left assigned to DPTR) f) Fixed bug in hasInc * /sdcc/src/ds390/ralloc.c: a) packRegsForSupport could mess up live information (Fixed) b) packRegsDPTRuse could be incorrect for left & right shift * /sdcc/src/mcs51/ralloc.c: packRegsForSupport could mess up the live information (Fixed) * /sdcc/src/mcs51/gen.c: Fixed a bug in hasInc * /sdcc/src/SDCCast.c: can reverse a loop even if function call is present as long as the loop control variable is local & is not passed as parameter |