alpha.c (summarize_insn): Handle ASM_OPERANDS.
authorRichard Henderson <rth@cygnus.com>
Wed, 5 Nov 1997 03:36:53 +0000 (19:36 -0800)
committerJeff Law <law@gcc.gnu.org>
Wed, 5 Nov 1997 03:36:53 +0000 (20:36 -0700)
        * alpha.c (summarize_insn): Handle ASM_OPERANDS.  Don't recurse
        for SUBREG, just fall through.

        * alpha.c (alpha_handle_trap_shadows): Init sum.defd to zero.

        * alpha.md (attr trap): Make TRAP_YES non-zero for sanity's sake.

From-SVN: r16339

gcc/ChangeLog
gcc/config/alpha/alpha.c
gcc/config/alpha/alpha.md

index 3e73e87a54349d4eca0674a6f40ab9baed48f319..e275e1795d4c685191cd16f9a5fc3cf9b34f4f44 100644 (file)
@@ -1,3 +1,12 @@
+Tue Nov  4 20:36:50 1997  Richard Henderson  (rth@cygnus.com)
+
+       * alpha.c (summarize_insn): Handle ASM_OPERANDS.  Don't recurse
+       for SUBREG, just fall through.
+
+       * alpha.c (alpha_handle_trap_shadows): Init sum.defd to zero.
+
+       * alpha.md (attr trap): Make TRAP_YES non-zero for sanity's sake.
+
 Tue Nov  4 18:49:42 1997  Jeffrey A Law  (law@cygnus.com)
 
        * fixincludes: Fix "hypot" prototype in NeXT math.h.
index 88771b9396d20bf35b517f52fa69a7be52906a7c..db40afc893328ecd095fb5bcb0741d8927dbeaaf 100644 (file)
@@ -2848,11 +2848,20 @@ summarize_insn (x, sum, set)
       summarize_insn (XEXP (x, 0), sum, 0);
       break;
 
+    case ASM_OPERANDS:
+      for (i = ASM_OPERANDS_INPUT_LENGTH (x) - 1; i >= 0; i--)
+       summarize_insn (ASM_OPERANDS_INPUT (x, i), sum, 0);
+      break;
+
     case PARALLEL:
       for (i = XVECLEN (x, 0) - 1; i >= 0; i--)
        summarize_insn (XVECEXP (x, 0, i), sum, 0);
       break;
 
+    case SUBREG:
+      x = SUBREG_REG (x);
+      /* FALLTHRU */
+
     case REG:
       {
        int regno = REGNO (x);
@@ -2888,10 +2897,6 @@ summarize_insn (x, sum, set)
       summarize_insn (XEXP (x, 0), sum, 0);
       break;
 
-    case SUBREG:
-      summarize_insn (SUBREG_REG (x), sum, set);
-      break;
-
     case CONST_INT:   case CONST_DOUBLE:
     case SYMBOL_REF:  case LABEL_REF:     case CONST:
       break;
@@ -3022,7 +3027,7 @@ alpha_handle_trap_shadows (insns)
                  sum.used.i = 0;
                  sum.used.fp = 0;
                  sum.used.mem = 0;
-                 sum.defd = shadow.used;
+                 sum.defd = sum.used;
 
                  switch (GET_CODE (i))
                    {
index c12acfbc4a7f9b405c4dbdcdbb341319e96538c4..8fbb0e3032f3b84feafaafa1db9a04cedb75c36a 100644 (file)
@@ -39,7 +39,7 @@
 ;; The TRAP_TYPE attribute marks instructions that may generate traps
 ;; (which are imprecise and may need a trapb if software complention
 ;; is desired).
-(define_attr "trap" "yes,no" (const_string "no"))
+(define_attr "trap" "no,yes" (const_string "no"))
 
 ;; For the EV4 we include four function units: ABOX, which computes
 ;; the address, BBOX, used for branches, EBOX, used for integer