summaryrefslogtreecommitdiff
path: root/libswscale
diff options
context:
space:
mode:
authorReimar Döffinger <Reimar.Doeffinger@gmx.de>2011-09-21 19:10:58 +0200
committerReimar Döffinger <Reimar.Doeffinger@gmx.de>2011-09-25 16:59:52 +0200
commit424bcc46b5fb0d662e0fb9ad6319c5b9ef3d770f (patch)
treeba5e6cc78cb019d9c64d7a4e3a058cc4e302133f /libswscale
parentd8289ff9a9a3d0af416e70a1c864e1c6ce095656 (diff)
Compile x86/swscale_template with -mno-red-zone.
Replaces a very hackish hack to fix the same issue (call instruction overwriting stack variables). Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
Diffstat (limited to 'libswscale')
-rw-r--r--libswscale/Makefile2
-rw-r--r--libswscale/x86/swscale_template.c10
2 files changed, 2 insertions, 10 deletions
diff --git a/libswscale/Makefile b/libswscale/Makefile
index 7f74677cec..942545d282 100644
--- a/libswscale/Makefile
+++ b/libswscale/Makefile
@@ -21,6 +21,8 @@ OBJS-$(HAVE_MMX) += x86/rgb2rgb.o \
OBJS-$(HAVE_VIS) += sparc/yuv2rgb_vis.o
OBJS-$(HAVE_YASM) += x86/scale.o
+$(SUBDIR)x86/swscale_mmx.o: CFLAGS += $(NOREDZONE_FLAGS)
+
TESTPROGS = colorspace swscale
DIRS = bfin mlib ppc sparc x86
diff --git a/libswscale/x86/swscale_template.c b/libswscale/x86/swscale_template.c
index 6a143f7481..35839bed03 100644
--- a/libswscale/x86/swscale_template.c
+++ b/libswscale/x86/swscale_template.c
@@ -1963,10 +1963,6 @@ static void RENAME(hyscale_fast)(SwsContext *c, int16_t *dst,
#if defined(PIC)
DECLARE_ALIGNED(8, uint64_t, ebxsave);
#endif
- // HACK: gcc 4.6 no longer decrements esp,
- // use this to make it reserve space for the call
- // return address
- void *dummy;
__asm__ volatile(
#if defined(PIC)
@@ -2018,7 +2014,6 @@ static void RENAME(hyscale_fast)(SwsContext *c, int16_t *dst,
#if defined(PIC)
,"m" (ebxsave)
#endif
- ,"m" (dummy)
: "%"REG_a, "%"REG_c, "%"REG_d, "%"REG_S, "%"REG_D
#if !defined(PIC)
,"%"REG_b
@@ -2040,10 +2035,6 @@ static void RENAME(hcscale_fast)(SwsContext *c, int16_t *dst1, int16_t *dst2,
#if defined(PIC)
DECLARE_ALIGNED(8, uint64_t, ebxsave);
#endif
- // HACK: gcc 4.6 no longer decrements esp,
- // use this to make it reserve space for the call
- // return address
- void *dummy;
__asm__ volatile(
#if defined(PIC)
@@ -2083,7 +2074,6 @@ static void RENAME(hcscale_fast)(SwsContext *c, int16_t *dst1, int16_t *dst2,
#if defined(PIC)
,"m" (ebxsave)
#endif
- ,"m" (dummy)
: "%"REG_a, "%"REG_c, "%"REG_d, "%"REG_S, "%"REG_D
#if !defined(PIC)
,"%"REG_b