Register r9 in the ARM ABI
Torbjorn Granlund
tg at gmplib.org
Fri Mar 1 09:59:05 CET 2013
nisse at lysator.liu.se (Niels Möller) writes:
I have a general ARM question, that maybe Richard or someone else on the
list can answer.
From the ABI documentation I've read, register r9 is in some way
reserved for implementation of things like thread local storage. If I
write a leaf function (not calling anybody else, and not using thread
local storage), can a use r9 like any other callee-save register or not?
The only potential problem case I see is if my function is interupted by
a signal, and the signal handler expects the value in register r9 to be
valid.
One way of answering such a question is to check wat GCC does for the C
code of the same package. Then follow the principle, "if GCC does it, I
may as well." :-)
I'll do 'objdump -dw file-with-large-function' in this case.
But the nerdiest way of figuring out these sort of things is reading
gcc/gcc/config/arm/arm.h, so that's wat I usually do.
--
Torbjörn
More information about the gmp-devel
mailing list