@samitouri / QOSamiQemu / commits / 9e64b41b4d

target/mips: expose Octeon68XX floating-point support

Octeon68XX cores implement CP1. Advertise that in the CPU definition by setting Config1.FP, enabling the writable Status bits, and providing the FCR0/FCR31 defaults used by this CPU model. This lets guests observe the expected floating-point feature bits and use CP1 with -cpu Octeon68XX. Signed-off-by: James Hilliard <james.hilliard1@gmail.com> Tested-by: Philippe Mathieu-Daudé <philmd@linaro.org> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Message-Id: <20260520172313.23777-5-philmd@linaro.org>

James Hilliard committed Apr 11, 2026 at 01:06 UTC 9e64b41b4d28f9d59c2da0b922308d6df27ab0b0
1 file changed +8 -2
target/mips/cpu-defs.c.inc
+8 -2
@@ -997,7 +997,8 @@ const mips_def_t mips_defs[] =
997 .CP0_PRid = 0x000D9100,
998 .CP0_Config0 = MIPS_CONFIG0 | (0x1 << CP0C0_AR) | (0x2 << CP0C0_AT) |
999 (MMU_TYPE_R4000 << CP0C0_MT),
1000 - .CP0_Config1 = MIPS_CONFIG1 | (0x3F << CP0C1_MMU) |
1000 + .CP0_Config1 = MIPS_CONFIG1 | (1 << CP0C1_FP) |
1001 + (0x3F << CP0C1_MMU) |
1002 (1 << CP0C1_IS) | (4 << CP0C1_IL) | (1 << CP0C1_IA) |
1003 (1 << CP0C1_DS) | (4 << CP0C1_DL) | (1 << CP0C1_DA) |
1004 (1 << CP0C1_PC) | (1 << CP0C1_WR) | (1 << CP0C1_EP),
@@ -1011,7 +1012,12 @@ const mips_def_t mips_defs[] =
1012 .CP0_PageGrain = (1 << CP0PG_ELPA),
1013 .SYNCI_Step = 32,
1014 .CCRes = 2,
1014 - .CP0_Status_rw_bitmask = 0x12F8FFFF,
1015 + .CP0_Status_rw_bitmask = 0x36F8FFFF,
1016 + .CP1_fcr0 = (1 << FCR0_F64) | (1 << FCR0_3D) | (1 << FCR0_PS) |
1017 + (1 << FCR0_L) | (1 << FCR0_W) | (1 << FCR0_D) |
1018 + (1 << FCR0_S) | (0x00 << FCR0_PRID) | (0x0 << FCR0_REV),
1019 + .CP1_fcr31 = 0,
1020 + .CP1_fcr31_rw_bitmask = 0xFF83FFFF,
1021 .SEGBITS = 42,
1022 .PABITS = 49,
1023 .insn_flags = CPU_MIPS64R2 | INSN_OCTEON,