aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Henderson <rth@gcc.gnu.org>2005-05-10 09:20:35 -0700
committerRichard Henderson <rth@gcc.gnu.org>2005-05-10 09:20:35 -0700
commit8173eefc35d1368d28353f78e133701d3cde13ff (patch)
tree52b41e95384197d598f3abac4ec4d5b85969c63e
parent992f396fcb3903a363a1ac3c885c492d3e789b63 (diff)
downloadgcc-8173eefc35d1368d28353f78e133701d3cde13ff.zip
gcc-8173eefc35d1368d28353f78e133701d3cde13ff.tar.gz
gcc-8173eefc35d1368d28353f78e133701d3cde13ff.tar.bz2
sync.md (sync_add<I48MODE>): Fix arguments for no return value pattern.
* config/ia64/sync.md (sync_add<I48MODE>): Fix arguments for no return value pattern. From-SVN: r99524
-rw-r--r--gcc/ChangeLog9
-rw-r--r--gcc/config/ia64/sync.md12
2 files changed, 14 insertions, 7 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 5152682..bf396f7 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,10 @@
-2005-05-11 Grigory Zagorodnev <grigory.zagorodnev@intel.com>
- H.J. Lu <hongjiu.lu@intel.com
+2005-05-10 Richard Henderson <rth@redhat.com>
+
+ * config/ia64/sync.md (sync_add<I48MODE>): Fix arguments for
+ no return value pattern.
+
+2005-05-10 Grigory Zagorodnev <grigory.zagorodnev@intel.com>
+ H.J. Lu <hongjiu.lu@intel.com>
* libgcov.c (create_file_directory): New function. Create
directory for the given file name.
diff --git a/gcc/config/ia64/sync.md b/gcc/config/ia64/sync.md
index 0ea8e96..7e9c98a 100644
--- a/gcc/config/ia64/sync.md
+++ b/gcc/config/ia64/sync.md
@@ -32,15 +32,17 @@
[(set_attr "itanium_class" "syst_m")])
(define_expand "sync_add<mode>"
- [(match_operand:I48MODE 0 "gr_register_operand" "")
- (match_operand:I48MODE 1 "memory_operand" "")
- (match_operand:I48MODE 2 "general_operand" "")]
+ [(match_operand:I48MODE 0 "memory_operand" "")
+ (match_operand:I48MODE 1 "general_operand" "")]
""
{
- if (!fetchadd_operand (operands[2], <MODE>mode))
+ rtx tmp;
+ if (!fetchadd_operand (operands[1], <MODE>mode))
FAIL;
+
+ tmp = gen_reg_rtx (<MODE>mode);
emit_insn (gen_memory_barrier ());
- emit_insn (gen_fetchadd_acq_<mode> (operands[0], operands[1], operands[2]));
+ emit_insn (gen_fetchadd_acq_<mode> (tmp, operands[0], operands[1]));
DONE;
})