From a92123e9663dc9b205a282d35c59a9100835de84 Mon Sep 17 00:00:00 2001 From: rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> Date: Thu, 28 Mar 2002 18:52:43 +0000 Subject: [PATCH] * config/alpha/alpha.c (alpha_emit_conditional_branch): TFmode NE comparison should be done vs !=0 not >0 return code. Tidy cases. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@51519 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 5 +++++ gcc/config/alpha/alpha.c | 30 +++++++++++++++++++----------- 2 files changed, 24 insertions(+), 11 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 288f5107940c..b1094d701e8c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2002-03-28 Richard Henderson <rth@redhat.com> + + * config/alpha/alpha.c (alpha_emit_conditional_branch): TFmode NE + comparison should be done vs !=0 not >0 return code. Tidy cases. + 2002-03-28 Richard Henderson <rth@redhat.com> * c-decl.c (finish_function): New arg can_defer_p. Pass it diff --git a/gcc/config/alpha/alpha.c b/gcc/config/alpha/alpha.c index 6893677a2066..73baa891e7e4 100644 --- a/gcc/config/alpha/alpha.c +++ b/gcc/config/alpha/alpha.c @@ -2812,21 +2812,29 @@ alpha_emit_conditional_branch (code) 1 true Convert the compare against the raw return value. */ - if (code == UNORDERED || code == ORDERED) - cmp_code = EQ; - else - cmp_code = code; + switch (code) + { + case UNORDERED: + cmp_code = EQ; + code = LT; + break; + case ORDERED: + cmp_code = EQ; + code = GE; + break; + case NE: + cmp_code = NE; + code = NE; + break; + default: + cmp_code = code; + code = GT; + break; + } op0 = alpha_emit_xfloating_compare (cmp_code, op0, op1); op1 = const0_rtx; alpha_compare.fp_p = 0; - - if (code == UNORDERED) - code = LT; - else if (code == ORDERED) - code = GE; - else - code = GT; } /* The general case: fold the comparison code to the types of compares -- GitLab