[FFmpeg-devel] [PATCH] use 'l' asm suffix to make icc happy
Reimar Döffinger
Reimar.Doeffinger
Sat Dec 15 23:06:32 CET 2007
Hello,
On Sat, Dec 15, 2007 at 09:56:20PM +0000, M?ns Rullg?rd wrote:
[...]
> With what little x86 assembler I know, that looks OK (and it builds
> over here too). However, there are several more similar instances in
> the same file. I suppose they happened to get compiled differently,
> and thus didn't cause you any trouble.
attached patch should fix the rest as well.
I wonder why it causes no problem with gcc, does it always load it into
a register?
Greetings,
Reimar D?ffinger
-------------- next part --------------
Index: libavcodec/i386/vc1dsp_mmx.c
===================================================================
--- libavcodec/i386/vc1dsp_mmx.c (revision 11225)
+++ libavcodec/i386/vc1dsp_mmx.c (working copy)
@@ -95,7 +95,7 @@
SHIFT2_LINE(168, 4, 1, 2, 3)
"sub %8, %1 \n\t"
"add $8, %2 \n\t"
- "dec %0 \n\t"
+ "decl %0 \n\t"
"jnz 1b \n\t"
: "+g"(w), "+r"(src), "+r"(dst)
: "r"(stride), "r"(-2*stride), "m"(shift),
@@ -139,7 +139,7 @@
TRANSFER_DO_PACK
"add $24, %1 \n\t"
"add %3, %2 \n\t"
- "dec %0 \n\t"
+ "decl %0 \n\t"
"jnz 1b \n\t"
: "+g"(h), "+r" (src), "+r" (dst)
: "g"(stride), "m"(rnd), "m"(fact_9), "m"(ff_pw_128)
@@ -191,7 +191,7 @@
TRANSFER_DO_PACK
"add %7, %1 \n\t"
"add %5, %2 \n\t"
- "dec %0 \n\t"
+ "decl %0 \n\t"
"jnz 1b \n\t"
: "+g"(h), "+r"(src), "+r"(dst)
: "r"(offset), "r"(-2*offset), "g"(stride), "m"(rnd),
@@ -297,7 +297,7 @@
"movq %%mm3, 16(%2) \n\t" \
"add %3, %1 \n\t" \
"add $24, %2 \n\t" \
- "dec %0 \n\t" \
+ "decl %0 \n\t" \
"jnz 1b \n\t" \
: "+g"(h), "+r" (src), "+r" (dst) \
: "r"(src_stride), "r"(3*src_stride), \
@@ -336,7 +336,7 @@
TRANSFER_DO_PACK \
"add $24, %1 \n\t" \
"add %3, %2 \n\t" \
- "dec %0 \n\t" \
+ "decl %0 \n\t" \
"jnz 1b \n\t" \
: "+g"(h), "+r" (src), "+r" (dst) \
: "g"(stride), "m"(rnd), "m"(fact_53), "m"(fact_18), \
@@ -372,7 +372,7 @@
TRANSFER_DO_PACK \
"add %5, %1 \n\t" \
"add %5, %2 \n\t" \
- "dec %0 \n\t" \
+ "decl %0 \n\t" \
"jnz 1b \n\t" \
: "+g"(h), "+r" (src), "+r" (dst) \
: "r"(offset), "r"(3*offset), "g"(stride), "m"(rnd), \
More information about the ffmpeg-devel
mailing list