diff options
Diffstat (limited to 'gcc/reorg.c')
-rw-r--r-- | gcc/reorg.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/gcc/reorg.c b/gcc/reorg.c index 984ec926aae..f4c484bcf71 100644 --- a/gcc/reorg.c +++ b/gcc/reorg.c @@ -1086,9 +1086,14 @@ get_branch_condition (insn, target) || (GET_CODE (XEXP (src, 2)) == LABEL_REF && XEXP (XEXP (src, 2), 0) == target)) && XEXP (src, 1) == pc_rtx) - return gen_rtx_fmt_ee (reverse_condition (GET_CODE (XEXP (src, 0))), - GET_MODE (XEXP (src, 0)), - XEXP (XEXP (src, 0), 0), XEXP (XEXP (src, 0), 1)); + { + enum rtx_code rev; + rev = reversed_comparison_code (XEXP (src, 0), insn); + if (rev != UNKNOWN) + return gen_rtx_fmt_ee (rev, GET_MODE (XEXP (src, 0)), + XEXP (XEXP (src, 0), 0), + XEXP (XEXP (src, 0), 1)); + } return 0; } |