]> git.sesse.net Git - ffmpeg/blob - libavcodec/x86/ac3dsp.asm
Remove final semicolon from some macros
[ffmpeg] / libavcodec / x86 / ac3dsp.asm
1 ;*****************************************************************************
2 ;* x86-optimized AC-3 DSP utils
3 ;* Copyright (c) 2011 Justin Ruggles
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 ;* 51, Inc., Foundation Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20 ;******************************************************************************
21
22 %include "x86inc.asm"
23 %include "x86util.asm"
24
25 SECTION .text
26
27 ;-----------------------------------------------------------------------------
28 ; void ff_ac3_exponent_min(uint8_t *exp, int num_reuse_blocks, int nb_coefs)
29 ;-----------------------------------------------------------------------------
30
31 %macro AC3_EXPONENT_MIN 1
32 cglobal ac3_exponent_min_%1, 3,4,2, exp, reuse_blks, expn, offset
33     shl  reuse_blksq, 8
34     jz .end
35     LOOP_ALIGN
36 .nextexp:
37     mov      offsetq, reuse_blksq
38     mova          m0, [expq+offsetq]
39     sub      offsetq, 256
40     LOOP_ALIGN
41 .nextblk:
42     PMINUB        m0, [expq+offsetq], m1
43     sub      offsetq, 256
44     jae .nextblk
45     mova      [expq], m0
46     add         expq, mmsize
47     sub        expnq, mmsize
48     jg .nextexp
49 .end:
50     REP_RET
51 %endmacro
52
53 %define PMINUB PMINUB_MMX
54 %define LOOP_ALIGN
55 INIT_MMX
56 AC3_EXPONENT_MIN mmx
57 %ifdef HAVE_MMX2
58 %define PMINUB PMINUB_MMXEXT
59 %define LOOP_ALIGN ALIGN 16
60 AC3_EXPONENT_MIN mmxext
61 %endif
62 %ifdef HAVE_SSE
63 INIT_XMM
64 AC3_EXPONENT_MIN sse2
65 %endif
66 %undef PMINUB
67 %undef LOOP_ALIGN