diff --git a/media/libopus/silk/NSQ_del_dec.c b/media/libopus/silk/NSQ_del_dec.c index 522be4066..12861e14f 100644 --- a/media/libopus/silk/NSQ_del_dec.c +++ b/media/libopus/silk/NSQ_del_dec.c @@ -106,6 +106,13 @@ static OPUS_INLINE void silk_noise_shape_quantizer_del_dec( opus_int decisionDelay /* I */ ); +#if (__GNUC__ == 4 && __GNUC_MINOR__ == 8 && __GNUC_PATCHLEVEL__ == 5) +#ifdef TENFOURFOX_G5 +/* work around issue 461 */ +__attribute__((optimize("no-tree-vectorize"))) +#endif +#endif + void silk_NSQ_del_dec( const silk_encoder_state *psEncC, /* I/O Encoder State */ silk_nsq_state *NSQ, /* I/O NSQ state */ diff --git a/media/libyuv/source/row_common.cc b/media/libyuv/source/row_common.cc index a718399eb..dcd71353c 100644 --- a/media/libyuv/source/row_common.cc +++ b/media/libyuv/source/row_common.cc @@ -1116,6 +1116,13 @@ void I422ToARGB4444Row_C(const uint8* src_y, } } +#if (__GNUC__ == 4 && __GNUC_MINOR__ == 8 && __GNUC_PATCHLEVEL__ == 5) +#ifdef __ppc__ +/* work around issue 461 */ +__attribute__((optimize("no-tree-vectorize"))) +#endif +#endif + void I422ToARGB1555Row_C(const uint8* src_y, const uint8* src_u, const uint8* src_v, @@ -1154,6 +1161,16 @@ void I422ToARGB1555Row_C(const uint8* src_y, } } +#if (__GNUC__ == 4 && __GNUC_MINOR__ == 8 && __GNUC_PATCHLEVEL__ == 5) +#ifdef __ppc__ +#ifndef TENFOURFOX_G5 +/* Work around issue 461, 7450 only + Safe to comment for a 7400 build */ +__attribute__((optimize("no-tree-vectorize"))) +#endif +#endif +#endif + void I422ToRGB565Row_C(const uint8* src_y, const uint8* src_u, const uint8* src_v, @@ -1280,6 +1297,14 @@ void NV21ToARGBRow_C(const uint8* src_y, } } +#if (__GNUC__ == 4 && __GNUC_MINOR__ == 8 && __GNUC_PATCHLEVEL__ == 5) +#ifdef __ppc__ +/* work around issue 461 */ +__attribute__((optimize("no-tree-vectorize"))) +#endif +#endif + + void NV12ToRGB565Row_C(const uint8* src_y, const uint8* usrc_v, uint8* dst_rgb565, @@ -1315,6 +1340,13 @@ void NV12ToRGB565Row_C(const uint8* src_y, } } +#if (__GNUC__ == 4 && __GNUC_MINOR__ == 8 && __GNUC_PATCHLEVEL__ == 5) +#ifdef __ppc__ +/* work around issue 461 */ +__attribute__((optimize("no-tree-vectorize"))) +#endif +#endif + void NV21ToRGB565Row_C(const uint8* src_y, const uint8* vsrc_u, uint8* dst_rgb565, diff --git a/media/libyuv/source/scale_common.cc b/media/libyuv/source/scale_common.cc index 6ed8bfaf9..c5700bfbb 100644 --- a/media/libyuv/source/scale_common.cc +++ b/media/libyuv/source/scale_common.cc @@ -88,6 +88,13 @@ void ScaleRowDown4_C(const uint8* src_ptr, ptrdiff_t src_stride, } } +#if (__GNUC__ == 4 && __GNUC_MINOR__ == 8 && __GNUC_PATCHLEVEL__ == 5) +#ifdef TENFOURFOX_G5 +/* work around issue 461 */ +__attribute__((optimize("no-tree-vectorize"))) +#endif +#endif + void ScaleRowDown4Box_C(const uint8* src_ptr, ptrdiff_t src_stride, uint8* dst, int dst_width) { intptr_t stride = src_stride; diff --git a/media/webrtc/trunk/webrtc/modules/audio_coding/codecs/isac/main/source/entropy_coding.c b/media/webrtc/trunk/webrtc/modules/audio_coding/codecs/isac/main/source/entropy_coding.c index dd1d64af7..c9e04b1e8 100644 --- a/media/webrtc/trunk/webrtc/modules/audio_coding/codecs/isac/main/source/entropy_coding.c +++ b/media/webrtc/trunk/webrtc/modules/audio_coding/codecs/isac/main/source/entropy_coding.c @@ -385,6 +385,12 @@ int WebRtcIsac_DecodeSpec(Bitstr* streamdata, int16_t AvgPitchGain_Q12, return len; } +#if (__GNUC__ == 4 && __GNUC_MINOR__ == 8 && __GNUC_PATCHLEVEL__ == 5) +#ifdef TENFOURFOX_G5 +/* work around issue 461 */ +__attribute__((optimize("no-tree-vectorize"))) +#endif +#endif int WebRtcIsac_EncodeSpec(const int16_t* fr, const int16_t* fi, int16_t AvgPitchGain_Q12, enum ISACBand band,