On Tuesday, June 08, 1999 2:22 PM, Eric J. Korpela [SMTP:[EMAIL PROTECTED]]
wrote:
: > : Spilled registers are not
: > : necessarily reloaded to the same type of register they were spilled from.
: > : For example if you have an address in bx, and it gets spilled, it may
: > : get reloaded to ax, which cannot be used for indexing.
: >
: > Interesting. Well, can't spilling get turned off so that the compiler
: > emits push instructions and working from memory when registers run out,
: > so that the spill problem doesn't exhibit itself?
:
: Nope, push instructions are just another form of register spilling (meaning
: a "push bx" can get reloaded via a "pop ax"). It looked like fixing the
: problem would have meant major changes to the register allocator. I don't
: have that much time on my hands.
:
: Eric
:
:
I think I get it now. Basically, as you said in your first email, LCC is completely
buggy for processors sporting instruction sets with non-orthogonal register sets.
(most
CISC processors).
Now for the dumb question: does the 80386 allow eax, ebx, ecx, and edx as
base registers? Is this why lcc works for 32 bit intel?
Greg
Greg