diff options
author | Petri Hintukainen <phintuka@users.sourceforge.net> | 2014-12-07 16:10:24 +0200 |
---|---|---|
committer | Petri Hintukainen <phintuka@users.sourceforge.net> | 2014-12-07 16:10:24 +0200 |
commit | b51ea688142700821dac6f2f0a26946da770c2d1 (patch) | |
tree | 6c10de87961614605db86c83c88667f6aee1a3ed | |
parent | cb33bd6215afb754e7187e84f7d5217e9776d45c (diff) | |
download | xine-lib-b51ea688142700821dac6f2f0a26946da770c2d1.tar.gz xine-lib-b51ea688142700821dac6f2f0a26946da770c2d1.tar.bz2 |
Fix compiling greedy2frame_template_sse2.c
Some compilers generate invalid assembler code (64-bit register prefix) when %q is used in 32-bit code.
Maybe compiler bug ? ("Produces the quad word register name for an operand if the target supports
quad word. Otherwise, it produces a word register name.")
-rw-r--r-- | src/post/deinterlace/plugins/greedy2frame_template_sse2.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/post/deinterlace/plugins/greedy2frame_template_sse2.c b/src/post/deinterlace/plugins/greedy2frame_template_sse2.c index f5b749994..7da96e6ee 100644 --- a/src/post/deinterlace/plugins/greedy2frame_template_sse2.c +++ b/src/post/deinterlace/plugins/greedy2frame_template_sse2.c @@ -174,8 +174,8 @@ static void DeinterlaceGreedy2Frame_SSE2(uint8_t *output, int outstride, */ "movdqa (%2), %%xmm1 \n\t" /* xmm1 = T1 */ "movdqa (%3), %%xmm0 \n\t" /* xmm0 = T0 */ - "movdqa (%q4,%2), %%xmm3 \n\t" /* xmm3 = B1 */ - "movdqa (%q4,%3), %%xmm2 \n\t" /* xmm2 = B0 */ + "movdqa (%4,%2), %%xmm3 \n\t" /* xmm3 = B1 */ + "movdqa (%4,%3), %%xmm2 \n\t" /* xmm2 = B0 */ /* calculate |T1-T0| keep T1 put result in xmm5 */ "movdqa %%xmm1, %%xmm5 \n\t" @@ -192,11 +192,11 @@ static void DeinterlaceGreedy2Frame_SSE2(uint8_t *output, int outstride, "pcmpgtb %0, %%xmm5 \n\t" "pcmpeqd %%xmm7, %%xmm5 \n\t" - "prefetcht0 64(%q4,%2) \n\t" - "prefetcht0 64(%q4,%3) \n\t" + "prefetcht0 64(%4,%2) \n\t" + "prefetcht0 64(%4,%3) \n\t" : : "m" (GreedyTwoFrameThreshold128), - "m" (*Destc), "r" (T1), "r" (T0), "r" (Pitch) ); + "m" (*Destc), "r" (T1), "r" (T0), "r" ((void*)(intptr_t)Pitch) ); asm volatile ( /* calculate |B1-B0| keep B1 put result in xmm4 */ |