diff --git a/src/CP0/CP0.sv b/src/CP0/CP0.sv index 02a5ad8..f471e17 100644 --- a/src/CP0/CP0.sv +++ b/src/CP0/CP0.sv @@ -58,7 +58,8 @@ module CP0 ( assign rf_cp0.Cause.zero3 = 2'b00; assign rf_cp0.Status.zero1 = 9'b0; assign rf_cp0.Status.zero2 = 6'b0; - assign rf_cp0.Status.zero3 = 6'b0; + assign rf_cp0.Status.zero3 = 3'b0; + assign rf_cp0.Status.zero4 = 2'b0; assign rf_cp0.EntryHi.zero = 5'b0; assign rf_cp0.Wired.zero = 29'b0; assign rf_cp0.EntryLo1.zero = 6'b0; @@ -97,6 +98,7 @@ module CP0 ( rf_cp0.Cause.ExcCode = 5'b0; rf_cp0.Status.Bev = 1'b1; rf_cp0.Status.IM = 8'b0; + rf_cp0.Status.UM = 1'b0; rf_cp0.Status.EXL = 1'b0; rf_cp0.Status.IE = 1'b0; rf_cp0.Compare = 32'hFFFF_FFFF; @@ -156,6 +158,7 @@ module CP0 ( 12: begin rf_cp0.Status.Bev = wdata[22]; rf_cp0.Status.IM = wdata[15:8]; + rf_cp0.Status.UM = wdata[4]; rf_cp0.Status.EXL = wdata[1]; rf_cp0.Status.IE = wdata[0]; end diff --git a/src/include/CP0.svh b/src/include/CP0.svh index 89b8c2c..b5c7e9e 100644 --- a/src/include/CP0.svh +++ b/src/include/CP0.svh @@ -65,7 +65,9 @@ typedef struct packed { logic Bev; logic [5:0] zero2; logic [7:0] IM; - logic [5:0] zero3; + logic [2:0] zero3; + logic UM; + logic [1:0] zero4; logic EXL; logic IE; } CP0_REGS_STATUS_t;