From c8b4b7b62aa113b37e3d3dfa90d4f1fb5d93feba Mon Sep 17 00:00:00 2001
From: Alban Gruin <alban.gruin@irit.fr>
Date: Mon, 9 May 2022 11:21:31 +0200
Subject: [PATCH] Revert "sras: handle unhandled cases wrt. the overflow"

This reverts commit e17128ee85ae4fccf671f168e75cfabf7d3c53c7.
---
 src/frontend/frontend.sv | 17 ++++++++---------
 src/frontend/sras.sv     |  7 +------
 2 files changed, 9 insertions(+), 15 deletions(-)

diff --git a/src/frontend/frontend.sv b/src/frontend/frontend.sv
index 018573b4..d0f7b5ca 100644
--- a/src/frontend/frontend.sv
+++ b/src/frontend/frontend.sv
@@ -380,15 +380,14 @@ module frontend import ariane_pkg::*; #(
     ) i_ras (
       .clk_i,
       .rst_ni,
-      .flush_i         ( flush_bp_i                  ),
-      .push_i          ( ras_push                    ),
-      .pop_i           ( ras_pop                     ),
-      .data_i          ( ras_update                  ),
-      .begin_spec_i    ( begin_spec_o                ),
-      .valid_spec_i    ( is_correct_predict          ),
-      .bad_spec_i      ( is_mispredict               ),
-      .resolved_type_i ( resolved_branch_i.cf_type   ),
-      .data_o          ( ras_predict                 )
+      .flush_i      ( flush_bp_i         ),
+      .push_i       ( ras_push           ),
+      .pop_i        ( ras_pop            ),
+      .data_i       ( ras_update         ),
+      .begin_spec_i ( begin_spec_o       ),
+      .valid_spec_i ( is_correct_predict ),
+      .bad_spec_i   ( is_mispredict      ),
+      .data_o       ( ras_predict        )
     );
 
     btb #(
diff --git a/src/frontend/sras.sv b/src/frontend/sras.sv
index a1ca5587..e5f7f8b6 100644
--- a/src/frontend/sras.sv
+++ b/src/frontend/sras.sv
@@ -28,7 +28,6 @@ module sras #(
     input  logic             begin_spec_i,
     input  logic             valid_spec_i,
     input  logic             bad_spec_i,
-    input  ariane_pkg::cf_t  resolved_type_i,
     output ariane_pkg::ras_t data_o
 );
 
@@ -69,16 +68,12 @@ module sras #(
                     ovf_counter_d[ptr_spec_q] = ovf_counter_q[ptr_spec_q] + 1'b1;
                 end
             end else if (!push_i && pop_i) begin
-                if (ovf_counter_q[ptr_spec_q] == '0) begin
-                    ovf_counter_d[ptr_spec_d] = '0; // ovf_counter_d[ptr_spec_d] = ovf_counter_q[ptr_spec_q];
-                end else begin
+                if (ovf_counter_q[ptr_spec_q] != '0) begin
                     ovf_counter_d[ptr_spec_d] = ovf_counter_q[ptr_spec_q] - 1'b1;
                 end
             end else if (begin_spec_i) begin
                 ovf_counter_d[ptr_spec_d] = ovf_counter_q[ptr_spec_q];
             end
-        end else if (bad_spec_i && resolved_type_i == ariane_pkg::Return && ovf_counter_q[ptr_spec_q] != '0) begin
-            ovf_counter_d[ptr_spec_d] = ovf_counter_q[ptr_spec_q] - 1'b1;
         end
     end
 
-- 
GitLab