question - recycling GPR variables
David McNab <[email protected]> Thu, 18 Nov 2004 02:08:14 +1300
| Newsgroups | gmane.comp.lang.forth.picforth |
|---|---|
| Message-ID | <[email protected]> |
Hi, In writing another PicForth driver, I'm in a situation of having to handle about 8 values simultaneously. Having them all on the stack is out of the question. Yes, there's now a 'pick' word, but there are no corresponding words to support storing back to location n in the stack, nor is there anything like rot, -rot, roll or -roll. Also, PIC architecture forces inefficiencies when addressing variable locations. So my only option is to allocate variables for these values, and operate directly on the variables. With other HLLs such as C, the compiler avoids a data stack altogether, and allocates cells in absolute GPR locations instead. It then uses heuristics to analyse the call tree and recycle these GPRs wherever possible. Is there anything like this in PicForth? I'm trying to conserve data memory, and would prefer not to have 9 GPRs permanently allocated for just this one driver alone. -- Cheers David