[PATCH-WIP 01/13] xen/arm: use r12 to pass the hypercall number to the hypervisor
Russell King - ARM Linux
linux at arm.linux.org.uk
Thu Mar 1 05:35:20 EST 2012
On Thu, Mar 01, 2012 at 10:27:02AM +0000, Dave Martin wrote:
> So, where there's a compelling reason to inline these things, we can use
> the existing techniques if we're alert to the risks. But in cases where
> there isn't a compelling reason, aren't we just inviting fragility
> unnecessarily?
The practical experience from the kernel suggests that there isn't a
problem - that's not to say that future versions of gcc won't become
a problem, and that the compiler guys may refuse to fix it.
I think it's a feature that we should be pressing gcc guys for - it's
fairly fundamental to any programming which requires interfaces that
require certain args in certain registers, or receive results in
certain registers.
The options over this are basically:
1. refusing to upgrade to any version of gcc which does not allow
registers-in-asm
2. doing the store-to-memory reload-in-asm thing
3. hand-coding veneers for every call to marshall the registers
Each of those has its down sides, but I suspect with (1), it may be
possible to have enough people applying pressure to the compiler guys
that they finally see sense on this matter.
More information about the linux-arm-kernel
mailing list