From c3cb4e5d1c7eb51b3e81d686c97dde492fe5dc3e Mon Sep 17 00:00:00 2001 From: Jordan Carlin Date: Wed, 26 Jun 2024 21:35:17 -0700 Subject: [PATCH] Fix FPU without S_SUPPORTED - #840 --- src/privileged/csr.sv | 2 +- src/privileged/csrsr.sv | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/privileged/csr.sv b/src/privileged/csr.sv index b849cd7e6..99f621665 100644 --- a/src/privileged/csr.sv +++ b/src/privileged/csr.sv @@ -262,7 +262,7 @@ module csr import cvw::*; #(parameter cvw_t P) ( end // Floating Point CSRs in User Mode only needed if Floating Point is supported - if (P.F_SUPPORTED | P.D_SUPPORTED) begin:csru + if (P.F_SUPPORTED) begin:csru csru #(P) csru(.clk, .reset, .InstrValidNotFlushedM, .CSRUWriteM, .CSRAdrM, .CSRWriteValM, .STATUS_FS, .CSRUReadValM, .SetFflagsM, .FRM_REGW, .WriteFRMM, .WriteFFLAGSM, diff --git a/src/privileged/csrsr.sv b/src/privileged/csrsr.sv index 22f34124c..dc970921e 100644 --- a/src/privileged/csrsr.sv +++ b/src/privileged/csrsr.sv @@ -99,7 +99,7 @@ module csrsr import cvw::*; #(parameter cvw_t P) ( assign STATUS_UXL = P.U_SUPPORTED ? 2'b10 : 2'b00; // 10 if user mode supported assign STATUS_SUM = P.S_SUPPORTED & P.VIRTMEM_SUPPORTED & STATUS_SUM_INT; // override reigster with 0 if supervisor mode not supported assign STATUS_MPRV = P.U_SUPPORTED & STATUS_MPRV_INT; // override with 0 if user mode not supported - assign STATUS_FS = (P.S_SUPPORTED & (P.F_SUPPORTED | P.D_SUPPORTED)) ? STATUS_FS_INT : 2'b00; // off if no FP + assign STATUS_FS = P.F_SUPPORTED ? STATUS_FS_INT : 2'b00; // off if no FP assign STATUS_SD = (STATUS_FS == 2'b11) | (STATUS_XS == 2'b11); // dirty state logic assign STATUS_XS = 2'b00; // No additional user-mode state to be dirty