parent
3b5e8cb62e
commit
2e0e2b76be
|
@ -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. */
|
/* 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. */
|
/* For each reg class, number of regs it contains. */
|
||||||
|
|
||||||
|
@ -158,6 +168,19 @@ init_reg_sets ()
|
||||||
{
|
{
|
||||||
register int i, j;
|
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_fixed_regs, fixed_regs, sizeof fixed_regs);
|
||||||
bcopy (initial_call_used_regs, call_used_regs, sizeof call_used_regs);
|
bcopy (initial_call_used_regs, call_used_regs, sizeof call_used_regs);
|
||||||
bzero (global_regs, sizeof global_regs);
|
bzero (global_regs, sizeof global_regs);
|
||||||
|
|
|
@ -3240,9 +3240,6 @@ pushcase (value, label, duplicate)
|
||||||
if (index_type == error_mark_node)
|
if (index_type == error_mark_node)
|
||||||
return 0;
|
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. */
|
/* Convert VALUE to the type in which the comparisons are nominally done. */
|
||||||
if (value != 0)
|
if (value != 0)
|
||||||
value = convert (nominal_type, value);
|
value = convert (nominal_type, value);
|
||||||
|
@ -3372,10 +3369,6 @@ pushcase_range (value1, value2, label, duplicate)
|
||||||
}
|
}
|
||||||
case_stack->data.case_stmt.seenlabel = 1;
|
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. */
|
/* Convert VALUEs to type in which the comparisons are nominally done. */
|
||||||
if (value1 == 0) /* Negative infinity. */
|
if (value1 == 0) /* Negative infinity. */
|
||||||
value1 = TYPE_MIN_VALUE(index_type);
|
value1 = TYPE_MIN_VALUE(index_type);
|
||||||
|
|
Loading…
Reference in New Issue