diff options
Diffstat (limited to 'gcc/stmt.c')
-rw-r--r-- | gcc/stmt.c | 48 |
1 files changed, 21 insertions, 27 deletions
diff --git a/gcc/stmt.c b/gcc/stmt.c index 3f940e379a7..52ae097800f 100644 --- a/gcc/stmt.c +++ b/gcc/stmt.c @@ -2197,9 +2197,7 @@ expand_expr_stmt (exp) emit_cmp_and_jump_insns (last_expr_value, last_expr_value, EQ, expand_expr (TYPE_SIZE (last_expr_type), NULL_RTX, VOIDmode, 0), - BLKmode, 0, - TYPE_ALIGN (last_expr_type) / BITS_PER_UNIT, - lab); + BLKmode, 0, lab); emit_label (lab); } } @@ -5645,20 +5643,16 @@ do_jump_if_equal (op1, op2, label, unsignedp) rtx op1, op2, label; int unsignedp; { - if (GET_CODE (op1) == CONST_INT - && GET_CODE (op2) == CONST_INT) + if (GET_CODE (op1) == CONST_INT && GET_CODE (op2) == CONST_INT) { if (INTVAL (op1) == INTVAL (op2)) emit_jump (label); } else - { - enum machine_mode mode = GET_MODE (op1); - if (mode == VOIDmode) - mode = GET_MODE (op2); - emit_cmp_and_jump_insns (op1, op2, EQ, NULL_RTX, mode, unsignedp, - 0, label); - } + emit_cmp_and_jump_insns (op1, op2, EQ, NULL_RTX, + (GET_MODE (op1) == VOIDmode + ? GET_MODE (op2) : GET_MODE (op1)), + unsignedp, label); } /* Not all case values are encountered equally. This function @@ -6101,7 +6095,7 @@ emit_case_nodes (index, node, default_label, index_type) expand_expr (node->high, NULL_RTX, VOIDmode, 0), unsignedp), - GT, NULL_RTX, mode, unsignedp, 0, + GT, NULL_RTX, mode, unsignedp, label_rtx (node->right->code_label)); emit_case_nodes (index, node->left, default_label, index_type); } @@ -6114,7 +6108,7 @@ emit_case_nodes (index, node, default_label, index_type) expand_expr (node->high, NULL_RTX, VOIDmode, 0), unsignedp), - LT, NULL_RTX, mode, unsignedp, 0, + LT, NULL_RTX, mode, unsignedp, label_rtx (node->left->code_label)); emit_case_nodes (index, node->right, default_label, index_type); } @@ -6133,7 +6127,7 @@ emit_case_nodes (index, node, default_label, index_type) expand_expr (node->high, NULL_RTX, VOIDmode, 0), unsignedp), - GT, NULL_RTX, mode, unsignedp, 0, + GT, NULL_RTX, mode, unsignedp, label_rtx (test_label)); /* Value must be on the left. @@ -6168,7 +6162,7 @@ emit_case_nodes (index, node, default_label, index_type) expand_expr (node->high, NULL_RTX, VOIDmode, 0), unsignedp), - LT, NULL_RTX, mode, unsignedp, 0, + LT, NULL_RTX, mode, unsignedp, default_label); } @@ -6201,7 +6195,7 @@ emit_case_nodes (index, node, default_label, index_type) expand_expr (node->high, NULL_RTX, VOIDmode, 0), unsignedp), - GT, NULL_RTX, mode, unsignedp, 0, + GT, NULL_RTX, mode, unsignedp, default_label); } @@ -6244,7 +6238,7 @@ emit_case_nodes (index, node, default_label, index_type) expand_expr (node->high, NULL_RTX, VOIDmode, 0), unsignedp), - GT, NULL_RTX, mode, unsignedp, 0, + GT, NULL_RTX, mode, unsignedp, label_rtx (node->right->code_label)); else { @@ -6258,7 +6252,7 @@ emit_case_nodes (index, node, default_label, index_type) expand_expr (node->high, NULL_RTX, VOIDmode, 0), unsignedp), - GT, NULL_RTX, mode, unsignedp, 0, + GT, NULL_RTX, mode, unsignedp, label_rtx (test_label)); } @@ -6270,7 +6264,7 @@ emit_case_nodes (index, node, default_label, index_type) expand_expr (node->low, NULL_RTX, VOIDmode, 0), unsignedp), - GE, NULL_RTX, mode, unsignedp, 0, + GE, NULL_RTX, mode, unsignedp, label_rtx (node->code_label)); /* Handle the left-hand subtree. */ @@ -6301,7 +6295,7 @@ emit_case_nodes (index, node, default_label, index_type) expand_expr (node->low, NULL_RTX, VOIDmode, 0), unsignedp), - LT, NULL_RTX, mode, unsignedp, 0, + LT, NULL_RTX, mode, unsignedp, default_label); } @@ -6313,7 +6307,7 @@ emit_case_nodes (index, node, default_label, index_type) expand_expr (node->high, NULL_RTX, VOIDmode, 0), unsignedp), - LE, NULL_RTX, mode, unsignedp, 0, + LE, NULL_RTX, mode, unsignedp, label_rtx (node->code_label)); emit_case_nodes (index, node->right, default_label, index_type); @@ -6331,7 +6325,7 @@ emit_case_nodes (index, node, default_label, index_type) expand_expr (node->high, NULL_RTX, VOIDmode, 0), unsignedp), - GT, NULL_RTX, mode, unsignedp, 0, + GT, NULL_RTX, mode, unsignedp, default_label); } @@ -6343,7 +6337,7 @@ emit_case_nodes (index, node, default_label, index_type) expand_expr (node->low, NULL_RTX, VOIDmode, 0), unsignedp), - GE, NULL_RTX, mode, unsignedp, 0, + GE, NULL_RTX, mode, unsignedp, label_rtx (node->code_label)); emit_case_nodes (index, node->left, default_label, index_type); @@ -6365,7 +6359,7 @@ emit_case_nodes (index, node, default_label, index_type) expand_expr (node->high, NULL_RTX, VOIDmode, 0), unsignedp), - GT, NULL_RTX, mode, unsignedp, 0, + GT, NULL_RTX, mode, unsignedp, default_label); } @@ -6377,7 +6371,7 @@ emit_case_nodes (index, node, default_label, index_type) expand_expr (node->low, NULL_RTX, VOIDmode, 0), unsignedp), - LT, NULL_RTX, mode, unsignedp, 0, + LT, NULL_RTX, mode, unsignedp, default_label); } else if (!low_bound && !high_bound) @@ -6399,7 +6393,7 @@ emit_case_nodes (index, node, default_label, index_type) NULL_RTX, mode, 0); emit_cmp_and_jump_insns (new_index, new_bound, GT, NULL_RTX, - mode, 1, 0, default_label); + mode, 1, default_label); } emit_jump (label_rtx (node->code_label)); |