diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 1992-09-19 15:55:22 -0400 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1992-09-19 15:55:22 -0400 |
commit | 9e87cc8929353fabf59e883fe49005572b8469b0 (patch) | |
tree | 58e268349fef0c32cc047fdf5010bf591aa63cee /gcc/genconfig.c | |
parent | 9571f079749d8c9aaee24c292270862610260ee0 (diff) | |
download | gcc-9e87cc8929353fabf59e883fe49005572b8469b0.tar.gz |
(walk_insn_part, case IF_THEN_ELSE): Refine when HAVE_CMOVE_FLAG gets set.
From-SVN: r2185
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; |