> : 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