mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-18 04:20:25 +08:00
re PR rtl-optimization/63952 (bootstrap failure (ICE in prepare_cmp_insn) on s390x in libjava)
PR rtl-optimization/63952 * optabs.c (prepare_cmp_insn): Do not call can_compare_p for CCmode. * config/s390/s390.md ("cbranchcc4"): Accept any s390_comparison. Remove incorrect TARGET_HARD_FLOAT check and no-op expander code. From-SVN: r217929
This commit is contained in:
parent
4190ea3804
commit
de6fba39f3
@ -1,3 +1,10 @@
|
||||
2014-11-21 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
|
||||
|
||||
PR rtl-optimization/63952
|
||||
* optabs.c (prepare_cmp_insn): Do not call can_compare_p for CCmode.
|
||||
* config/s390/s390.md ("cbranchcc4"): Accept any s390_comparison.
|
||||
Remove incorrect TARGET_HARD_FLOAT check and no-op expander code.
|
||||
|
||||
2014-11-21 Ilya Tocar <ilya.tocar@intel.com>
|
||||
|
||||
* common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512IFMA_SET,
|
||||
|
@ -8142,16 +8142,13 @@
|
||||
|
||||
(define_expand "cbranchcc4"
|
||||
[(set (pc)
|
||||
(if_then_else (match_operator 0 "s390_eqne_operator"
|
||||
(if_then_else (match_operator 0 "s390_comparison"
|
||||
[(match_operand 1 "cc_reg_operand" "")
|
||||
(match_operand 2 "const0_operand" "")])
|
||||
(match_operand 2 "const_int_operand" "")])
|
||||
(label_ref (match_operand 3 "" ""))
|
||||
(pc)))]
|
||||
"TARGET_HARD_FLOAT"
|
||||
"s390_emit_jump (operands[3],
|
||||
s390_emit_compare (GET_CODE (operands[0]), operands[1], operands[2]));
|
||||
DONE;")
|
||||
|
||||
""
|
||||
"")
|
||||
|
||||
|
||||
;;
|
||||
|
@ -4167,8 +4167,11 @@ prepare_cmp_insn (rtx x, rtx y, enum rtx_code comparison, rtx size,
|
||||
|
||||
if (GET_MODE_CLASS (mode) == MODE_CC)
|
||||
{
|
||||
gcc_assert (can_compare_p (comparison, CCmode, ccp_jump));
|
||||
*ptest = gen_rtx_fmt_ee (comparison, VOIDmode, x, y);
|
||||
enum insn_code icode = optab_handler (cbranch_optab, CCmode);
|
||||
test = gen_rtx_fmt_ee (comparison, VOIDmode, x, y);
|
||||
gcc_assert (icode != CODE_FOR_nothing
|
||||
&& insn_operand_matches (icode, 0, test));
|
||||
*ptest = test;
|
||||
return;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user