Øyvind Harboe wrote:
Does something along the lines of a "FINAL_ELIMINATION_OFFSET()" exist,
that can be called from code-generation in the back-end?
Sorry, I don't understand what you mean saying "code-generation in the
back-end". As I wrote there is no "FINAL_ELIMINATION_OFFSET" before
reload. After the reload it is INITIAL_ELIMINATION_OFFSET.
E.g. INITIAL_ELIMINATION_OFFSET() does not take into account how the
stack pointer changes as arguments are pushed onto the stack before a
function call.
It is defined by API. If API requires to allocate stack space for out
coming arguments then INITIAL_ELIMINATION_OFFSET should take it into
account.
What I'm wondering about is whether it is possible, in the code that
gets invoked in a "define_insn" to generate the actual assembly, to find
out the difference between the SP and the frame address.
You shoul have asked this the first time. What I wrote was a general
case (it should be taken into account from machine-independent code).
For a given architecture the answer could be different. In some APIs,
the difference between sp and fp is always size of local variables and
not changed. You should check API of the target you are interesting in
to get the answer.
Vlad