Add HJ's -fomit-frame-pointer struct return fix
This commit is contained in:
@@ -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-30 Anthony Green <green@redhat.com>
|
2008-01-30 Anthony Green <green@redhat.com>
|
||||||
|
|
||||||
* Makefile.am, include/Makefile.am: Move headers to
|
* Makefile.am, include/Makefile.am: Move headers to
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user