[OT] caller-save/callee-save register styles

From: Nagendra Singh Tomar
Date: Mon Sep 08 2003 - 01:27:06 EST


I would like to know various people's experiences about the caller-save
and callee-save style of preserving register values across procedure
calls. I feel that the ABI specification should specify that but I was
unable to figure that out in the ELF-ABI specification.
What I have personally seen is only callee-save style in which the
modified registers are PUSHed on the stack on entering the function and
POPed on leaving the function. That means the caller can assume that all
the regsiter values will be same just before and after the 'call'
instruction.
Can we assume one of these styles when writing assembly code that has to
be linked with C code generated by the compiler or do we have to first
ensure the style that the compiler follows and then use that.
Comments on how other ABIs do it are highly welcome, though I am
particularly interested about the ELF-ABI and x86 arch.

Thanx,
tomar

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/