GCC4 x86_64 pushfl / pop %eax inline asm ?

Ian Lance Taylor iant@google.com
Wed Jun 14 17:08:00 GMT 2006


Darryl Miles <darryl-mailinglists@netbauds.net> writes:

> How do I do this with GCC 4 ?  This works with GCC3 on i386, but not
> on GCC4 on x86_64.  Any advise on what #ifdef to put in place or if
> there is one way that works with both GCC versions ?
> 
>  From the output of GCC test.c => test.s
> 
> #APP
> 
>         pushfl
>         popl %eax
> 
> #NO_APP
> 
> Yeilds errors on GCC4 x86_64:
> 
> test.s:2287: Error: suffix or operands invalid for `pushf'
> test.s:2288: Error: suffix or operands invalid for `pop'

Those errors are coming from the assembler.  This is an assembler
issue, not a gcc issue.

This one happens to be simple: the x86_64 does not have a pushfl
instruction.  Read the fine manual.  The x86_64 does have a pushfq
instruction.

Ian



More information about the Gcc-help mailing list