From: Jakub Jelinek Date: Sat, 8 Mar 2008 07:30:55 +0000 (+0100) Subject: re PR target/35498 (libgomp/testsuite/libgomp.c/atomic-3.c fails on ppc-linux) X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=2725b75c3397530b2fdb9fc9e8123eb95c5ae748;p=gcc.git re PR target/35498 (libgomp/testsuite/libgomp.c/atomic-3.c fails on ppc-linux) PR target/35498 * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift wdst back after sync_compare_and_swapqhi_internal. From-SVN: r133024 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 1ffe9d59b98..39945f51807 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2008-03-08 Jakub Jelinek + + PR target/35498 + * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift + wdst back after sync_compare_and_swapqhi_internal. + 2008-03-08 Uros Bizjak PR target/22152 diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index a9797998ada..5204a555452 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -13903,6 +13903,9 @@ rs6000_expand_compare_and_swapqhi (rtx dst, rtx mem, rtx oldval, rtx newval) emit_insn (gen_sync_compare_and_swapqhi_internal (wdst, mask, oldval, newval, mem)); + /* Shift the result back. */ + emit_insn (gen_lshrsi3 (wdst, wdst, shift)); + emit_move_insn (dst, gen_lowpart (mode, wdst)); }