On 03/28/2012 03:59 PM, David Edelsohn wrote:

> On Tue, Mar 27, 2012 at 5:21 PM, Meador Inge <mead...@codesourcery.com> wrote:
>> Hi All,
>>
>> This patch fixes an issue reported by one of our customers where an 
>> instruction
>> exception gets raised when using '__sync_fetch_and_add' on a PowerPC 440
>> processor.  The instruction causing the exception is 'lwsync'.  Luckily 
>> Joseph
>> laid the groundwork when solving a similar issue for e500 cores [1] by 
>> adding a
>> new macro ('TARGET_NO_LWSYNC') for controlling whether 'lwsync' is available 
>> .
>>
>> This patch extends the 'TARGET_NO_LWSYNC' macro to include the PowerPC 440
>> and 603 processors.  The 440 because that is what the problem was reported
>> against and the 603 because problems have been reported elsewhere [4] about
>> that.  It doesn't seem like 'lwsync' is supported on 603 processors anyway.  
>> I
>> looked at the IBM [2] and Freescale [3] manuals and both use the heavyweight
>> implementation of 'sync' (i.e. the 'sync' bit L=0).
> 
> Meador,
> 
> Something does not make sense about this patch.  Other than unique
> issues with e500, lwsync should be accepted everywhere.  On older
> processors, the L bit is ignored and it is treated as hwsync.  So I do
> not understand the need for explicit TARGET_NO_LWSYNC on PPC440 or
> PPC603.
> 
> Is this some sort of PPC440 errata for the specific 440 being used by
> Mentor's customer?

David,

I am still working on getting the specific processor information.  Thanks
for the lwsync info and review feedback.  If I can't get the processor
specifics, then I will just drop the patch.

Thanks again,

-- 
Meador Inge
CodeSourcery / Mentor Embedded
http://www.mentor.com/embedded-software

Reply via email to