fix for see
authorMircea Namolaru <namolaru@il.ibm.com>
Tue, 30 May 2006 07:53:02 +0000 (07:53 +0000)
committerOlga Golovanevsky <olga@gcc.gnu.org>
Tue, 30 May 2006 07:53:02 +0000 (07:53 +0000)
From-SVN: r114230

gcc/see.c

index 12c71d390c4ccb678d6217d8b9ced6fd7e216338..d20cdf4be28799a014922164e5db44df81065d34 100644 (file)
--- a/gcc/see.c
+++ b/gcc/see.c
@@ -674,6 +674,10 @@ see_get_extension_reg (rtx extension, bool return_dest_reg)
   rtx reg1 = NULL;
   rtx reg2 = NULL;
 
+  /* Parallel pattern for extension not supported for the moment.  */
+  if (GET_CODE (PATTERN (extension)) == PARALLEL)
+    return NULL;
+
   set = single_set (extension);
   if (!set)
     return NULL;
@@ -719,6 +723,10 @@ see_get_extension_data (rtx extension, enum machine_mode *source_mode)
   if (!extension || !INSN_P (extension))
     return UNKNOWN;
 
+  /* Parallel pattern for extension not supported for the moment.  */
+  if (GET_CODE (PATTERN (extension)) == PARALLEL)
+    return NOT_RELEVANT;
+
   set = single_set (extension);
   if (!set)
     return NOT_RELEVANT;
@@ -3462,8 +3470,8 @@ see_analyze_one_def (rtx insn, enum machine_mode *source_mode,
         relevant.  Handling this extension as relevant would make things much
         more complicated.  */
       next_insn = NEXT_INSN (insn);
-      if (prev_insn
-         && INSN_P (prev_insn)
+      if (next_insn
+         && INSN_P (next_insn)
          && (see_get_extension_data (next_insn, &next_source_mode) !=
              NOT_RELEVANT))
        {