mirror of
https://gcc.gnu.org/git/gcc.git
synced 2024-11-27 05:44:15 +08:00
re PR libffi/34612 ([4.1/4.2] libffi doesn't work with -fomit-frame-pointer on ia32)
2008-01-30 H.J. Lu <hongjiu.lu@intel.com> PR libffi/34612 * src/x86/sysv.S (ffi_closure_SYSV): Pop 4 byte from stack when returning struct. * testsuite/libffi.call/call.exp: Add "-O2 -fomit-frame-pointer" tests. From-SVN: r131964
This commit is contained in:
parent
ac9e6043ea
commit
7f92e24236
@ -1,3 +1,12 @@
|
|||||||
|
2008-01-30 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
|
PR libffi/34612
|
||||||
|
* src/x86/sysv.S (ffi_closure_SYSV): Pop 4 byte from stack when
|
||||||
|
returning struct.
|
||||||
|
|
||||||
|
* testsuite/libffi.call/call.exp: Add "-O2 -fomit-frame-pointer"
|
||||||
|
tests.
|
||||||
|
|
||||||
2008-01-24 David Edelsohn <edelsohn@gnu.org>
|
2008-01-24 David Edelsohn <edelsohn@gnu.org>
|
||||||
|
|
||||||
* configure: Regenerate.
|
* configure: Regenerate.
|
||||||
|
@ -210,6 +210,8 @@ ffi_closure_SYSV:
|
|||||||
je .Lcls_retldouble
|
je .Lcls_retldouble
|
||||||
cmpl $FFI_TYPE_SINT64, %eax
|
cmpl $FFI_TYPE_SINT64, %eax
|
||||||
je .Lcls_retllong
|
je .Lcls_retllong
|
||||||
|
cmpl $FFI_TYPE_STRUCT, %eax
|
||||||
|
je .Lcls_retstruct
|
||||||
.Lcls_epilogue:
|
.Lcls_epilogue:
|
||||||
movl %ebp, %esp
|
movl %ebp, %esp
|
||||||
popl %ebp
|
popl %ebp
|
||||||
@ -230,6 +232,10 @@ ffi_closure_SYSV:
|
|||||||
movl (%ecx), %eax
|
movl (%ecx), %eax
|
||||||
movl 4(%ecx), %edx
|
movl 4(%ecx), %edx
|
||||||
jmp .Lcls_epilogue
|
jmp .Lcls_epilogue
|
||||||
|
.Lcls_retstruct:
|
||||||
|
movl %ebp, %esp
|
||||||
|
popl %ebp
|
||||||
|
ret $4
|
||||||
.LFE2:
|
.LFE2:
|
||||||
.size ffi_closure_SYSV, .-ffi_closure_SYSV
|
.size ffi_closure_SYSV, .-ffi_closure_SYSV
|
||||||
|
|
||||||
|
@ -27,6 +27,7 @@ dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.\[cS\]]] "-O0 -W -Wall" ""
|
|||||||
dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.\[cS\]]] "-O2" ""
|
dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.\[cS\]]] "-O2" ""
|
||||||
dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.\[cS\]]] "-O3" ""
|
dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.\[cS\]]] "-O3" ""
|
||||||
dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.\[cS\]]] "-Os" ""
|
dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.\[cS\]]] "-Os" ""
|
||||||
|
dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.\[cS\]]] "-O2 -fomit-frame-pointer" ""
|
||||||
|
|
||||||
dg-finish
|
dg-finish
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user