summaryrefslogtreecommitdiff
path: root/libavutil
diff options
context:
space:
mode:
Diffstat (limited to 'libavutil')
-rw-r--r--libavutil/aarch64/bswap.h18
1 files changed, 12 insertions, 6 deletions
diff --git a/libavutil/aarch64/bswap.h b/libavutil/aarch64/bswap.h
index 1e735c52cf..7abca657ba 100644
--- a/libavutil/aarch64/bswap.h
+++ b/libavutil/aarch64/bswap.h
@@ -28,22 +28,28 @@
#define av_bswap16 av_bswap16
static av_always_inline av_const unsigned av_bswap16(unsigned x)
{
- __asm__("rev16 %w0, %w0" : "+r"(x));
- return x;
+ unsigned y;
+
+ __asm__("rev16 %w0, %w1" : "=r"(y) : "r"(x));
+ return y;
}
#define av_bswap32 av_bswap32
static av_always_inline av_const uint32_t av_bswap32(uint32_t x)
{
- __asm__("rev %w0, %w0" : "+r"(x));
- return x;
+ uint32_t y;
+
+ __asm__("rev %w0, %w1" : "=r"(y) : "r"(x));
+ return y;
}
#define av_bswap64 av_bswap64
static av_always_inline av_const uint64_t av_bswap64(uint64_t x)
{
- __asm__("rev %0, %0" : "+r"(x));
- return x;
+ uint64_t y;
+
+ __asm__("rev %0, %1" : "=r"(y) : "r"(x));
+ return y;
}
#endif /* HAVE_INLINE_ASM */