lkml.org 
[lkml]   [2009]   [Dec]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [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



\
 
 \ /
  Last update: 2009-12-02 15:15    [from the cache]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and my Meterkast|Read the blog