aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStan Cox <coxs@gnu.org>1997-06-06 20:23:26 +0000
committerStan Cox <coxs@gnu.org>1997-06-06 20:23:26 +0000
commita86202361ec068a3bd7c8614e5178a189e217cf7 (patch)
tree70972ae4607afc174e22b4a5c9e75e09add94780
parent110b339d9705df530aed2e1f6ab5c895f1fb96af (diff)
downloadgcc-a86202361ec068a3bd7c8614e5178a189e217cf7.zip
gcc-a86202361ec068a3bd7c8614e5178a189e217cf7.tar.gz
gcc-a86202361ec068a3bd7c8614e5178a189e217cf7.tar.bz2
(notice_cc_update): Set CC_FCOMI is this is a float compare.
From-SVN: r14164
-rw-r--r--gcc/config/i386/i386.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index 4a17d80..895c66f 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -3409,8 +3409,13 @@ notice_update_cc (exp)
if (SET_DEST (XVECEXP (exp, 0, 0)) == cc0_rtx)
{
CC_STATUS_INIT;
- if (stack_regs_mentioned_p (SET_SRC (XVECEXP (exp, 0, 0))))
- cc_status.flags |= CC_IN_80387;
+ if (stack_regs_mentioned_p (SET_SRC (XVECEXP (exp, 0, 0))))
+ {
+ cc_status.flags |= CC_IN_80387;
+ if (TARGET_CMOVE && stack_regs_mentioned_p
+ (XEXP (SET_SRC (XVECEXP (exp, 0, 0)), 1)))
+ cc_status.flags |= CC_FCOMI;
+ }
else
cc_status.value1 = SET_SRC (XVECEXP (exp, 0, 0));
return;