Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <529281D8.9020909@pennware.com>
Date: Sun, 24 Nov 2013 16:46:48 -0600
From: Richard Pennington <rich@...nware.com>
To: musl@...ts.openwall.com
Subject: Re: Clang powerpc pthread_arch.h patch.

On 11/24/2013 04:31 PM, Rich Felker wrote:
> On Sun, Nov 24, 2013 at 01:23:44PM -0600, Richard Pennington wrote:
>> I had a problem with clang and __pthread_self() on the powerpc. This
>> is the patch I applied to work around it.
>>
>> Index: pthread_arch.h
>> ===================================================================
>> --- pthread_arch.h      (revision 3604)
>> +++ pthread_arch.h      (working copy)
>> @@ -1,6 +1,11 @@
>>   static inline struct pthread *__pthread_self()
>>   {
>> +#ifdef __clang__
>> +        char *tp;
>> +        __asm__ __volatile__ ("mr %0, 2" : "=r" (tp) : : "2" );
>> +#else
> Why is "2" in the clobberlist? It's just read, not written. In
> principle there should be some way to indicate that the asm has hidden
> state it reads so that it couldn't be reordered before the initial asm
> call that initializes the register, but that would be massive
> reordering that's not likely to happen anyway. I'm not sure what the
> right way to encode this as a constraint is...
>
> Rich
Hi Rich,

You're right about the clobber list. Not that it matters much in this 
case I think.

-Rich

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.