aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/expr.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.9/gcc/expr.c')
-rw-r--r--gcc-4.9/gcc/expr.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/gcc-4.9/gcc/expr.c b/gcc-4.9/gcc/expr.c
index cdb45518d..72e440119 100644
--- a/gcc-4.9/gcc/expr.c
+++ b/gcc-4.9/gcc/expr.c
@@ -551,9 +551,9 @@ convert_move (rtx to, rtx from, int unsignedp)
if (unsignedp)
fill_value = const0_rtx;
else
- fill_value = emit_store_flag (gen_reg_rtx (word_mode),
- LT, lowfrom, const0_rtx,
- VOIDmode, 0, -1);
+ fill_value = emit_store_flag_force (gen_reg_rtx (word_mode),
+ LT, lowfrom, const0_rtx,
+ lowpart_mode, 0, -1);
/* Fill the remaining words. */
for (i = GET_MODE_SIZE (lowpart_mode) / UNITS_PER_WORD; i < nwords; i++)
@@ -11134,11 +11134,12 @@ do_tablejump (rtx index, enum machine_mode mode, rtx range, rtx table_label,
GET_MODE_SIZE, because this indicates how large insns are. The other
uses should all be Pmode, because they are addresses. This code
could fail if addresses and insns are not the same size. */
- index = gen_rtx_PLUS
- (Pmode,
- gen_rtx_MULT (Pmode, index,
- gen_int_mode (GET_MODE_SIZE (CASE_VECTOR_MODE), Pmode)),
- gen_rtx_LABEL_REF (Pmode, table_label));
+ index = simplify_gen_binary (MULT, Pmode, index,
+ gen_int_mode (GET_MODE_SIZE (CASE_VECTOR_MODE),
+ Pmode));
+ index = simplify_gen_binary (PLUS, Pmode, index,
+ gen_rtx_LABEL_REF (Pmode, table_label));
+
#ifdef PIC_CASE_VECTOR_ADDRESS
if (flag_pic)
index = PIC_CASE_VECTOR_ADDRESS (index);