On 01/07/2010 12:58 PM, Jean Christophe Beyler wrote:
Dear all,
I've gone to using unspec and I think I know why I have a problem. It
seems that actually, the problem lies with the fact that these
instructions are touching an internal register and how I am handling
that register.
Since I don't want the register allocator to use that register, I put
a 1 in FIXED_REGISTERS. However, it's state is persistent across
function calls, meaning that if nothing changes its state, it will be
still set in the same way after a return call.
However, CALL_USED_REGISTERS is defined as "1 for registers not
available across function calls. These must include the
FIXED_REGISTERS and also any registers that can be used without being
saved.".
These two sentences seem in contradiction with what I want :
- I want to define a register that is not available to the register
allocator but is available across function calls.
See CALL_REALLY_USED_REGISTERS.
r~