public inbox for libffi-discuss@sourceware.org
 help / color / mirror / Atom feed
* [PATCH] src/arm/sysv.S: Fix ffi_call_VFP with no VFP arguments
@ 2014-01-21 15:32 Will Newton
  2014-02-28  5:28 ` Anthony Green
  0 siblings, 1 reply; 2+ messages in thread
From: Will Newton @ 2014-01-21 15:32 UTC (permalink / raw)
  To: libffi-discuss; +Cc: patches, Will Newton

When no VFP arguments are present the IP register is used
uninitialized. Initialize it to the value of FP.

This fixes a number of testsuite failures when configured for
armv7l-unknown-linux-gnueabihf:

FAIL: libffi.call/cls_3byte1.c -O0 -W -Wall execution test
FAIL: libffi.call/cls_3byte2.c -O0 -W -Wall execution test
FAIL: libffi.call/cls_4_1byte.c -O0 -W -Wall execution test
FAIL: libffi.call/cls_4byte.c -O0 -W -Wall execution test
FAIL: libffi.call/cls_3byte1.c -O2 execution test
FAIL: libffi.call/cls_3byte2.c -O2 execution test
FAIL: libffi.call/cls_4_1byte.c -O2 execution test
FAIL: libffi.call/cls_4byte.c -O2 execution test
FAIL: libffi.call/cls_3byte1.c -O3 execution test
FAIL: libffi.call/cls_3byte2.c -O3 execution test
FAIL: libffi.call/cls_4_1byte.c -O3 execution test
FAIL: libffi.call/cls_4byte.c -O3 execution test
FAIL: libffi.call/cls_3byte1.c -Os execution test
FAIL: libffi.call/cls_3byte2.c -Os execution test
FAIL: libffi.call/cls_4_1byte.c -Os execution test
FAIL: libffi.call/cls_4byte.c -Os execution test
FAIL: libffi.call/cls_3byte1.c -O2 -fomit-frame-pointer execution test
FAIL: libffi.call/cls_3byte2.c -O2 -fomit-frame-pointer execution test
FAIL: libffi.call/cls_4_1byte.c -O2 -fomit-frame-pointer execution test
FAIL: libffi.call/cls_4byte.c -O2 -fomit-frame-pointer execution test
---
 src/arm/sysv.S | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/arm/sysv.S b/src/arm/sysv.S
index 454dfc9..8ab6d63 100644
--- a/src/arm/sysv.S
+++ b/src/arm/sysv.S
@@ -368,6 +368,7 @@ ARM_FUNC_START ffi_call_VFP
 
 	@ Load VFP register args if needed
 	cmp	r0, #0
+	mov	ip, fp
 	beq	LSYM(Lbase_args)
 
 	@ Load only d0 if possible
-- 
1.8.1.4

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [PATCH] src/arm/sysv.S: Fix ffi_call_VFP with no VFP arguments
  2014-01-21 15:32 [PATCH] src/arm/sysv.S: Fix ffi_call_VFP with no VFP arguments Will Newton
@ 2014-02-28  5:28 ` Anthony Green
  0 siblings, 0 replies; 2+ messages in thread
From: Anthony Green @ 2014-02-28  5:28 UTC (permalink / raw)
  To: Will Newton; +Cc: libffi-discuss, patches

Will Newton <will.newton@linaro.org> writes:

> When no VFP arguments are present the IP register is used
> uninitialized. Initialize it to the value of FP.
>
> This fixes a number of testsuite failures when configured for
> armv7l-unknown-linux-gnueabihf:

Thanks Will!

AG


>
> FAIL: libffi.call/cls_3byte1.c -O0 -W -Wall execution test
> FAIL: libffi.call/cls_3byte2.c -O0 -W -Wall execution test
> FAIL: libffi.call/cls_4_1byte.c -O0 -W -Wall execution test
> FAIL: libffi.call/cls_4byte.c -O0 -W -Wall execution test
> FAIL: libffi.call/cls_3byte1.c -O2 execution test
> FAIL: libffi.call/cls_3byte2.c -O2 execution test
> FAIL: libffi.call/cls_4_1byte.c -O2 execution test
> FAIL: libffi.call/cls_4byte.c -O2 execution test
> FAIL: libffi.call/cls_3byte1.c -O3 execution test
> FAIL: libffi.call/cls_3byte2.c -O3 execution test
> FAIL: libffi.call/cls_4_1byte.c -O3 execution test
> FAIL: libffi.call/cls_4byte.c -O3 execution test
> FAIL: libffi.call/cls_3byte1.c -Os execution test
> FAIL: libffi.call/cls_3byte2.c -Os execution test
> FAIL: libffi.call/cls_4_1byte.c -Os execution test
> FAIL: libffi.call/cls_4byte.c -Os execution test
> FAIL: libffi.call/cls_3byte1.c -O2 -fomit-frame-pointer execution test
> FAIL: libffi.call/cls_3byte2.c -O2 -fomit-frame-pointer execution test
> FAIL: libffi.call/cls_4_1byte.c -O2 -fomit-frame-pointer execution test
> FAIL: libffi.call/cls_4byte.c -O2 -fomit-frame-pointer execution test
> ---
>  src/arm/sysv.S | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/src/arm/sysv.S b/src/arm/sysv.S
> index 454dfc9..8ab6d63 100644
> --- a/src/arm/sysv.S
> +++ b/src/arm/sysv.S
> @@ -368,6 +368,7 @@ ARM_FUNC_START ffi_call_VFP
>  
>  	@ Load VFP register args if needed
>  	cmp	r0, #0
> +	mov	ip, fp
>  	beq	LSYM(Lbase_args)
>  
>  	@ Load only d0 if possible

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2014-02-28  5:28 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-01-21 15:32 [PATCH] src/arm/sysv.S: Fix ffi_call_VFP with no VFP arguments Will Newton
2014-02-28  5:28 ` Anthony Green

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).