------- 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

Reply via email to