From: Kevin V. <ke...@vi...> - 2001-08-24 19:13:51
|
I just comitted a change to improve static array initialization (currently only for the DS390 port). If a port has the arrayInitializerSuppported bool in the port structure set, instead of breaking the array initialization down into a series of pointer sets, it instead creates a new iCode, ARRAYINIT, which takes one operand (the array to initialize) and a list of values to initialize the array with. This allows the port specific code generator to handle this case, and hopefully generate better code. See ds390/gen.c:genArrayInit for the '390 implementation. The 8051 version should be similar, but can't make the assumption that the array in in XDATA space. The generated code looks much better (and is generated much faster for large static arrays), but I haven't actually tested it on real hardware yet. If problems occur, please change the arrayInitializerSuppported value in the DS390 port structure (ds390/main.c) to FALSE, which should fix the problem, and let me know. Peace, Kevin |