From 1d6eaf3dea4928714cd2e1f365d5758d73770d55 Mon Sep 17 00:00:00 2001 From: Richard Kenner Date: Mon, 18 Mar 1996 20:04:00 -0500 Subject: [PATCH] (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 --- gcc/expmed.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/gcc/expmed.c b/gcc/expmed.c index dbd7eb2bb4f..ec392e7aa73 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. */ -- 2.30.2