Mercurial > libavutil.hg
annotate x86/bswap.h @ 811:c08dd82b122e libavutil
Make sure we do not export incorrect _NE pixformat descriptions by either
including config.h if available or not defining them if it isn't.
author | reimar |
---|---|
date | Sun, 17 Jan 2010 14:17:03 +0000 |
parents | 70bdd5501662 |
children | 4d9ad0ed07d0 |
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 /** | |
642
70bdd5501662
Use full internal pathname in doxygen @file directives.
diego
parents:
603
diff
changeset
|
20 * @file libavutil/x86/bswap.h |
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" | |
29 #include "libavutil/common.h" | |
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 */ |