[libav-commits] dsputil: fix optimized emu_edge function on Win64.

Ronald S. Bultje git at libav.org
Fri Apr 13 20:31:13 CEST 2012


Module: libav
Branch: master
Commit: b089ca871aaa1b59d43f81bce9d246fadb2e852b

Author:    Ronald S. Bultje <rsbultje at gmail.com>
Committer: Ronald S. Bultje <rsbultje at gmail.com>
Date:      Fri Apr 13 11:06:39 2012 -0700

dsputil: fix optimized emu_edge function on Win64.

Recent register allocation changes (x86inc.asm update) changed the
register order and thus opcodes for the inner loops. One of them became
>128bytes, which confuses other parts of this function where it jumps
to fixed-offset positions to extend the edge by fixed amounts. A simple
register change fixes this.

---

 libavcodec/x86/dsputil_yasm.asm |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/libavcodec/x86/dsputil_yasm.asm b/libavcodec/x86/dsputil_yasm.asm
index bec4063..807c641 100644
--- a/libavcodec/x86/dsputil_yasm.asm
+++ b/libavcodec/x86/dsputil_yasm.asm
@@ -594,7 +594,7 @@ cglobal emu_edge_core, 2, 7, 0
 %define valw2 r7w
 %define valw3 r3w
 %if WIN64
-%define valw4 r4w
+%define valw4 r7w
 %else ; unix64
 %define valw4 r3w
 %endif



More information about the libav-commits mailing list