From b51ea688142700821dac6f2f0a26946da770c2d1 Mon Sep 17 00:00:00 2001 From: Petri Hintukainen Date: Sun, 7 Dec 2014 16:10:24 +0200 Subject: 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.") --- src/post/deinterlace/plugins/greedy2frame_template_sse2.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'src/post/deinterlace/plugins/greedy2frame_template_sse2.c') 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 */ -- cgit v1.2.3