s390.c (s390_expand_atomic): Adjust QI/HI atomic nand to the changed 4.4 semantic.
authorAndreas Krebbel <krebbel1@de.ibm.com>
Thu, 20 Nov 2008 22:08:08 +0000 (22:08 +0000)
committerAndreas Krebbel <krebbel@gcc.gnu.org>
Thu, 20 Nov 2008 22:08:08 +0000 (22:08 +0000)
2008-11-20  Andreas Krebbel  <krebbel1@de.ibm.com>

* gcc/config/s390/s390.c (s390_expand_atomic): Adjust QI/HI atomic
nand to the changed 4.4 semantic.

From-SVN: r142063

gcc/ChangeLog
gcc/config/s390/s390.c

index 5ef8190..3f2908e 100644 (file)
@@ -1,3 +1,8 @@
+2008-11-20  Andreas Krebbel  <krebbel1@de.ibm.com>
+
+       * gcc/config/s390/s390.c (s390_expand_atomic): Adjust QI/HI atomic
+       nand to the changed 4.4 semantic.
+
 2008-11-20  Jakub Jelinek  <jakub@redhat.com>
 
        PR middle-end/29215
index e64b58c..3f21cd5 100644 (file)
@@ -4681,10 +4681,10 @@ s390_expand_atomic (enum machine_mode mode, enum rtx_code code,
                                 NULL_RTX, 1, OPTAB_DIRECT);
       break;
     case MULT: /* NAND */
-      new_rtx = expand_simple_binop (SImode, XOR, new_rtx, ac.modemask,
-                                NULL_RTX, 1, OPTAB_DIRECT);
       new_rtx = expand_simple_binop (SImode, AND, new_rtx, val,
                                 NULL_RTX, 1, OPTAB_DIRECT);
+      new_rtx = expand_simple_binop (SImode, XOR, new_rtx, ac.modemask,
+                                NULL_RTX, 1, OPTAB_DIRECT);
       break;
     default:
       gcc_unreachable ();