Mercurial > libavutil.hg
comparison ppc/intreadwrite.h @ 759:fd032514a113 libavutil
PPC: fix asm operand constraints in AV_RL64
The target register of first word loaded must be marked early-clobber.
author | mru |
---|---|
date | Wed, 29 Jul 2009 19:06:55 +0000 |
parents | eff5131d6a33 |
children | f849545df4e5 |
comparison
equal
deleted
inserted
replaced
758:22a58fc2125d | 759:fd032514a113 |
---|---|
76 static inline uint64_t AV_RL64(const void *p) | 76 static inline uint64_t AV_RL64(const void *p) |
77 { | 77 { |
78 union { uint64_t v; uint32_t hl[2]; } v; | 78 union { uint64_t v; uint32_t hl[2]; } v; |
79 __asm__ ("lwbrx %0, %y2 \n\t" | 79 __asm__ ("lwbrx %0, %y2 \n\t" |
80 "lwbrx %1, %y3 \n\t" | 80 "lwbrx %1, %y3 \n\t" |
81 : "=r"(v.hl[1]), "=r"(v.hl[0]) | 81 : "=&r"(v.hl[1]), "=r"(v.hl[0]) |
82 : "Z"(*(const uint32_t*)p), "Z"(*((const uint32_t*)p+1))); | 82 : "Z"(*(const uint32_t*)p), "Z"(*((const uint32_t*)p+1))); |
83 return v.v; | 83 return v.v; |
84 } | 84 } |
85 | 85 |
86 #define AV_WL64 AV_WL64 | 86 #define AV_WL64 AV_WL64 |