[FFmpeg-devel] Inline ASM vs. Intrinsics

Dave Dodge dododge
Fri May 11 16:22:32 CEST 2007

On Fri, May 11, 2007 at 02:06:11PM +0200, Guillaume POIRIER wrote:
> Exactly. I wrongfully assumed that "register" keywork was honnored
> with xmm/mm intrinsics, but I was wrong. It's simply ignored by ICC. I
> don't know about GCC.

According to its documentation gcc also ignores the "register" storage
class specifier, except in a few special cases:

  - when using asm in a declaration to explicitly specify which register.
  - when using -O0.
  - when using setjmp on certain rare target platforms.

Aside: on IA64 icc supports only intrinsics -- no inline assembly.  On
the one hand IA64 assembly is so painful that you'd rarely want to
write it manually anyway; but the downside is that the intrinsics
might not expose all of the instruction set's features.  For example I
had a case where I wanted an 8-byte store with both the "nta" and
"rel" hints applied, but I couldn't find any way to generate it with
the intrinsics.

                                                  -Dave Dodge

More information about the ffmpeg-devel mailing list