[vlc-devel] [PATCH] Remove "8+%1" syntax which isn't supported by LLVM's assembler. FFmpeg has removed theirs already for the same reason.
Nick Lewycky
nlewycky at google.com
Sat Mar 5 01:02:22 CET 2011
The ".o | objdump -d" files built before and after this change are the same,
tested by building with and without -DHIGH_BIT_DEPTH.
---
common/x86/predict-c.c | 22 ++++++++++++----------
1 files changed, 12 insertions(+), 10 deletions(-)
diff --git a/common/x86/predict-c.c b/common/x86/predict-c.c
index 610740e..fa307bd 100644
--- a/common/x86/predict-c.c
+++ b/common/x86/predict-c.c
@@ -191,10 +191,10 @@ static void x264_predict_16x16_p_ssse3( uint8_t *src )
int H, V;
#if HIGH_BIT_DEPTH
asm (
- "movdqu -2+%1, %%xmm1 \n"
- "movdqa 16+%1, %%xmm0 \n"
- "pmaddwd %2, %%xmm0 \n"
- "pmaddwd %3, %%xmm1 \n"
+ "movdqu %1, %%xmm1 \n"
+ "movdqa %2, %%xmm0 \n"
+ "pmaddwd %3, %%xmm0 \n"
+ "pmaddwd %4, %%xmm1 \n"
"paddd %%xmm1, %%xmm0 \n"
"movhlps %%xmm0, %%xmm1 \n"
"paddd %%xmm1, %%xmm0 \n"
@@ -202,15 +202,16 @@ static void x264_predict_16x16_p_ssse3( uint8_t *src )
"paddd %%xmm1, %%xmm0 \n"
"movd %%xmm0, %0 \n"
:"=r"(H)
- :"m"(src[-FDEC_STRIDE]), "m"(*pw_12345678), "m"(*pw_m87654321)
+ :"m"(src[-FDEC_STRIDE-1]), "m"(src[-FDEC_STRIDE+8]),
+ "m"(*pw_12345678), "m"(*pw_m87654321)
);
#else
asm (
"movq %1, %%mm1 \n"
- "movq 8+%1, %%mm0 \n"
- "palignr $7, -8+%1, %%mm1 \n"
- "pmaddubsw %2, %%mm0 \n"
- "pmaddubsw %3, %%mm1 \n"
+ "movq %2, %%mm0 \n"
+ "palignr $7, %3, %%mm1 \n"
+ "pmaddubsw %4, %%mm0 \n"
+ "pmaddubsw %5, %%mm1 \n"
"paddw %%mm1, %%mm0 \n"
"pshufw $14, %%mm0, %%mm1 \n"
"paddw %%mm1, %%mm0 \n"
@@ -219,7 +220,8 @@ static void x264_predict_16x16_p_ssse3( uint8_t *src )
"movd %%mm0, %0 \n"
"movsx %w0, %0 \n"
:"=r"(H)
- :"m"(src[-FDEC_STRIDE]), "m"(*pb_12345678), "m"(*pb_m87654321)
+ :"m"(src[-FDEC_STRIDE]), "m"(src[-FDEC_STRIDE+8]),
+ "m"(src[-FDEC_STRIDE-8]), "m"(*pb_12345678), "m"(*pb_m87654321)
);
#endif
V = 8 * ( src[15*FDEC_STRIDE-1] - src[-1*FDEC_STRIDE-1] )
--
1.7.3.1
More information about the vlc-devel
mailing list