From 1fc294116a285d2399e06cc21edd0466ca2c51b2 Mon Sep 17 00:00:00 2001 From: Jan Kratochvil Date: Mon, 4 Oct 2010 23:20:38 +0200 Subject: [PATCH] nasm: movhps compatibility QWORD->MMWORD Filed for nasm as: https://sourceforge.net/tracker/?func=detail&atid=106208&aid=3081103&group_id=6208 nasm just does not accept any size parameter for movhps: 1.asm:2: error: mismatch in operand sizes Some parts of libvpx already use MMWORD for movhps and MMWORD is defined-out so it is compatible both with yasm and nasm. Provide nasm compatibility. No binary change by this patch with yasm on {x86_64,i686}-fedora13-linux-gnu. Change-Id: I4008a317ca87ec07c9ada958fcdc10a0cb589bbc --- vp8/common/x86/loopfilter_sse2.asm | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/vp8/common/x86/loopfilter_sse2.asm b/vp8/common/x86/loopfilter_sse2.asm index 1ab6d0f..849133d 100644 --- a/vp8/common/x86/loopfilter_sse2.asm +++ b/vp8/common/x86/loopfilter_sse2.asm @@ -1184,22 +1184,22 @@ sym(vp8_loop_filter_vertical_edge_uv_sse2): %endmacro %macro MBV_WRITEBACK_1 0 - movq QWORD PTR [rsi], xmm0 - movhps QWORD PTR [rdi], xmm0 + movq QWORD PTR [rsi], xmm0 + movhps MMWORD PTR [rdi], xmm0 - movq QWORD PTR [rsi+2*rax], xmm6 - movhps QWORD PTR [rdi+2*rax], xmm6 + movq QWORD PTR [rsi+2*rax], xmm6 + movhps MMWORD PTR [rdi+2*rax], xmm6 movdqa xmm0, xmm3 ; 73 72 71 70 63 62 61 60 53 52 51 50 43 42 41 40 punpckldq xmm0, xmm7 ; 57 56 55 54 53 52 51 50 47 46 45 44 43 42 41 40 punpckhdq xmm3, xmm7 ; 77 76 75 74 73 72 71 70 67 66 65 64 63 62 61 60 - movq QWORD PTR [rsi+4*rax], xmm0 - movhps QWORD PTR [rdi+4*rax], xmm0 + movq QWORD PTR [rsi+4*rax], xmm0 + movhps MMWORD PTR [rdi+4*rax], xmm0 - movq QWORD PTR [rsi+2*rcx], xmm3 - movhps QWORD PTR [rdi+2*rcx], xmm3 + movq QWORD PTR [rsi+2*rcx], xmm3 + movhps MMWORD PTR [rdi+2*rcx], xmm3 movdqa xmm2, [rdx+64] ; f4 e4 d4 c4 b4 a4 94 84 74 64 54 44 34 24 14 04 punpckhbw xmm2, [rdx+80] ; f5 f4 e5 e4 d5 d4 c5 c4 b5 b4 a5 a4 95 94 85 84 @@ -1217,21 +1217,21 @@ sym(vp8_loop_filter_vertical_edge_uv_sse2): %endmacro %macro MBV_WRITEBACK_2 0 - movq QWORD PTR [rsi], xmm1 - movhps QWORD PTR [rdi], xmm1 + movq QWORD PTR [rsi], xmm1 + movhps MMWORD PTR [rdi], xmm1 - movq QWORD PTR [rsi+2*rax], xmm5 - movhps QWORD PTR [rdi+2*rax], xmm5 + movq QWORD PTR [rsi+2*rax], xmm5 + movhps MMWORD PTR [rdi+2*rax], xmm5 movdqa xmm1, xmm4 ; f3 f2 f1 f0 e3 e2 e1 e0 d3 d2 d1 d0 c3 c2 c1 c0 punpckldq xmm1, xmm2 ; d7 d6 d5 d4 d3 d2 d1 d0 c7 c6 c5 c4 c3 c2 c1 c0 punpckhdq xmm4, xmm2 ; f7 f6 f4 f4 f3 f2 f1 f0 e7 e6 e5 e4 e3 e2 e1 e0 - movq QWORD PTR [rsi+4*rax], xmm1 - movhps QWORD PTR [rdi+4*rax], xmm1 + movq QWORD PTR [rsi+4*rax], xmm1 + movhps MMWORD PTR [rdi+4*rax], xmm1 - movq QWORD PTR [rsi+2*rcx], xmm4 - movhps QWORD PTR [rdi+2*rcx], xmm4 + movq QWORD PTR [rsi+2*rcx], xmm4 + movhps MMWORD PTR [rdi+2*rcx], xmm4 %endmacro -- 2.7.4