Commit 1ff37128 by Roger Sayle Committed by Richard Henderson

stmt.c (expand_end_case): Index jumptables from zero for suitably small values of minval.

        * stmt.c (expand_end_case): Index jumptables from zero for
        suitably small values of minval.

From-SVN: r46478
parent d76b2527
2001-10-24 Roger Sayle <roger@eyesopen.com>
* stmt.c (expand_end_case): Index jumptables from zero for
suitably small values of minval.
2001-10-24 Jakub Jelinek <jakub@redhat.com>
* stor-layout.c (place_union_field): If any field was aligned with
......
......@@ -5534,6 +5534,17 @@ expand_end_case (orig_index)
table_label, default_label))
{
index_type = thiscase->data.case_stmt.nominal_type;
/* Index jumptables from zero for suitable values of
minval to avoid a subtraction. */
if (! optimize_size
&& compare_tree_int (minval, 0) > 0
&& compare_tree_int (minval, 3) < 0)
{
minval = integer_zero_node;
range = maxval;
}
if (! try_tablejump (index_type, index_expr, minval, range,
table_label, default_label))
abort ();
......@@ -5541,7 +5552,7 @@ expand_end_case (orig_index)
/* Get table of labels to jump to, in order of case index. */
ncases = TREE_INT_CST_LOW (range) + 1;
ncases = tree_low_cst (range, 0) + 1;
labelvec = (rtx *) alloca (ncases * sizeof (rtx));
memset ((char *) labelvec, 0, ncases * sizeof (rtx));
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment