NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: port-sgimips/60204: sgimips: arcbios calls require FPU to be enabled
The following reply was made to PR port-sgimips/60204; it has been noted by GNATS.
From: Adrian Chadd <adrian%freebsd.org@localhost>
To: gnats-bugs%netbsd.org@localhost
Cc:
Subject: Re: port-sgimips/60204: sgimips: arcbios calls require FPU to be enabled
Date: Wed, 22 Apr 2026 11:53:34 -0700
Ok, let's try this one.
```
diff --git a/sys/dev/arcbios/arcbios_calls.S b/sys/dev/arcbios/arcbios_calls.S
index c184d9786daaf..0bf715212ec36 100644
--- a/sys/dev/arcbios/arcbios_calls.S
+++ b/sys/dev/arcbios/arcbios_calls.S
@@ -32,6 +32,9 @@
#include <sys/cdefs.h>
#include <machine/asm.h>
+#include <mips/asm.h>
+#include <mips/cpuregs.h>
+
#include "assym.h"
RCSID("$NetBSD: arcbios_calls.S,v 1.6 2026/01/11 06:41:42 tsutsui Exp $")
@@ -56,6 +59,13 @@ NESTED(arcbios_4orless_args, CALLFRAME_SIZ, ra)
REG_S ra, CALLFRAME_RA(sp)
REG_S s0, CALLFRAME_SP(sp)
+ /* Enable FPU - see PR port-sgimips/60204 */
+ mfc0 k0, MIPS_COP_0_STATUS
+ MFC0_HAZARD
+ or k0, MIPS_SR_COP_1_BIT
+ mtc0 k0, MIPS_COP_0_STATUS
+ COP0_HAZARD_FPUENABLE
+
PTR_L t9, _C_LABEL(ARCBIOS)
nop
PTR_ADDU t9, t0
@@ -67,6 +77,12 @@ NESTED(arcbios_4orless_args, CALLFRAME_SIZ, ra)
FIX_V0
+ /* Disable FPU */
+ mfc0 k0, MIPS_COP_0_STATUS
+ MFC0_HAZARD
+ and k0, ~MIPS_SR_COP_1_BIT
+ mtc0 k0, MIPS_COP_0_STATUS
+
move MIPS_CURLWP, s0
REG_L ra, CALLFRAME_RA(sp)
@@ -98,6 +114,13 @@ NESTED(arcbios_5to8_args, CALLFRAME2_SIZ, ra)
INT_S a7, 28(sp) # save 8th arg on stack (o32)
#endif
+ /* Enable FPU - see PR port-sgimips/60204 */
+ mfc0 k0, MIPS_COP_0_STATUS
+ MFC0_HAZARD
+ or k0, MIPS_SR_COP_1_BIT
+ mtc0 k0, MIPS_COP_0_STATUS
+ COP0_HAZARD_FPUENABLE
+
PTR_L t9, _C_LABEL(ARCBIOS)
nop
PTR_ADDU t9, t0
@@ -109,6 +132,12 @@ NESTED(arcbios_5to8_args, CALLFRAME2_SIZ, ra)
FIX_V0
+ /* Disable FPU */
+ mfc0 k0, MIPS_COP_0_STATUS
+ MFC0_HAZARD
+ and k0, ~MIPS_SR_COP_1_BIT
+ mtc0 k0, MIPS_COP_0_STATUS
+
move MIPS_CURLWP, s0
REG_L ra, CALLFRAME2_RA(sp)
```
Home |
Main Index |
Thread Index |
Old Index