aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1996-03-18 20:04:00 -0500
committerRichard Kenner <kenner@gcc.gnu.org>1996-03-18 20:04:00 -0500
commit1d6eaf3dea4928714cd2e1f365d5758d73770d55 (patch)
tree35bbbca056243ef9c4413906dee4cebe83d54f9a /gcc
parent7b7e56373edf1e0df722cc44a0380b2ee01c9e12 (diff)
downloadgcc-1d6eaf3dea4928714cd2e1f365d5758d73770d55.zip
gcc-1d6eaf3dea4928714cd2e1f365d5758d73770d55.tar.gz
gcc-1d6eaf3dea4928714cd2e1f365d5758d73770d55.tar.bz2
(emit_store_flag): If expanding (GE X 0) will need two insns, don't use subtarget for the result of the first insn.
(emit_store_flag): If expanding (GE X 0) will need two insns, don't use subtarget for the result of the first insn. Move a likely constant to the start of a condition. From-SVN: r11562
Diffstat (limited to 'gcc')
-rw-r--r--gcc/expmed.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/gcc/expmed.c b/gcc/expmed.c
index dbd7eb2..ec392e7a 100644
--- a/gcc/expmed.c
+++ b/gcc/expmed.c
@@ -3955,9 +3955,11 @@ emit_store_flag (target, code, op0, op1, mode, unsignedp, normalizep)
subtarget = 0;
if (code == GE)
- op0 = expand_unop (mode, one_cmpl_optab, op0, subtarget, 0);
+ op0 = expand_unop (mode, one_cmpl_optab, op0,
+ ((STORE_FLAG_VALUE == 1 || normalizep)
+ ? 0 : subtarget), 0);
- if (normalizep || STORE_FLAG_VALUE == 1)
+ if (STORE_FLAG_VALUE == 1 || normalizep)
/* If we are supposed to produce a 0/1 value, we want to do
a logical shift from the sign bit to the low-order bit; for
a -1/0 value, we do an arithmetic shift. */