On Mon, May 18, 2026 at 09:04:55PM +0530, Surya Kumari Jangala wrote:
> Hi Steve,
> Can you please add a testcase? The patch looks fine.
> I cannot approve it though. 
> 
> Mike, can you please approve this patch?

This looks ok, assuming you add a test case.

> Regards,
> Surya
> 
> On 18/05/26 3:08 AM, Steve Markgraf wrote:
> > The MPC8xx PowerQUICC family only implements full 'sync', 'lwsync'
> > is not yet supported, same situation as for E500 cores.
> > 
> > Fix emitting 'lwsync' instructions by adding PROCESSOR_MPCCORE
> > to the TARGET_NO_LWSYNC define.
> > 
> > Encountered an illegal instruction crash (in libstdc++ atomics) and
> > verified the fix on actual MPC860 hardware.
> > 
> > Minimal test:
> > 
> >   $ cat test.c
> >   #include <stdatomic.h>
> >   atomic_int counter;
> >   void store_release(int val) {
> >       atomic_store_explicit(&counter, val, memory_order_release);
> >   }
> > 
> >   $ powerpc-linux-gnu-gcc -mcpu=860 -msoft-float -O2 -S -o- test.c | grep 
> > sync
> >   lwsync     <-- should be sync
> > 
> >   $ powerpc-linux-gnu-gcc -mcpu=8540 -msoft-float -O2 -S -o- test.c | grep 
> > sync
> >   sync       <-- correct (TARGET_NO_LWSYNC already covers E500/8540)
> > 
> > gcc/ChangeLog:
> > 
> >     * config/rs6000/rs6000.h (TARGET_NO_LWSYNC): Add
> >     PROCESSOR_MPCCORE.
> > ---
> >  gcc/config/rs6000/rs6000.h | 5 +++--
> >  1 file changed, 3 insertions(+), 2 deletions(-)
> > 
> > diff --git a/gcc/config/rs6000/rs6000.h b/gcc/config/rs6000/rs6000.h
> > index 2d3016db5..a6ce0560f 100644
> > --- a/gcc/config/rs6000/rs6000.h
> > +++ b/gcc/config/rs6000/rs6000.h
> > @@ -533,9 +533,10 @@ extern int rs6000_vector_align[];
> >                              || TARGET_VSX                           \
> >                              || TARGET_HARD_FLOAT)
> >  
> > -/* E500 cores only support plain "sync", not lwsync.  */
> > +/* E500 and MPC8xx cores only support plain "sync", not lwsync.  */
> >  #define TARGET_NO_LWSYNC (rs6000_cpu == PROCESSOR_PPC8540 \
> > -                     || rs6000_cpu == PROCESSOR_PPC8548)
> > +                     || rs6000_cpu == PROCESSOR_PPC8548 \
> > +                     || rs6000_cpu == PROCESSOR_MPCCORE)
> >  
> >  
> >  /* Which machine supports the various reciprocal estimate instructions.  */
> 

-- 
Michael Meissner, IBM
PO Box 98, Ayer, Massachusetts, USA, 01432
email: [email protected]

Reply via email to