From 527b26b5c9a2cfd55e86a30df5bd4767c27e0152 Mon Sep 17 00:00:00 2001 From: Michael Gilbert Date: Tue, 13 Sep 2022 01:46:21 +0100 Subject: [PATCH] explicitly set fpu mode on armhf Gbp-Pq: Topic armhf Gbp-Pq: Name floating-point.patch --- dlls/rpcrt4/cproxy.c | 3 +++ tools/winebuild/spec32.c | 7 ++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/dlls/rpcrt4/cproxy.c b/dlls/rpcrt4/cproxy.c index 968c7b5..465b13b 100644 --- a/dlls/rpcrt4/cproxy.c +++ b/dlls/rpcrt4/cproxy.c @@ -171,6 +171,9 @@ __ASM_GLOBAL_FUNC(call_stubless_func, #ifdef __SOFTFP__ "mov r3, #0\n\t" #else +#ifdef __ARM_PCS_VFP + ".fpu vfpv2\n\t" +#endif "vpush {s0-s15}\n\t" /* store the s0-s15/d0-d7 arguments */ "mov r3, sp\n\t" /* fpu_stack */ #endif diff --git a/tools/winebuild/spec32.c b/tools/winebuild/spec32.c index a2fb6ad..46494f2 100644 --- a/tools/winebuild/spec32.c +++ b/tools/winebuild/spec32.c @@ -304,7 +304,12 @@ static void output_relay_debug( DLLSPEC *spec ) output_cfi( ".cfi_startproc" ); output( "\tpush {r0-r3}\n" ); output( "\tmov r2, SP\n"); - if (has_float) output( "\tvpush {s0-s15}\n" ); + if (has_float) { + if (target.cpu == CPU_ARM) { + output( "\t.fpu vfpv2\n" ); + } + output( "\tvpush {s0-s15}\n" ); + } output( "\tpush {LR}\n" ); output( "\tsub SP, #4\n"); output( "\tmovw r1,#%u\n", i - spec->base ); -- 2.30.2