FFmpeg
Loading...
Searching...
No Matches
ops_asmgen.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2026 Ramiro Polla
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#ifndef SWSCALE_AARCH64_OPS_ASMGEN_H
22#define SWSCALE_AARCH64_OPS_ASMGEN_H
23
24#include "rasm.h"
25
26/*********************************************************************/
27typedef struct SwsAArch64OpRegs {
28 RasmOp sl[ 4]; /* input vector registers (low bank) */
29 RasmOp sh[ 4]; /* input vector registers (high bank) */
30 RasmOp dl[ 4]; /* output vector registers (low bank) */
31 RasmOp dh[ 4]; /* output vector registers (high bank) */
32 RasmOp vt[12]; /* temp vector registers */
33 RasmOp vk[ 4]; /* constant data (may be gprs) */
34
35 /* Op-specific registers. */
36 union {
39 };
41
42/*********************************************************************/
43typedef struct SwsAArch64Context {
45
46 /* SwsOpFunc arguments. */
53
54 /* Loop iterator variables. */
57
58 /* Scratch registers. */
61
62 /* CPS-related variables. */
68
69 /* Read/Write data pointers and padding. */
74
75 /* Process function. */
78
79 /* Vector register dimensions. */
80 size_t el_size;
81 size_t el_count;
82 size_t vec_size;
83 bool use_vh;
85
86#endif /* SWSCALE_AARCH64_OPS_ASMGEN_H */
RasmNode * setup
Definition ops_asmgen.h:76
RasmOp out_bump[4]
Definition ops_asmgen.h:73
SwsAArch64OpRegs regs
Definition ops_asmgen.h:67
RasmContext * rctx
Definition ops_asmgen.h:44
RasmNode * load_cont_node
Definition ops_asmgen.h:66
RasmOp in_bump[4]
Definition ops_asmgen.h:72
RasmNode * loop
Definition ops_asmgen.h:77
RasmOp vt[12]
Definition ops_asmgen.h:32
RasmOp linear_vcoeff[4][5]
Definition ops_asmgen.h:38
Runtime assembler for AArch64.
Definition rasm.h:44