diff options
author | kenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4> | 1992-09-19 19:55:22 +0000 |
---|---|---|
committer | kenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4> | 1992-09-19 19:55:22 +0000 |
commit | 517ef10916d5c7fa47b7e3320e0c6438f0a75698 (patch) | |
tree | 58e268349fef0c32cc047fdf5010bf591aa63cee /gcc/genconfig.c | |
parent | b2b08437719c52961e17bfc1f3313a2edbf0b884 (diff) | |
download | gcc-517ef10916d5c7fa47b7e3320e0c6438f0a75698.tar.gz |
(walk_insn_part, case IF_THEN_ELSE): Refine when HAVE_CMOVE_FLAG gets set.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@2185 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/genconfig.c')
-rw-r--r-- | gcc/genconfig.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/gcc/genconfig.c b/gcc/genconfig.c index 820e1d850bf..be06d832a35 100644 --- a/gcc/genconfig.c +++ b/gcc/genconfig.c @@ -126,7 +126,15 @@ walk_insn_part (part, recog_p, non_pc_set_src) return; case IF_THEN_ELSE: - if (recog_p && non_pc_set_src) + /* Only consider this machine as having a conditional move if the + two arms of the IF_THEN_ELSE are both MATCH_OPERAND. Otherwise, + we have some specific IF_THEN_ELSE construct (like the doz + instruction on the RS/6000) that can't be used in the general + context we want it for. */ + + if (recog_p && non_pc_set_src + && GET_CODE (XEXP (part, 1)) == MATCH_OPERAND + && GET_CODE (XEXP (part, 2)) == MATCH_OPERAND) have_cmove_flag = 1; break; |