i386.c (ix86_emit_fp_unordered_jump): Use testb $4, %ah insn instead of sahf insn if !TARGET_USE_SAHF.

2004-05-07  Uros Bizjak  <uros@kss-loka.si>

	* config/i386/i386.c (ix86_emit_fp_unordered_jump): Use
	testb $4, %ah insn instead of sahf insn if !TARGET_USE_SAHF.

From-SVN: r81620
This commit is contained in:
Uros Bizjak 2004-05-07 16:29:41 +02:00 committed by Roger Sayle
parent 7600f0944b
commit 2484cc35b0
2 changed files with 21 additions and 3 deletions

View File

@ -1,3 +1,8 @@
2004-05-07 Uros Bizjak <uros@kss-loka.si>
* config/i386/i386.c (ix86_emit_fp_unordered_jump): Use
testb $4, %ah insn instead of sahf insn if !TARGET_USE_SAHF.
2004-05-07 Andrew Pinski <pinskia@physics.uc.edu>
* loop-doloop.c (doloop_valid_p): Make sure that body
@ -75,6 +80,7 @@
(STACK_BOUNDARY): Delete.
2004-05-06 Stuart Hastings <stuart@apple.com>
* gcc/doc/invoke.texi: Restore -fgcse-after-reload doc from 1.421,
mistakenly clobbered by 1.423.

View File

@ -15938,10 +15938,22 @@ ix86_emit_fp_unordered_jump (rtx label)
rtx temp;
emit_insn (gen_x86_fnstsw_1 (reg));
emit_insn (gen_x86_sahf_1 (reg));
if (TARGET_USE_SAHF)
{
emit_insn (gen_x86_sahf_1 (reg));
temp = gen_rtx_REG (CCmode, FLAGS_REG);
temp = gen_rtx_UNORDERED (VOIDmode, temp, const0_rtx);
}
else
{
emit_insn (gen_testqi_ext_ccno_0 (reg, GEN_INT (0x04)));
temp = gen_rtx_REG (CCNOmode, FLAGS_REG);
temp = gen_rtx_NE (VOIDmode, temp, const0_rtx);
}
temp = gen_rtx_REG (CCmode, FLAGS_REG);
temp = gen_rtx_UNORDERED (VOIDmode, temp, const0_rtx);
temp = gen_rtx_IF_THEN_ELSE (VOIDmode, temp,
gen_rtx_LABEL_REF (VOIDmode, label),
pc_rtx);