On 2012-06-11 18:40, David Edelsohn wrote:
>> > Nope.  I do see the obvious mistake in the atomic_load pattern though:
>> > The mode iterator should have been INT1 not INT.
> Did you want to commit the fix for the iterator?
> 

Applied the following to mainline.

It ought to go onto the 4.7 branch as well, as it's a wrong-code bug.
Are we at a place in the 4.7.1 release process where that's possible?


r~
2012-06-12  Richard Henderson  <r...@redhat.com>

        * config/rs6000/sync.md (atomic_load, atomic_store): Use INT1 mode
        iterator instead of INT.


diff --git a/gcc/config/rs6000/sync.md b/gcc/config/rs6000/sync.md
index d4848a8..5b79428 100644
--- a/gcc/config/rs6000/sync.md
+++ b/gcc/config/rs6000/sync.md
@@ -111,8 +111,8 @@
    (set_attr "length" "12")])
 
 (define_expand "atomic_load<mode>"
-  [(set (match_operand:INT 0 "register_operand" "")            ;; output
-       (match_operand:INT 1 "memory_operand" ""))              ;; memory
+  [(set (match_operand:INT1 0 "register_operand" "")           ;; output
+       (match_operand:INT1 1 "memory_operand" ""))             ;; memory
    (use (match_operand:SI 2 "const_int_operand" ""))]          ;; model
   ""
 {
@@ -139,8 +139,8 @@
 })
 
 (define_expand "atomic_store<mode>"
-  [(set (match_operand:INT 0 "memory_operand" "")              ;; memory
-       (match_operand:INT 1 "register_operand" ""))            ;; input
+  [(set (match_operand:INT1 0 "memory_operand" "")             ;; memory
+       (match_operand:INT1 1 "register_operand" ""))           ;; input
    (use (match_operand:SI 2 "const_int_operand" ""))]          ;; model
   ""
 {

Reply via email to