tor-browser

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

bswap.h (1525B)


      1 /*
      2 * This file is part of FFmpeg.
      3 *
      4 * FFmpeg is free software; you can redistribute it and/or
      5 * modify it under the terms of the GNU Lesser General Public
      6 * License as published by the Free Software Foundation; either
      7 * version 2.1 of the License, or (at your option) any later version.
      8 *
      9 * FFmpeg is distributed in the hope that it will be useful,
     10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
     11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     12 * Lesser General Public License for more details.
     13 *
     14 * You should have received a copy of the GNU Lesser General Public
     15 * License along with FFmpeg; if not, write to the Free Software
     16 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
     17 */
     18 
     19 #ifndef AVUTIL_AARCH64_BSWAP_H
     20 #define AVUTIL_AARCH64_BSWAP_H
     21 
     22 #include <stdint.h>
     23 #include "config.h"
     24 #include "libavutil/attributes.h"
     25 
     26 #if HAVE_INLINE_ASM
     27 
     28 #define av_bswap16 av_bswap16
     29 static av_always_inline av_const unsigned av_bswap16(unsigned x)
     30 {
     31    unsigned y;
     32 
     33    __asm__("rev16 %w0, %w1" : "=r"(y) : "r"(x));
     34    return y;
     35 }
     36 
     37 #define av_bswap32 av_bswap32
     38 static av_always_inline av_const uint32_t av_bswap32(uint32_t x)
     39 {
     40    uint32_t y;
     41 
     42    __asm__("rev %w0, %w1" : "=r"(y) : "r"(x));
     43    return y;
     44 }
     45 
     46 #define av_bswap64 av_bswap64
     47 static av_always_inline av_const uint64_t av_bswap64(uint64_t x)
     48 {
     49    uint64_t y;
     50 
     51    __asm__("rev %0, %1" : "=r"(y) : "r"(x));
     52    return y;
     53 }
     54 
     55 #endif /* HAVE_INLINE_ASM */
     56 #endif /* AVUTIL_AARCH64_BSWAP_H */