[FFmpeg-cvslog] Partially revert "Fix png decoding on x86."

Reimar Döffinger git at videolan.org
Fri Feb 10 23:19:19 CET 2012


ffmpeg | branch: master | Reimar Döffinger <Reimar.Doeffinger at gmx.de> | Fri Feb 10 21:24:27 2012 +0100| [394d41ee30b0c4a38a8d33b65e28facfef15d465] | committer: Reimar Döffinger

Partially revert "Fix png decoding on x86."

This partially reverts commit 58dabf7bf2fdd08f79173da0df613127ff783028.
It is no longer necessary to use unaligned mov.
The swapped mov argument fix remains though.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=394d41ee30b0c4a38a8d33b65e28facfef15d465
---

 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:



More information about the ffmpeg-cvslog mailing list