The first ever release of SDCC (with only mcs51) had this concept of psuedo
registers, I killed it very shortly because of various issues that came up,
which I had no good solutions..
Now having had some experience I would like to revive this , this will
reduce spillage (those nasty slocs). Here is a brief description of what I
plan to do.
memory locations 0x8-0xb reserved for these pseudo registers, these
will be allocated to live-ranges / iTemps that do not cross call boundaries
no need to push & pop them across function calls (infrastructure for this
exists.. for the AVR port ). And ONLY for the functions that operate on
register bank 0.
The only problem I see are Interrupt service routines, they will need to
save & restore
these registers ... which could mean a big overhead.
Feedbacks are welcome.