Message ID | AM9PR09MB485153B7CB706E188DED763484402@AM9PR09MB4851.eurprd09.prod.outlook.com |
---|---|
State | New |
Headers | show |
Series | [v2,1/8] Add CP0 MemoryMapID register implementation | expand |
> > Enable MSA ASE for mips32r6-generic CPU. > > Cherry-picked 0186e83a0613e90aff6d4c12c91cdb080d695d37 > from https://github.com/MIPS/gnutools-qemu > > Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com> > Signed-off-by: Faraz Shahbazker <fshahbazker@wavecomp.com> > Signed-off-by: Aleksandar Rakic <aleksandar.rakic@htecgroup.com> > --- > target/mips/cpu-defs.c.inc | 8 +++++--- > 1 file changed, 5 insertions(+), 3 deletions(-) > Reviewed-by: Aleksandar Rikalo <arikalo@gmail.com> -- Aleksandar
On 18/10/24 10:20, Aleksandar Rakic wrote: > Enable MSA ASE for mips32r6-generic CPU. Commit 4b3bcd016d8 added this comment: /* A generic CPU supporting MIPS32 Release 6 ISA. FIXME: Support IEEE 754-2008 FP. Eventually this should be replaced by a real CPU model. */ .name = "mips32r6-generic", I'd rather we model a real mips32r6 core. Or for generic models enable a feature using a CLI flag, i.e.: -cpu mips32r6-generic,+msa / -cpu mips32r6-generic,msa=on But this would need quite some rework. > Cherry-picked 0186e83a0613e90aff6d4c12c91cdb080d695d37 > from https://github.com/MIPS/gnutools-qemu > > Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com> > Signed-off-by: Faraz Shahbazker <fshahbazker@wavecomp.com> > Signed-off-by: Aleksandar Rakic <aleksandar.rakic@htecgroup.com> > --- > target/mips/cpu-defs.c.inc | 8 +++++--- > 1 file changed, 5 insertions(+), 3 deletions(-) Patch queued.
diff --git a/target/mips/cpu-defs.c.inc b/target/mips/cpu-defs.c.inc index 9428ece220..19e2abac82 100644 --- a/target/mips/cpu-defs.c.inc +++ b/target/mips/cpu-defs.c.inc @@ -478,14 +478,15 @@ const mips_def_t mips_defs[] = (2 << CP0C1_DS) | (4 << CP0C1_DL) | (3 << CP0C1_DA) | (0 << CP0C1_PC) | (1 << CP0C1_WR) | (1 << CP0C1_EP), .CP0_Config2 = MIPS_CONFIG2, - .CP0_Config3 = MIPS_CONFIG3 | (1 << CP0C3_BP) | (1 << CP0C3_BI) | + .CP0_Config3 = MIPS_CONFIG3 | (1 << CP0C3_MSAP) | + (1 << CP0C3_BP) | (1 << CP0C3_BI) | (2 << CP0C3_ISA) | (1 << CP0C3_ULRI) | (1 << CP0C3_RXI) | (1U << CP0C3_M), .CP0_Config4 = MIPS_CONFIG4 | (0xfc << CP0C4_KScrExist) | (3 << CP0C4_IE) | (1U << CP0C4_M), .CP0_Config5 = MIPS_CONFIG5 | (1 << CP0C5_XNP) | (1 << CP0C5_LLB), - .CP0_Config5_rw_bitmask = (1 << CP0C5_SBRI) | (1 << CP0C5_FRE) | - (1 << CP0C5_UFE), + .CP0_Config5_rw_bitmask = (1 << CP0C5_MSAEn) | (1 << CP0C5_UFE) | + (1 << CP0C5_FRE) | (1 << CP0C5_SBRI), .CP0_LLAddr_rw_bitmask = 0, .CP0_LLAddr_shift = 0, .SYNCI_Step = 32, @@ -499,6 +500,7 @@ const mips_def_t mips_defs[] = (1 << FCR0_S) | (0x00 << FCR0_PRID) | (0x0 << FCR0_REV), .CP1_fcr31 = (1 << FCR31_ABS2008) | (1 << FCR31_NAN2008), .CP1_fcr31_rw_bitmask = 0x0103FFFF, + .MSAIR = 0x03 << MSAIR_ProcID, .SEGBITS = 32, .PABITS = 32, .insn_flags = CPU_MIPS32R6 | ASE_MICROMIPS,