]> gcc.gnu.org Git - gcc.git/commitdiff
*** empty log message ***
authorCharles Hannum <mycroft@gnu.org>
Wed, 8 Jul 1992 10:28:26 +0000 (10:28 +0000)
committerCharles Hannum <mycroft@gnu.org>
Wed, 8 Jul 1992 10:28:26 +0000 (10:28 +0000)
From-SVN: r1515

gcc/regclass.c
gcc/stmt.c

index 58399dd4041753f851bcc74ce74661ac6e30bedc..cd5b0d002592747fc3c69e42644047fc6a77eddd 100644 (file)
@@ -103,7 +103,17 @@ int reg_alloc_order[FIRST_PSEUDO_REGISTER] = REG_ALLOC_ORDER;
 
 /* For each reg class, a HARD_REG_SET saying which registers are in it.  */
 
-HARD_REG_SET reg_class_contents[] = REG_CLASS_CONTENTS;
+HARD_REG_SET reg_class_contents[N_REG_CLASSES];
+
+/* The same information, but as an array of ints.  We copy from these
+   ints to the table above.  This is done so that the tm.h files do
+   not have to be aware of the wordsize for machines with <= 64 regs.  */
+
+#define N_REG_INTS  \
+  ((FIRST_PSEUDO_REGISTER + (HOST_BITS_PER_INT - 1)) / HOST_BITS_PER_INT)
+
+static int int_reg_class_contents[N_REG_CLASSES][N_REG_INTS] 
+  = REG_CLASS_CONTENTS;
 
 /* For each reg class, number of regs it contains.  */
 
@@ -158,6 +168,19 @@ init_reg_sets ()
 {
   register int i, j;
 
+  /* First copy the register information from the initial int form into
+     the regsets.  */
+
+  for (i = 0; i < N_REG_CLASSES; i++)
+    {
+      CLEAR_HARD_REG_SET (reg_class_contents[i]);
+
+      for (j = 0; j < FIRST_PSEUDO_REGISTER; j++)
+       if (int_reg_class_contents[i][j / HOST_BITS_PER_INT]
+           & (1 << (j % HOST_BITS_PER_INT)))
+         SET_HARD_REG_BIT (reg_class_contents[i], j);
+    }
+
   bcopy (initial_fixed_regs, fixed_regs, sizeof fixed_regs);
   bcopy (initial_call_used_regs, call_used_regs, sizeof call_used_regs);
   bzero (global_regs, sizeof global_regs);
index 837726534a5455d3ac9a95692816b4677f0e1586..b9cea5f976529833d2b62724ff3ef375904fb8a1 100644 (file)
@@ -3240,9 +3240,6 @@ pushcase (value, label, duplicate)
   if (index_type == error_mark_node)
     return 0;
 
-  /* There may be NOP_EXPR around the value if we got it from an enum.  */
-  STRIP_NOPS (value);
-
   /* Convert VALUE to the type in which the comparisons are nominally done.  */
   if (value != 0)
     value = convert (nominal_type, value);
@@ -3372,10 +3369,6 @@ pushcase_range (value1, value2, label, duplicate)
     }
   case_stack->data.case_stmt.seenlabel = 1;
 
-  /* There may be NOP_EXPR around the value if we got it from an enum.  */
-  STRIP_NOPS (value1);
-  STRIP_NOPS (value2);
-
   /* Convert VALUEs to type in which the comparisons are nominally done.  */
   if (value1 == 0)  /* Negative infinity. */
     value1 = TYPE_MIN_VALUE(index_type);
This page took 0.067046 seconds and 5 git commands to generate.