From ecc9dd932a3a296e3fccee2a61af4ec57ba8bbee Mon Sep 17 00:00:00 2001 From: Nathan Sidwell Date: Wed, 31 May 2000 10:57:19 +0000 Subject: [PATCH] stmt (expand_end_case): Reorder conversion sequence for jump table to avoid extra truncations. * stmt (expand_end_case): Reorder conversion sequence for jump table to avoid extra truncations. From-SVN: r34291 --- gcc/ChangeLog | 5 +++++ gcc/stmt.c | 8 ++++---- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 35680e7ffa3..47df6aa8c03 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2000-05-31 Nathan Sidwell + + * stmt (expand_end_case): Reorder conversion sequence for jump + table to avoid extra truncations. + Wed May 31 01:31:42 2000 Jeffrey A Law (law@cygnus.com) * ifcvt.c (cond_exec_process_if_block): Do nothing if the last insn diff --git a/gcc/stmt.c b/gcc/stmt.c index a1beb46ca9a..3d26748029b 100644 --- a/gcc/stmt.c +++ b/gcc/stmt.c @@ -5579,10 +5579,10 @@ expand_end_case (orig_index) #ifdef HAVE_tablejump if (! win && HAVE_tablejump) { - index_expr = convert (thiscase->data.case_stmt.nominal_type, - fold (build (MINUS_EXPR, index_type, - index_expr, minval))); - index_type = TREE_TYPE (index_expr); + index_type = thiscase->data.case_stmt.nominal_type; + index_expr = fold (build (MINUS_EXPR, index_type, + convert (index_type, index_expr), + convert (index_type, minval))); index = expand_expr (index_expr, NULL_RTX, VOIDmode, 0); emit_queue (); index = protect_from_queue (index, 0); -- 2.30.2