Messages in this thread |  | | Date | Wed, 02 Dec 2009 16:12:26 +0200 | | From | Avi Kivity <> | | Subject | Re: [tip:core/locking] locking, x86: Slightly shorten __ticket_spin_trylock() |
| |
On 12/02/2009 04:06 PM, Jan Beulich wrote: >>>> Ingo Molnar<mingo@elte.hu> 02.12.09 14:29>>> >>>> >> at first quick sight, this bit looks odd: >> >> + union { int i; bool b; } new; >> >> + return new.b; >> >> shouldnt that be short based, to work correctly in the 0-255 CPUs case? >> > No, I can't see why. In both instances, we're using (and had been > using previously, just with the added movzbl) the outcome of a > setCC instruction, which produces valid bool (single byte) values. > It is precisely that reason why I needed to introduce these unions, > since the upper bytes of the register aren't valid (and shouldn't be > looked at by the caller). > >
Wouldn't 'u8 ret', as an additional argument be sufficient? gcc still ought to be able to use the same register for new and ret if we remove the early clobber.
-- error compiling committee.c: too many arguments to function
|  |