diff options
author | Måns Rullgård <mans@mansr.com> | 2010-09-21 21:57:21 +0400 |
---|---|---|
committer | Måns Rullgård <mans@mansr.com> | 2010-09-21 21:57:21 +0400 |
commit | c0bc8b9afb7e4f39d84080870b9feedcd23ab5c9 (patch) | |
tree | 932e52a6ebe390204d2a5364406618ee0f999ef8 /libavcodec | |
parent | bdefad7366d27561ad863488cffa9184639e2921 (diff) |
x86: disable SSE functions using stack when stack is not aligned
This fixes crashes with ICC 10.1.
Originally committed as revision 25153 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec')
-rw-r--r-- | libavcodec/x86/dsputilenc_mmx.c | 4 | ||||
-rw-r--r-- | libavcodec/x86/h264dsp_mmx.c | 2 |
2 files changed, 4 insertions, 2 deletions
diff --git a/libavcodec/x86/dsputilenc_mmx.c b/libavcodec/x86/dsputilenc_mmx.c index 24022af07b..1ef5a45ffa 100644 --- a/libavcodec/x86/dsputilenc_mmx.c +++ b/libavcodec/x86/dsputilenc_mmx.c @@ -1160,7 +1160,7 @@ void dsputilenc_init_mmx(DSPContext* c, AVCodecContext *avctx) if(mm_flags & AV_CPU_FLAG_SSE2){ c->get_pixels = get_pixels_sse2; c->sum_abs_dctelem= sum_abs_dctelem_sse2; -#if HAVE_YASM +#if HAVE_YASM && HAVE_ALIGNED_STACK c->hadamard8_diff[0]= ff_hadamard8_diff16_sse2; c->hadamard8_diff[1]= ff_hadamard8_diff_sse2; #endif @@ -1177,7 +1177,7 @@ void dsputilenc_init_mmx(DSPContext* c, AVCodecContext *avctx) } c->add_8x8basis= add_8x8basis_ssse3; c->sum_abs_dctelem= sum_abs_dctelem_ssse3; -#if HAVE_YASM +#if HAVE_YASM && HAVE_ALIGNED_STACK c->hadamard8_diff[0]= ff_hadamard8_diff16_ssse3; c->hadamard8_diff[1]= ff_hadamard8_diff_ssse3; #endif diff --git a/libavcodec/x86/h264dsp_mmx.c b/libavcodec/x86/h264dsp_mmx.c index fd21d8cc2e..59218984a1 100644 --- a/libavcodec/x86/h264dsp_mmx.c +++ b/libavcodec/x86/h264dsp_mmx.c @@ -326,10 +326,12 @@ void ff_h264dsp_init_x86(H264DSPContext *c) c->biweight_h264_pixels_tab[3]= ff_h264_biweight_8x8_sse2; c->biweight_h264_pixels_tab[4]= ff_h264_biweight_8x4_sse2; +#if HAVE_ALIGNED_STACK c->h264_v_loop_filter_luma = ff_x264_deblock_v_luma_sse2; c->h264_h_loop_filter_luma = ff_x264_deblock_h_luma_sse2; c->h264_v_loop_filter_luma_intra = ff_x264_deblock_v_luma_intra_sse2; c->h264_h_loop_filter_luma_intra = ff_x264_deblock_h_luma_intra_sse2; +#endif c->h264_idct_add16 = ff_h264_idct_add16_sse2; c->h264_idct_add8 = ff_h264_idct_add8_sse2; |