Re: [patch 3/8] mutex subsystem, add atomic_*_call_if_*() to i386

Daniel Jacobowitz
2005-12-21T20:32:55Z

On Wed, Dec 21, 2005 at 10:57:40AM -0800, Linus Torvalds wrote:
> Actually (and re-reading the email I sent that wasn't obvious at all), my
> _preferred_ fix is to literally force the use of the above kind of
> function: not save/restore %eax at all, but just say that any function
> that is called by the magic "atomic_*_call_if()" needs to always return
> the argument it gets as its return value too.
>
> That allows the caller to not even have to care. And the callee obviously
> already _has_ that value, so it might as well return it (and in the best
> case it's not going to add any cost at all, either to the caller or the
> callee).
>
> So you might opt to keep the asm the same, just change the calling
> conventions.

This new macro is only going to be used in x86-specific files, right?
There's no practical way to implement this on lots of other
architectures.

Embedding a call in asm("") can break other things too - for instance,
unwind tables could become inaccurate.

--
Daniel Jacobowitz
CodeSourcery, LLC