[FFmpeg-devel] [PATCH] Partially revert "Fix png decoding on x86."
Reimar Döffinger
Reimar.Doeffinger at gmx.de
Fri Feb 10 22:18:28 CET 2012
This partially reverts commit 58dabf7bf2fdd08f79173da0df613127ff783028.
It is no longer necessary to use unaligned mov.
The swapped mov argument fix remains though.
---
libavcodec/pngdsp.h | 4 ++--
libavcodec/x86/pngdsp.asm | 16 ++++++++--------
2 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/libavcodec/pngdsp.h b/libavcodec/pngdsp.h
index f89a93a..98d29a8 100644
--- a/libavcodec/pngdsp.h
+++ b/libavcodec/pngdsp.h
@@ -26,8 +26,8 @@
typedef struct PNGDSPContext {
void (*add_bytes_l2)(uint8_t *dst /* align 16 */,
- uint8_t *src1,
- uint8_t *src2, int w);
+ uint8_t *src1 /* align 16 */,
+ uint8_t *src2 /* align 16 */, int w);
/* this might write to dst[w] */
void (*add_paeth_prediction)(uint8_t *dst, uint8_t *src,
diff --git a/libavcodec/x86/pngdsp.asm b/libavcodec/x86/pngdsp.asm
index 9c588a9..8999c17 100644
--- a/libavcodec/x86/pngdsp.asm
+++ b/libavcodec/x86/pngdsp.asm
@@ -43,12 +43,12 @@ cglobal add_bytes_l2, 4, 6, %1, dst, src1, src2, wa, w, i
and waq, ~(mmsize*2-1)
jmp .end_v
.loop_v:
- movu m0, [src2q+iq]
- movu m1, [src2q+iq+mmsize]
- paddb m0, [src1q+iq]
- paddb m1, [src1q+iq+mmsize]
- movu [dstq+iq ], m0
- movu [dstq+iq+mmsize], m1
+ mova m0, [src1q+iq]
+ mova m1, [src1q+iq+mmsize]
+ paddb m0, [src2q+iq]
+ paddb m1, [src2q+iq+mmsize]
+ mova [dstq+iq ], m0
+ mova [dstq+iq+mmsize], m1
add iq, mmsize*2
.end_v:
cmp iq, waq
@@ -60,8 +60,8 @@ cglobal add_bytes_l2, 4, 6, %1, dst, src1, src2, wa, w, i
and waq, ~7
jmp .end_l
.loop_l:
- movq mm0, [src2q+iq]
- paddb mm0, [src1q+iq]
+ movq mm0, [src1q+iq]
+ paddb mm0, [src2q+iq]
movq [dstq+iq ], mm0
add iq, 8
.end_l:
--
1.7.9
More information about the ffmpeg-devel
mailing list