Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 291523 Details for
Bug 389323
media-libs/libmpeg2-0.5.1-r1 crashes in SSE code when compiled with gcc-4.6
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Fix patch from Mandriva
libmpeg2-0.5.1-gcc4.6.patch (text/plain), 6.56 KB, created by
Mart Raudsepp
on 2011-11-02 14:19:29 UTC
(
hide
)
Description:
Fix patch from Mandriva
Filename:
MIME Type:
Creator:
Mart Raudsepp
Created:
2011-11-02 14:19:29 UTC
Size:
6.56 KB
patch
obsolete
>From https://bzattachment.mandriva.com/attachment.cgi?id=18391 > >Correct crash in SSE code with gcc 4.6.0-compiled mpeg2dec (Mandriva #63279 - https://qa.mandriva.com/show_bug.cgi?id=63279) > >--- libmpeg2-0.5.1/libmpeg2/idct_mmx.c.orig 2011-05-13 09:23:02.557758717 -0300 >+++ libmpeg2-0.5.1/libmpeg2/idct_mmx.c 2011-05-13 09:23:06.346778580 -0300 >@@ -39,7 +39,6 @@ > #define rounder(bias) {round (bias), round (bias)} > #define rounder_sse2(bias) {round (bias), round (bias), round (bias), round (bias)} > >- > #if 0 > /* C row IDCT - it is just here to document the MMXEXT and MMX versions */ > static inline void idct_row (int16_t * row, int offset, >@@ -464,10 +463,10 @@ static inline void sse2_idct_col (int16_ > /* Almost identical to mmxext version: */ > /* just do both 4x8 columns in paraller */ > >- static const short t1_vector[] ATTR_ALIGN(16) = {T1,T1,T1,T1,T1,T1,T1,T1}; >- static const short t2_vector[] ATTR_ALIGN(16) = {T2,T2,T2,T2,T2,T2,T2,T2}; >- static const short t3_vector[] ATTR_ALIGN(16) = {T3,T3,T3,T3,T3,T3,T3,T3}; >- static const short c4_vector[] ATTR_ALIGN(16) = {C4,C4,C4,C4,C4,C4,C4,C4}; >+ static/* const*/ short t1_vector[] ATTR_ALIGN(16) = {T1,T1,T1,T1,T1,T1,T1,T1}; >+ static/* const*/ short t2_vector[] ATTR_ALIGN(16) = {T2,T2,T2,T2,T2,T2,T2,T2}; >+ static/* const*/ short t3_vector[] ATTR_ALIGN(16) = {T3,T3,T3,T3,T3,T3,T3,T3}; >+ static/* const*/ short c4_vector[] ATTR_ALIGN(16) = {C4,C4,C4,C4,C4,C4,C4,C4}; > > #if defined(__x86_64__) > >@@ -710,10 +709,10 @@ static inline void sse2_idct_col (int16_ > /* MMX column IDCT */ > static inline void idct_col (int16_t * const col, const int offset) > { >- static const short t1_vector[] ATTR_ALIGN(8) = {T1,T1,T1,T1}; >- static const short t2_vector[] ATTR_ALIGN(8) = {T2,T2,T2,T2}; >- static const short t3_vector[] ATTR_ALIGN(8) = {T3,T3,T3,T3}; >- static const short c4_vector[] ATTR_ALIGN(8) = {C4,C4,C4,C4}; >+ static/* const*/ short t1_vector[] ATTR_ALIGN(8) = {T1,T1,T1,T1}; >+ static/* const*/ short t2_vector[] ATTR_ALIGN(8) = {T2,T2,T2,T2}; >+ static/* const*/ short t3_vector[] ATTR_ALIGN(8) = {T3,T3,T3,T3}; >+ static/* const*/ short c4_vector[] ATTR_ALIGN(8) = {C4,C4,C4,C4}; > > /* column code adapted from peter gubanov */ > /* http://www.elecard.com/peter/idct.shtml */ >@@ -847,33 +846,33 @@ static inline void idct_col (int16_t * c > } > > >-static const int32_t rounder0[] ATTR_ALIGN(8) = >+static/* const*/ int32_t rounder0[] ATTR_ALIGN(8) = > rounder ((1 << (COL_SHIFT - 1)) - 0.5); >-static const int32_t rounder4[] ATTR_ALIGN(8) = rounder (0); >-static const int32_t rounder1[] ATTR_ALIGN(8) = >+static/* const*/ int32_t rounder4[] ATTR_ALIGN(8) = rounder (0); >+static/* const*/ int32_t rounder1[] ATTR_ALIGN(8) = > rounder (1.25683487303); /* C1*(C1/C4+C1+C7)/2 */ >-static const int32_t rounder7[] ATTR_ALIGN(8) = >+static/* const*/ int32_t rounder7[] ATTR_ALIGN(8) = > rounder (-0.25); /* C1*(C7/C4+C7-C1)/2 */ >-static const int32_t rounder2[] ATTR_ALIGN(8) = >+static/* const*/ int32_t rounder2[] ATTR_ALIGN(8) = > rounder (0.60355339059); /* C2 * (C6+C2)/2 */ >-static const int32_t rounder6[] ATTR_ALIGN(8) = >+static/* const*/ int32_t rounder6[] ATTR_ALIGN(8) = > rounder (-0.25); /* C2 * (C6-C2)/2 */ >-static const int32_t rounder3[] ATTR_ALIGN(8) = >+static/* const*/ int32_t rounder3[] ATTR_ALIGN(8) = > rounder (0.087788325588); /* C3*(-C3/C4+C3+C5)/2 */ >-static const int32_t rounder5[] ATTR_ALIGN(8) = >+static/* const*/ int32_t rounder5[] ATTR_ALIGN(8) = > rounder (-0.441341716183); /* C3*(-C5/C4+C5-C3)/2 */ > > > #define declare_idct(idct,table,idct_row_head,idct_row,idct_row_tail,idct_row_mid) \ > static inline void idct (int16_t * const block) \ > { \ >- static const int16_t table04[] ATTR_ALIGN(16) = \ >+ static/* const*/ int16_t table04[] ATTR_ALIGN(16) = \ > table (22725, 21407, 19266, 16384, 12873, 8867, 4520); \ >- static const int16_t table17[] ATTR_ALIGN(16) = \ >+ static/* const*/ int16_t table17[] ATTR_ALIGN(16) = \ > table (31521, 29692, 26722, 22725, 17855, 12299, 6270); \ >- static const int16_t table26[] ATTR_ALIGN(16) = \ >+ static/* const*/ int16_t table26[] ATTR_ALIGN(16) = \ > table (29692, 27969, 25172, 21407, 16819, 11585, 5906); \ >- static const int16_t table35[] ATTR_ALIGN(16) = \ >+ static/* const*/ int16_t table35[] ATTR_ALIGN(16) = \ > table (26722, 25172, 22654, 19266, 15137, 10426, 5315); \ > \ > idct_row_head (block, 0*8, table04); \ >@@ -900,29 +899,29 @@ static inline void idct (int16_t * const > > static inline void sse2_idct (int16_t * const block) > { >- static const int16_t table04[] ATTR_ALIGN(16) = >+ static/* const*/ int16_t table04[] ATTR_ALIGN(16) = > sse2_table (22725, 21407, 19266, 16384, 12873, 8867, 4520); >- static const int16_t table17[] ATTR_ALIGN(16) = >+ static/* const*/ int16_t table17[] ATTR_ALIGN(16) = > sse2_table (31521, 29692, 26722, 22725, 17855, 12299, 6270); >- static const int16_t table26[] ATTR_ALIGN(16) = >+ static/* const*/ int16_t table26[] ATTR_ALIGN(16) = > sse2_table (29692, 27969, 25172, 21407, 16819, 11585, 5906); >- static const int16_t table35[] ATTR_ALIGN(16) = >+ static/* const*/ int16_t table35[] ATTR_ALIGN(16) = > sse2_table (26722, 25172, 22654, 19266, 15137, 10426, 5315); > >- static const int32_t rounder0_128[] ATTR_ALIGN(16) = >+ static/* const*/ int32_t rounder0_128[] ATTR_ALIGN(16) = > rounder_sse2 ((1 << (COL_SHIFT - 1)) - 0.5); >- static const int32_t rounder4_128[] ATTR_ALIGN(16) = rounder_sse2 (0); >- static const int32_t rounder1_128[] ATTR_ALIGN(16) = >+ static/* const*/ int32_t rounder4_128[] ATTR_ALIGN(16) = rounder_sse2 (0); >+ static/* const*/ int32_t rounder1_128[] ATTR_ALIGN(16) = > rounder_sse2 (1.25683487303); /* C1*(C1/C4+C1+C7)/2 */ >- static const int32_t rounder7_128[] ATTR_ALIGN(16) = >+ static/* const*/ int32_t rounder7_128[] ATTR_ALIGN(16) = > rounder_sse2 (-0.25); /* C1*(C7/C4+C7-C1)/2 */ >- static const int32_t rounder2_128[] ATTR_ALIGN(16) = >+ static/* const*/ int32_t rounder2_128[] ATTR_ALIGN(16) = > rounder_sse2 (0.60355339059); /* C2 * (C6+C2)/2 */ >- static const int32_t rounder6_128[] ATTR_ALIGN(16) = >+ static/* const*/ int32_t rounder6_128[] ATTR_ALIGN(16) = > rounder_sse2 (-0.25); /* C2 * (C6-C2)/2 */ >- static const int32_t rounder3_128[] ATTR_ALIGN(16) = >+ static/* const*/ int32_t rounder3_128[] ATTR_ALIGN(16) = > rounder_sse2 (0.087788325588); /* C3*(-C3/C4+C3+C5)/2 */ >- static const int32_t rounder5_128[] ATTR_ALIGN(16) = >+ static/* const*/ int32_t rounder5_128[] ATTR_ALIGN(16) = > rounder_sse2 (-0.441341716183); /* C3*(-C5/C4+C5-C3)/2 */ > > #if defined(__x86_64__)
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 389323
: 291523 |
294081
|
302651