From fa209d0aaf85538a7408d5e4fe5f8c70f106f729 Mon Sep 17 00:00:00 2001
From: Alban Gruin <alban.gruin@irit.fr>
Date: Mon, 9 May 2022 11:21:36 +0200
Subject: [PATCH] Revert "fixup! sras: size improvements"

This reverts commit 4aa205870c0c396b48f515f80f5b73b256538292.
---
 src/frontend/sras.sv | 34 +++++++++++++++-------------------
 1 file changed, 15 insertions(+), 19 deletions(-)

diff --git a/src/frontend/sras.sv b/src/frontend/sras.sv
index accec65b..1bd7ed8e 100644
--- a/src/frontend/sras.sv
+++ b/src/frontend/sras.sv
@@ -60,17 +60,16 @@ module sras #(
             ovf_counter_d = '0;
         end else if (!bad_spec_i) begin
             if (push_i && !pop_i) begin
-                if (overflow || prev_plus_one == '0 || pp_plus_one == '0) begin
+                if (overflow) begin
                     ovf_counter_d[ptr_spec_d] = ovf_counter_q[ptr_spec_q] + 1'b1;
+                end else if (prev_plus_one == '0 || pp_plus_one == '0) begin
+                    ovf_counter_d[ptr_spec_d] = ovf_counter_q[ptr_spec_q] + 1'b1;
+                    if (begin_spec_i) begin
+                        ovf_counter_d[ptr_spec_q] = ovf_counter_q[ptr_spec_q] + 1'b1;
+                    end
                 end
-
-                if ((prev_plus_one == '0 || pp_plus_one == '0) && begin_spec_i) begin
-                    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] = ovf_counter_q[ptr_spec_q] - 1'b1;
-                end
+            end else if (!push_i && pop_i && ovf_counter_q[ptr_spec_q] != '0) begin
+                ovf_counter_d[ptr_spec_d] = ovf_counter_q[ptr_spec_q] - 1'b1;
             end else if (!bad_spec_i && begin_spec_i) begin
                 ovf_counter_d[ptr_spec_d] = ovf_counter_q[ptr_spec_q];
             end
@@ -83,17 +82,14 @@ module sras #(
         if (flush_i) begin
             tos_d = '0;
         end else if (!bad_spec_i) begin
-            if (push_i && !pop_i) begin
-                if (!overflow && prev_plus_one != '0 && pp_plus_one != '0) begin
-                    tos_d[ptr_spec_d] = prev_plus_one;
-                    if (begin_spec_i) begin
-                        tos_d[ptr_spec_q] = pp_plus_one;
-                    end
-                end
-            end else if (!push_i && pop_i) begin
-                if (ovf_counter_q[ptr_spec_q] == '0) begin
-                    tos_d[ptr_spec_d] = prev_minus_one;
+            if (push_i && !pop_i && !overflow && prev_plus_one != '0 && pp_plus_one != '0) begin
+                tos_d[ptr_spec_d] = prev_plus_one;
+
+                if (begin_spec_i) begin
+                    tos_d[ptr_spec_q] = pp_plus_one;
                 end
+            end else if (!push_i && pop_i && ovf_counter_q[ptr_spec_q] == '0) begin
+                tos_d[ptr_spec_d] = prev_minus_one;
             end else if (!bad_spec_i && begin_spec_i) begin
                 tos_d[ptr_spec_d] = tos_q[ptr_spec_q];
             end
-- 
GitLab