Mercurial > libavutil.hg
annotate x86/bswap.h @ 952:e461801687c9 libavutil
Add missing avutil.h include to libavutil/mem.h
author | mru |
---|---|
date | Sat, 26 Jun 2010 18:14:31 +0000 |
parents | 0795a743bda1 |
children | f8db9a2bae05 |
rev | line source |
---|---|
582 | 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 /** | |
899
0795a743bda1
Remove explicit filename from Doxygen @file commands.
diego
parents:
873
diff
changeset
|
20 * @file |
582 | 21 * byte swapping routines |
22 */ | |
23 | |
24 #ifndef AVUTIL_X86_BSWAP_H | |
25 #define AVUTIL_X86_BSWAP_H | |
26 | |
27 #include <stdint.h> | |
28 #include "config.h" | |
873
4d9ad0ed07d0
Replace many includes of libavutil/common.h with what is actually needed
mru
parents:
642
diff
changeset
|
29 #include "libavutil/attributes.h" |
582 | 30 |
31 #define bswap_16 bswap_16 | |
32 static av_always_inline av_const uint16_t bswap_16(uint16_t x) | |
33 { | |
34 __asm__("rorw $8, %0" : "+r"(x)); | |
35 return x; | |
36 } | |
37 | |
38 #define bswap_32 bswap_32 | |
39 static av_always_inline av_const uint32_t bswap_32(uint32_t x) | |
40 { | |
603 | 41 #if HAVE_BSWAP |
582 | 42 __asm__("bswap %0" : "+r" (x)); |
43 #else | |
44 __asm__("rorw $8, %w0 \n\t" | |
45 "rorl $16, %0 \n\t" | |
46 "rorw $8, %w0" | |
47 : "+r"(x)); | |
48 #endif | |
49 return x; | |
50 } | |
51 | |
603 | 52 #if ARCH_X86_64 |
582 | 53 #define bswap_64 bswap_64 |
54 static inline uint64_t av_const bswap_64(uint64_t x) | |
55 { | |
56 __asm__("bswap %0": "=r" (x) : "0" (x)); | |
57 return x; | |
58 } | |
59 #endif | |
60 | |
61 #endif /* AVUTIL_X86_BSWAP_H */ |