explicitly set fpu mode on armhf
authorMichael Gilbert <mgilbert@debian.org>
Wed, 6 Jul 2022 00:44:32 +0000 (01:44 +0100)
committerMichael Gilbert <mgilbert@debian.org>
Wed, 6 Jul 2022 00:44:32 +0000 (01:44 +0100)
Gbp-Pq: Topic armhf
Gbp-Pq: Name floating-point.patch

dlls/rpcrt4/cproxy.c
tools/winebuild/spec32.c

index 968c7b515686b9f0a2ce3f266778a5c1ce3ab116..465b13b19be92cb11d2d26b7c117be9e8cd78129 100644 (file)
@@ -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
index a2fb6ad25de86221191266f60fa7344a6fa83e5f..46494f2e2735bb414412364c3a3ab1856a9686f8 100644 (file)
@@ -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 );