On Thu, Feb 04, 2016 at 08:40:22AM -0500, David Edelsohn wrote: > On Thu, Feb 4, 2016 at 6:33 AM, Alan Modra <amo...@gmail.com> wrote: > > On Wed, Feb 03, 2016 at 05:34:17PM -0500, David Edelsohn wrote: > >> On Wed, Feb 3, 2016 at 5:28 PM, Jakub Jelinek <ja...@redhat.com> wrote: > >> > Hi! > >> > > >> > rs6000_expand_atomic_compare_and_swap uses oldval directly in > >> > a comparison instruction, but oldval might be a CONST_INT not suitable > >> > for the instruction (such as in the testcase below in SImode comparison > >> > 0x8000 constant). We need to force those into register if they don't > >> > satisfy the predicate. > >> > > >> > Bootstrapped/regtested on powerpc64{,le}-linux, ok for trunk? > >> > > >> > 2016-02-03 Jakub Jelinek <ja...@redhat.com> > >> > > >> > PR target/69644 > >> > * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap): > >> > Force oldval into register if it does not satisfy > >> > reg_or_short_operand > >> > predicate. Fix up formatting. > >> > > >> > * gcc.dg/pr69644.c: New test. > >> > >> Okay. > > > > This needs to go on gcc-5 and gcc-4.9 branches too, where it fixes > > pr69146. pr69146 and pr69644 are dups. OK to apply to the branches? > > Okay with me, but coordinate with Jakub.
Ok with me to, just don't have spare cycles now to bootstrap/regtest it. So, Alan, if you could do that, it would be greatly appreciated. Jakub