Gabe Black has submitted this change. ( https://gem5-review.googlesource.com/c/public/gem5/+/49739 )

 (

62 is the latest approved patch-set.
No files were changed between the latest approved patch-set and the submitted one.
 )Change subject: arch: Add some indirection for Operand RegId generation.
......................................................................

arch: Add some indirection for Operand RegId generation.

That introduces a place to hook in to override what actual register
index is passed to the rest of gem5.

Change-Id: I77d778849410ee5d32bab669bba411e80603a002
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/49739
Reviewed-by: Giacomo Travaglini <giacomo.travagl...@arm.com>
Maintainer: Giacomo Travaglini <giacomo.travagl...@arm.com>
Tested-by: kokoro <noreply+kok...@google.com>
---
M src/arch/isa_parser/operand_types.py
1 file changed, 25 insertions(+), 6 deletions(-)

Approvals:
  Giacomo Travaglini: Looks good to me, approved; Looks good to me, approved
  kokoro: Regressions pass




diff --git a/src/arch/isa_parser/operand_types.py b/src/arch/isa_parser/operand_types.py
index ea2780e..4079bcd 100755
--- a/src/arch/isa_parser/operand_types.py
+++ b/src/arch/isa_parser/operand_types.py
@@ -100,8 +100,8 @@
     derived classes encapsulates the traits of a particular operand
     type (e.g., "32-bit integer register").'''

-    src_reg_constructor = '\n\tsetSrcRegIdx(_numSrcRegs++, RegId(%s, %s));'
- dst_reg_constructor = '\n\tsetDestRegIdx(_numDestRegs++, RegId(%s, %s));'
+    src_reg_constructor = '\n\tsetSrcRegIdx(_numSrcRegs++, %s);'
+    dst_reg_constructor = '\n\tsetDestRegIdx(_numDestRegs++, %s);'

     def buildReadCode(self, pred_read, op_idx):
         subst_dict = {"name": self.base_name,
@@ -125,6 +125,9 @@
             if (traceData) {{ traceData->setData(final_val); }}
         }}'''

+    def regId(self):
+        return f'RegId({self.reg_class}, {self.reg_spec})'
+
     def __init__(self, parser, full_name, ext, is_src, is_dest):
         self.parser = parser
         self.full_name = full_name
@@ -220,13 +223,13 @@
         c_dest = ''

         if self.is_src:
- c_src = self.src_reg_constructor % (self.reg_class, self.reg_spec)
+            c_src = self.src_reg_constructor % self.regId()
             if self.hasReadPred():
                 c_src = '\n\tif (%s) {%s\n\t}' % \
                         (self.read_predicate, c_src)

         if self.is_dest:
- c_dest = self.dst_reg_constructor % (self.reg_class, self.reg_spec)
+            c_dest = self.dst_reg_constructor % self.regId()
             c_dest += f'\n\t_numTypedDestRegs[{self.reg_class}]++;'
             if self.hasWritePred():
                 c_dest = '\n\tif (%s) {%s\n\t}' % \
@@ -481,10 +484,10 @@
         c_dest = ''

         if self.is_src:
- c_src = self.src_reg_constructor % (self.reg_class, self.reg_spec)
+            c_src = self.src_reg_constructor % self.regId()

         if self.is_dest:
- c_dest = self.dst_reg_constructor % (self.reg_class, self.reg_spec)
+            c_dest = self.dst_reg_constructor % self.regId()

         return c_src + c_dest


--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/49739
To unsubscribe, or for help writing mail filters, visit https://gem5-review.googlesource.com/settings

Gerrit-Project: public/gem5
Gerrit-Branch: develop
Gerrit-Change-Id: I77d778849410ee5d32bab669bba411e80603a002
Gerrit-Change-Number: 49739
Gerrit-PatchSet: 65
Gerrit-Owner: Gabe Black <gabe.bl...@gmail.com>
Gerrit-Reviewer: Gabe Black <gabe.bl...@gmail.com>
Gerrit-Reviewer: Giacomo Travaglini <giacomo.travagl...@arm.com>
Gerrit-Reviewer: kokoro <noreply+kok...@google.com>
Gerrit-MessageType: merged
_______________________________________________
gem5-dev mailing list -- gem5-dev@gem5.org
To unsubscribe send an email to gem5-dev-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

Reply via email to