[Bug target/37010] -Os passes __m128 on stack with wrong alignment

2008-08-03 Thread hjl dot tools at gmail dot com
--- Comment #4 from hjl dot tools at gmail dot com 2008-08-03 20:11 --- A run-time testcase: bash-3.2$ cat y.c /* PR middle-end/37010 */ /* { dg-do run { target { { i?86-*-* x86_64-*-* } && ilp32 } } } */ /* { dg-options "-msse2" } */ typedef __PTRDIFF_TYPE__ ptrdiff_t; extern void abo

[Bug target/37010] -Os passes __m128 on stack with wrong alignment

2008-08-03 Thread hjl dot tools at gmail dot com
--- Comment #3 from hjl dot tools at gmail dot com 2008-08-03 18:40 --- Joey, when we compute frame layout, we don't count the duplicated return address pushed onto stack when DRAP is used. Also when we push return address, shouldn't we use -UNITS_PER_WORD, instead of -(STACK_BOUNDARY /

[Bug target/37010] -Os passes __m128 on stack with wrong alignment

2008-08-03 Thread hjl dot tools at gmail dot com
--- Comment #2 from hjl dot tools at gmail dot com 2008-08-03 18:18 --- (In reply to comment #1) > A patch is posted at > > http://gcc.gnu.org/ml/gcc-patches/2008-08/msg00123.html > This patch is incorrect. The problem is between ACCUMULATE_OUTGOING_ARGS, ix86_compute_frame_layout and

[Bug target/37010] -Os passes __m128 on stack with wrong alignment

2008-08-02 Thread hjl dot tools at gmail dot com
--- Comment #1 from hjl dot tools at gmail dot com 2008-08-03 00:37 --- A patch is posted at http://gcc.gnu.org/ml/gcc-patches/2008-08/msg00123.html -- hjl dot tools at gmail dot com changed: What|Removed |Added ---