/src/ffmpeg/libavutil/x86/intreadwrite.h
Line | Count | Source |
1 | | /* |
2 | | * Copyright (c) 2010 Alexander Strange <astrange@ithinksw.com> |
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 AVUTIL_X86_INTREADWRITE_H |
22 | | #define AVUTIL_X86_INTREADWRITE_H |
23 | | |
24 | | #include <stdint.h> |
25 | | #include "config.h" |
26 | | #if HAVE_INTRINSICS_SSE2 && defined(__SSE2__) |
27 | | #include <emmintrin.h> |
28 | | #endif |
29 | | #include "libavutil/attributes.h" |
30 | | |
31 | | #if HAVE_INTRINSICS_SSE2 && defined(__SSE2__) |
32 | | |
33 | | #define AV_COPY128 AV_COPY128 |
34 | | static av_always_inline void AV_COPY128(void *d, const void *s) |
35 | 0 | { |
36 | 0 | __m128i tmp = _mm_load_si128((const __m128i *)s); |
37 | 0 | _mm_store_si128((__m128i *)d, tmp); |
38 | 0 | } Unexecuted instantiation: swscale.c:AV_COPY128 Unexecuted instantiation: utils.c:AV_COPY128 Unexecuted instantiation: vscale.c:AV_COPY128 Unexecuted instantiation: hscale_fast_bilinear_simd.c:AV_COPY128 Unexecuted instantiation: yuv2rgb.c:AV_COPY128 Unexecuted instantiation: alphablend.c:AV_COPY128 Unexecuted instantiation: graph.c:AV_COPY128 Unexecuted instantiation: hscale_fast_bilinear.c:AV_COPY128 Unexecuted instantiation: input.c:AV_COPY128 Unexecuted instantiation: options.c:AV_COPY128 Unexecuted instantiation: output.c:AV_COPY128 Unexecuted instantiation: rgb2rgb.c:AV_COPY128 Unexecuted instantiation: slice.c:AV_COPY128 Unexecuted instantiation: swscale_unscaled.c:AV_COPY128 Unexecuted instantiation: gamma.c:AV_COPY128 Unexecuted instantiation: hscale.c:AV_COPY128 Unexecuted instantiation: avformat.c:AV_COPY128 Unexecuted instantiation: demux.c:AV_COPY128 Unexecuted instantiation: demux_utils.c:AV_COPY128 Unexecuted instantiation: id3v2.c:AV_COPY128 Unexecuted instantiation: aviobuf.c:AV_COPY128 Unexecuted instantiation: decode.c:AV_COPY128 Unexecuted instantiation: encode.c:AV_COPY128 Unexecuted instantiation: exif.c:AV_COPY128 Unexecuted instantiation: tiff_common.c:AV_COPY128 Unexecuted instantiation: crc.c:AV_COPY128 Unexecuted instantiation: imgutils.c:AV_COPY128 Unexecuted instantiation: mem.c:AV_COPY128 Unexecuted instantiation: pixdesc.c:AV_COPY128 Unexecuted instantiation: random_seed.c:AV_COPY128 Unexecuted instantiation: sha.c:AV_COPY128 |
39 | | |
40 | | #define AV_COPY128U AV_COPY128U |
41 | | static av_always_inline void AV_COPY128U(void *d, const void *s) |
42 | 0 | { |
43 | 0 | __m128i tmp = _mm_loadu_si128((const __m128i *)s); |
44 | 0 | _mm_storeu_si128((__m128i *)d, tmp); |
45 | 0 | } Unexecuted instantiation: swscale.c:AV_COPY128U Unexecuted instantiation: utils.c:AV_COPY128U Unexecuted instantiation: vscale.c:AV_COPY128U Unexecuted instantiation: hscale_fast_bilinear_simd.c:AV_COPY128U Unexecuted instantiation: yuv2rgb.c:AV_COPY128U Unexecuted instantiation: alphablend.c:AV_COPY128U Unexecuted instantiation: graph.c:AV_COPY128U Unexecuted instantiation: hscale_fast_bilinear.c:AV_COPY128U Unexecuted instantiation: input.c:AV_COPY128U Unexecuted instantiation: options.c:AV_COPY128U Unexecuted instantiation: output.c:AV_COPY128U Unexecuted instantiation: rgb2rgb.c:AV_COPY128U Unexecuted instantiation: slice.c:AV_COPY128U Unexecuted instantiation: swscale_unscaled.c:AV_COPY128U Unexecuted instantiation: gamma.c:AV_COPY128U Unexecuted instantiation: hscale.c:AV_COPY128U Unexecuted instantiation: avformat.c:AV_COPY128U Unexecuted instantiation: demux.c:AV_COPY128U Unexecuted instantiation: demux_utils.c:AV_COPY128U Unexecuted instantiation: id3v2.c:AV_COPY128U Unexecuted instantiation: aviobuf.c:AV_COPY128U Unexecuted instantiation: decode.c:AV_COPY128U Unexecuted instantiation: encode.c:AV_COPY128U Unexecuted instantiation: exif.c:AV_COPY128U Unexecuted instantiation: tiff_common.c:AV_COPY128U Unexecuted instantiation: crc.c:AV_COPY128U Unexecuted instantiation: imgutils.c:AV_COPY128U Unexecuted instantiation: mem.c:AV_COPY128U Unexecuted instantiation: pixdesc.c:AV_COPY128U Unexecuted instantiation: random_seed.c:AV_COPY128U Unexecuted instantiation: sha.c:AV_COPY128U |
46 | | |
47 | | #define AV_ZERO128 AV_ZERO128 |
48 | | static av_always_inline void AV_ZERO128(void *d) |
49 | 0 | { |
50 | 0 | __m128i zero = _mm_setzero_si128(); |
51 | 0 | _mm_store_si128((__m128i *)d, zero); |
52 | 0 | } Unexecuted instantiation: swscale.c:AV_ZERO128 Unexecuted instantiation: utils.c:AV_ZERO128 Unexecuted instantiation: vscale.c:AV_ZERO128 Unexecuted instantiation: hscale_fast_bilinear_simd.c:AV_ZERO128 Unexecuted instantiation: yuv2rgb.c:AV_ZERO128 Unexecuted instantiation: alphablend.c:AV_ZERO128 Unexecuted instantiation: graph.c:AV_ZERO128 Unexecuted instantiation: hscale_fast_bilinear.c:AV_ZERO128 Unexecuted instantiation: input.c:AV_ZERO128 Unexecuted instantiation: options.c:AV_ZERO128 Unexecuted instantiation: output.c:AV_ZERO128 Unexecuted instantiation: rgb2rgb.c:AV_ZERO128 Unexecuted instantiation: slice.c:AV_ZERO128 Unexecuted instantiation: swscale_unscaled.c:AV_ZERO128 Unexecuted instantiation: gamma.c:AV_ZERO128 Unexecuted instantiation: hscale.c:AV_ZERO128 Unexecuted instantiation: avformat.c:AV_ZERO128 Unexecuted instantiation: demux.c:AV_ZERO128 Unexecuted instantiation: demux_utils.c:AV_ZERO128 Unexecuted instantiation: id3v2.c:AV_ZERO128 Unexecuted instantiation: aviobuf.c:AV_ZERO128 Unexecuted instantiation: decode.c:AV_ZERO128 Unexecuted instantiation: encode.c:AV_ZERO128 Unexecuted instantiation: exif.c:AV_ZERO128 Unexecuted instantiation: tiff_common.c:AV_ZERO128 Unexecuted instantiation: crc.c:AV_ZERO128 Unexecuted instantiation: imgutils.c:AV_ZERO128 Unexecuted instantiation: mem.c:AV_ZERO128 Unexecuted instantiation: pixdesc.c:AV_ZERO128 Unexecuted instantiation: random_seed.c:AV_ZERO128 Unexecuted instantiation: sha.c:AV_ZERO128 |
53 | | |
54 | | #endif /* HAVE_INTRINSICS_SSE2 && defined(__SSE2__) */ |
55 | | |
56 | | #endif /* AVUTIL_X86_INTREADWRITE_H */ |