1;****************************************************************************** 2;* x86 utility macros for libavresample 3;* Copyright (c) 2012 Justin Ruggles <justin.ruggles@gmail.com> 4;* 5;* This file is part of FFmpeg. 6;* 7;* FFmpeg is free software; you can redistribute it and/or 8;* modify it under the terms of the GNU Lesser General Public 9;* License as published by the Free Software Foundation; either 10;* version 2.1 of the License, or (at your option) any later version. 11;* 12;* FFmpeg is distributed in the hope that it will be useful, 13;* but WITHOUT ANY WARRANTY; without even the implied warranty of 14;* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15;* Lesser General Public License for more details. 16;* 17;* You should have received a copy of the GNU Lesser General Public 18;* License along with FFmpeg; if not, write to the Free Software 19;* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 20;****************************************************************************** 21 22%macro S16_TO_S32_SX 2 ; src/low dst, high dst 23%if cpuflag(sse4) 24 pmovsxwd m%2, m%1 25 psrldq m%1, 8 26 pmovsxwd m%1, m%1 27 SWAP %1, %2 28%else 29 mova m%2, m%1 30 punpckhwd m%2, m%2 31 punpcklwd m%1, m%1 32 psrad m%2, 16 33 psrad m%1, 16 34%endif 35%endmacro 36 37%macro DEINT2_PS 3 ; src0/even dst, src1/odd dst, temp 38 shufps m%3, m%1, m%2, q3131 39 shufps m%1, m%2, q2020 40 SWAP %2,%3 41%endmacro 42