* config/m32c/jump.md (untyped_call): Add.
authorDJ Delorie <dj@redhat.com>
Sat, 24 May 2008 00:51:18 +0000 (20:51 -0400)
committerDJ Delorie <dj@gcc.gnu.org>
Sat, 24 May 2008 00:51:18 +0000 (20:51 -0400)
From-SVN: r135843

gcc/ChangeLog
gcc/config/m32c/jump.md

index cde9086127626e3e0646f5611c2023d092aecc95..57bb8bec414f8ceefee72365743fec47ba219cdc 100644 (file)
@@ -1,5 +1,7 @@
 2008-05-23  DJ Delorie  <dj@redhat.com>
 
+       * config/m32c/jump.md (untyped_call): Add.
+
        * config/m32c/m32c.c (m32c_return_addr_rtx): Change pointer type
        for A24 to PSImode.
        (m32c_address_cost): Detail costs for indirect offsets.
index f5b185bebadb6e29a4a0acd8495f44c24f5d4745..b9585c5d43febc4812c7d14c946728c379d41cbc 100644 (file)
@@ -111,3 +111,23 @@ switch (which_alternative) {
 }"
   [(set_attr "flags" "x,x,x")]
   )
+
+(define_expand "untyped_call"
+  [(parallel [(call (match_operand 0 "" "")
+                    (const_int 0))
+              (match_operand 1 "" "")
+              (match_operand 2 "" "")])]
+  ""
+  "
+{
+  int i;
+
+  emit_call_insn (gen_call (operands[0], const0_rtx, const0_rtx));
+
+  for (i = 0; i < XVECLEN (operands[2], 0); i++)
+    {
+      rtx set = XVECEXP (operands[2], 0, i);
+      emit_move_insn (SET_DEST (set), SET_SRC (set));
+    }
+  DONE;
+}")