summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPetri Hintukainen <phintuka@users.sourceforge.net>2014-12-07 16:10:24 +0200
committerPetri Hintukainen <phintuka@users.sourceforge.net>2014-12-07 16:10:24 +0200
commitb51ea688142700821dac6f2f0a26946da770c2d1 (patch)
tree6c10de87961614605db86c83c88667f6aee1a3ed
parentcb33bd6215afb754e7187e84f7d5217e9776d45c (diff)
downloadxine-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.c10
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 */