------- Comment #1 from jakub at gcc dot gnu dot org 2008-03-07 16:33 ------- Patch: 2008-03-07 Jakub Jelinek <[EMAIL PROTECTED]>
PR target/35498 * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift wdst back after sync_compare_and_swapqhi_internal. --- gcc/config/rs6000/rs6000.c.jj 2008-02-29 09:11:54.000000000 +0100 +++ gcc/config/rs6000/rs6000.c 2008-03-07 17:22:27.000000000 +0100 @@ -13858,6 +13858,9 @@ rs6000_expand_compare_and_swapqhi (rtx d 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)); } will test it now and if successfull, post. -- jakub at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- AssignedTo|unassigned at gcc dot gnu |jakub at gcc dot gnu dot org |dot org | Status|UNCONFIRMED |ASSIGNED Ever Confirmed|0 |1 Last reconfirmed|0000-00-00 00:00:00 |2008-03-07 16:33:42 date| | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35498