FFmpeg
Loading...
Searching...
No Matches
libswscale
x86
uops_macros.asm.h
Go to the documentation of this file.
1
/**
2
* Copyright (C) 2025 Niklas Haas
3
*
4
* This file is part of FFmpeg.
5
*
6
* FFmpeg is free software; you can redistribute it and/or
7
* modify it under the terms of the GNU Lesser General Public
8
* License as published by the Free Software Foundation; either
9
* version 2.1 of the License, or (at your option) any later version.
10
*
11
* FFmpeg is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
* Lesser General Public License for more details.
15
*
16
* You should have received a copy of the GNU Lesser General Public
17
* License along with FFmpeg; if not, write to the Free Software
18
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19
*/
20
21
/**
22
* WARNING: This file is preprocessed by the C compiler to generate the NASM
23
* source file uops_macros.gen.asm. It must *NOT* include any headers that
24
* may inadvertently declare any C syntax. The following header only declares
25
* further macros, and is therefore safe.
26
*/
27
#include "
../uops_macros.h
"
28
29
/**
30
* NASM expects one statement per source line, but the C preprocessor expands
31
* multi-line macros into a single line. This NASM macro allows us to work
32
* around that by expanding its arguments into multiple lines.
33
*/
34
%macro MULTILINE 0-*
35
%rep %0
36
%1
37
%
rotate
1
38
%endrep
39
%endmacro
40
41
/* Used to suppress "trailing empty parameter" warnings */
42
%macro
dummy
0
43
%endmacro
44
45
#define DECL_OP_MACRO(...) {DECL_OP MACRO __VA_ARGS__},
46
#define DEF_MACRO(UOP, TYPE) \
47
%define DECL_##TYPE##_##UOP(MACRO) \
48
MULTILINE SWS_FOR_##TYPE##_##UOP(DECL_OP_MACRO) \
49
dummy
50
51
#define DEF_ALL_MACROS(TYPE) \
52
MULTILINE \
53
{DEF_MACRO(READ_BIT, TYPE)}, \
54
{DEF_MACRO(READ_NIBBLE, TYPE)}, \
55
{DEF_MACRO(READ_PACKED, TYPE)}, \
56
{DEF_MACRO(READ_PLANAR, TYPE)}, \
57
{DEF_MACRO(READ_PLANAR_FH, TYPE)}, \
58
{DEF_MACRO(READ_PLANAR_FV, TYPE)}, \
59
{DEF_MACRO(READ_PLANAR_FV_FMA, TYPE)}, \
60
{DEF_MACRO(READ_PALETTE, TYPE)}, \
61
{DEF_MACRO(WRITE_BIT, TYPE)}, \
62
{DEF_MACRO(WRITE_NIBBLE, TYPE)}, \
63
{DEF_MACRO(WRITE_PACKED, TYPE)}, \
64
{DEF_MACRO(WRITE_PLANAR, TYPE)}, \
65
{DEF_MACRO(RW_SHUFFLE, TYPE)}, \
66
{DEF_MACRO(PERMUTE, TYPE)}, \
67
{DEF_MACRO(COPY, TYPE)}, \
68
{DEF_MACRO(SWAP_BYTES, TYPE)}, \
69
{DEF_MACRO(EXPAND_BIT, TYPE)}, \
70
{DEF_MACRO(EXPAND_PAIR, TYPE)}, \
71
{DEF_MACRO(EXPAND_QUAD, TYPE)}, \
72
{DEF_MACRO(TO_U8, TYPE)}, \
73
{DEF_MACRO(TO_U16, TYPE)}, \
74
{DEF_MACRO(TO_U32, TYPE)}, \
75
{DEF_MACRO(TO_F32, TYPE)}, \
76
{DEF_MACRO(SCALE, TYPE)}, \
77
{DEF_MACRO(LINEAR, TYPE)}, \
78
{DEF_MACRO(LINEAR_FMA, TYPE)}, \
79
{DEF_MACRO(ADD, TYPE)}, \
80
{DEF_MACRO(MIN, TYPE)}, \
81
{DEF_MACRO(MAX, TYPE)}, \
82
{DEF_MACRO(UNPACK, TYPE)}, \
83
{DEF_MACRO(PACK, TYPE)}, \
84
{DEF_MACRO(LSHIFT, TYPE)}, \
85
{DEF_MACRO(RSHIFT, TYPE)}, \
86
{DEF_MACRO(CLEAR, TYPE)}, \
87
{DEF_MACRO(DITHER, TYPE)}
88
89
DEF_ALL_MACROS
(U8)
90
DEF_ALL_MACROS
(U16)
91
DEF_ALL_MACROS
(U32)
92
DEF_ALL_MACROS
(F32)
dummy
static int dummy
Definition
ffplay.c:3754
DEF_ALL_MACROS
#define DEF_ALL_MACROS(TYPE)
Definition
uops_macros.asm.h:51
uops_macros.h
rotate
static void rotate(const float rot_quaternion[2][4], float *vec)
Rotate vector with given rotation quaternion.
Definition
vf_v360.c:4081
Generated on Fri Aug 28 2026 19:21:32 for FFmpeg by
1.13.2