From 3a627503d6aa79272846a53fc33f8cf3b82f3284 Mon Sep 17 00:00:00 2001 From: Roger Sayle Date: Mon, 6 Oct 2003 23:18:31 +0000 Subject: [PATCH] i386.c (ix86_expand_setcc): Annotate the floating point comparison sequence with a REG_EQUAL note that... * config/i386/i386.c (ix86_expand_setcc): Annotate the floating point comparison sequence with a REG_EQUAL note that describes the comparison's semantics. From-SVN: r72173 --- gcc/ChangeLog | 6 ++++++ gcc/config/i386/i386.c | 8 +++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b0a81bc511b..cbd783f40e2 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2003-10-06 Roger Sayle + + * config/i386/i386.c (ix86_expand_setcc): Annotate the floating + point comparison sequence with a REG_EQUAL note that describes + the comparison's semantics. + 2003-10-06 Roger Sayle * expr.c (expand_expr ): Handle the void type semantics diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index 1c606df7694..67285f94ea0 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -9334,7 +9334,7 @@ ix86_split_fp_branch (enum rtx_code code, rtx op1, rtx op2, int ix86_expand_setcc (enum rtx_code code, rtx dest) { - rtx ret, tmp, tmpreg; + rtx ret, tmp, tmpreg, equiv; rtx second_test, bypass_test; if (GET_MODE (ix86_compare_op0) == DImode @@ -9373,6 +9373,12 @@ ix86_expand_setcc (enum rtx_code code, rtx dest) emit_insn (gen_iorqi3 (tmp, tmpreg, tmp2)); } + /* Attach a REG_EQUAL note describing the comparison result. */ + equiv = simplify_gen_relational (code, QImode, + GET_MODE (ix86_compare_op0), + ix86_compare_op0, ix86_compare_op1); + set_unique_reg_note (get_last_insn (), REG_EQUAL, equiv); + return 1; /* DONE */ } -- 2.30.2