This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Why is x86_sahf_1 pattern disabled in x86_64?
- From: Michel Lespinasse <walken at zoy dot org>
- To: Uros Bizjak <uros at kss-loka dot si>
- Cc: gcc at gcc dot gnu dot org, Jan Hubicka <jh at suse dot cz>
- Date: Fri, 7 May 2004 05:04:01 -0700
- Subject: Re: Why is x86_sahf_1 pattern disabled in x86_64?
- References: <409B6EFA.9020201@kss-loka.si>
On Fri, May 07, 2004 at 01:11:54PM +0200, Uros Bizjak wrote:
> According too ChangeLog, x86_sahf_1 pattern is disabled in x86_64 mode:
>
> Mon Mar 12 15:41:08 CET 2001 Jan Hubicka <jh@suse.cz>
> * i386.md (all XFmode patterns except swapxf): Disable for 64bit.
> * i386.md (x86_sahf_1): Disable for 64bit.
> (popsi*, pophi*): Likewise.
> ...
>
> However, AMD64 software optimization guide shows sahf instruction as
> DirectPath, latency 1 instruction. This instruction is needed in
> modf()/drem() patterns to perform conditional jump on P flag set
> [ix86_emit_fp_unordered_jump()) function in config/i386/i386.c].
I think SAHF/LAHF were not present in the original amd64 specification;
they got added back later on as a correction.
I'm not sure if the intel chips include that correction,
someone who has access to such chips should double check this.
--
Michel "Walken" Lespinasse
"In this time of war against Osama bin Laden and the oppressive
Taliban regime, we are thankful that OUR leader isn't the spoiled son
of a powerful politician from a wealthy oil family who is supported by
religious fundamentalists, operates through clandestine organizations,
has no respect for the democratic electoral process, bombs innocents,
and uses war to deny people their civil liberties." --The Boondocks