tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

intreadwrite.h (1749B)


      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 {
     36    __m128i tmp = _mm_load_si128((const __m128i *)s);
     37    _mm_store_si128((__m128i *)d, tmp);
     38 }
     39 
     40 #define AV_COPY128U AV_COPY128U
     41 static av_always_inline void AV_COPY128U(void *d, const void *s)
     42 {
     43    __m128i tmp = _mm_loadu_si128((const __m128i *)s);
     44    _mm_storeu_si128((__m128i *)d, tmp);
     45 }
     46 
     47 #define AV_ZERO128 AV_ZERO128
     48 static av_always_inline void AV_ZERO128(void *d)
     49 {
     50    __m128i zero = _mm_setzero_si128();
     51    _mm_store_si128((__m128i *)d, zero);
     52 }
     53 
     54 #endif /* HAVE_INTRINSICS_SSE2 && defined(__SSE2__) */
     55 
     56 #endif /* AVUTIL_X86_INTREADWRITE_H */