Gabe Black has uploaded this change for review. ( https://gem5-review.googlesource.com/c/public/gem5/+/49743 )

Change subject: arch: Eliminate the now unused read_code and write_code args.
......................................................................

arch: Eliminate the now unused read_code and write_code args.

Also eliminate the buildReadCode and buildWriteCode methods.

Change-Id: I27b1b87ab51a44b5d7280e29e22f38d97d968a65
---
M src/arch/isa_parser/operand_types.py
1 file changed, 1 insertion(+), 57 deletions(-)



diff --git a/src/arch/isa_parser/operand_types.py b/src/arch/isa_parser/operand_types.py
index 65d1f04..6121ff3 100755
--- a/src/arch/isa_parser/operand_types.py
+++ b/src/arch/isa_parser/operand_types.py
@@ -45,8 +45,7 @@

 class OperandDesc(object):
     def __init__(self, base_cls_name, dflt_ext, reg_spec, flags=None,
-            sort_pri=None, read_code=None, write_code=None,
-            read_predicate=None, write_predicate=None):
+            sort_pri=None, read_predicate=None, write_predicate=None):

         from .isa_parser import makeList

@@ -97,8 +96,6 @@
             'reg_spec': reg_spec,
             'flags': flags,
             'sort_pri': sort_pri,
-            'read_code': read_code,
-            'write_code': write_code,
             'read_predicate': read_predicate,
             'write_predicate': write_predicate,
         })
@@ -118,28 +115,6 @@
     src_reg_constructor = '\n\tsetSrcRegIdx(_numSrcRegs++, %s);'
     dst_reg_constructor = '\n\tsetDestRegIdx(_numDestRegs++, %s);'

-    def buildReadCode(self, predRead, op_idx):
-        subst_dict = {"name": self.base_name,
-                      "reg_idx": self.reg_spec,
-                      "ctype": self.ctype,
-                      "op_idx": op_idx}
-        code = self.read_code % subst_dict
-        return '%s = %s;\n' % (self.base_name, code)
-
-    def buildWriteCode(self, predWrite, op_idx):
-        subst_dict = {"name": self.base_name,
-                      "reg_idx": self.reg_spec,
-                      "ctype": self.ctype,
-                      "final_val": self.base_name,
-                      "op_idx": op_idx}
-        code = self.write_code % subst_dict
-        return '''
-        {
-            %s final_val = %s;
-            %s;
-            if (traceData) { traceData->setData(final_val); }
-        }''' % (self.ctype, self.base_name, code)
-
     def regId(self):
         return f'RegId({self.reg_class}, {self.reg_spec})'

@@ -254,9 +229,6 @@

 class RegOperand(BaseRegOperand):
     def makeRead(self, predRead, op_idx):
-        if self.read_code != None:
-            return self.buildReadCode(predRead, op_idx)
-
         reg_val = f'xc->getRegOperand(this, {op_idx})'

         if self.ctype == 'float':
@@ -270,9 +242,6 @@
         return f'{self.base_name} = {reg_val};\n'

     def makeWrite(self, predWrite, op_idx):
-        if self.write_code != None:
-            return self.buildWriteCode(predWrite, op_idx)
-
         reg_val = self.base_name

         if self.ctype == 'float':
@@ -361,8 +330,6 @@
         return c_read

     def makeReadW(self, predWrite, op_idx):
-        assert(self.read_code == None)
-
         c_readw = f'\t\tauto &tmp_d{op_idx} = \n' \
f'\t\t *({self.parser.namespace}::VecRegContainer *)\n' \
                   f'\t\t    xc->getWritableRegOperand(this, {op_idx});\n'
@@ -393,9 +360,6 @@
         return c_read

     def makeRead(self, predRead, op_idx):
-        if self.read_code != None:
-            return self.buildReadCode(predRead, op_idx)
-
         name = self.base_name
         if self.is_dest and self.is_src:
             name += '_merger'
@@ -418,9 +382,6 @@
         return c_read

     def makeWrite(self, predWrite, op_idx):
-        if self.write_code != None:
-            return self.buildWriteCode(predWrite, op_idx)
-
         wb = '''
         if (traceData) {
             traceData->setData(tmp_d%s);
@@ -446,9 +407,6 @@
         return ''

     def makeRead(self, predRead, op_idx):
-        if self.read_code != None:
-            return self.buildReadCode(predRead, op_idx)
-
         c_read =  f'\t\t{self.parser.namespace}::VecPredRegContainer ' \
                   f'\t\t        tmp_s{op_idx}; ' \
                   f'xc->getRegOperand(this, {op_idx}, &tmp_s{op_idx});\n'
@@ -459,8 +417,6 @@
         return c_read

     def makeReadW(self, predWrite, op_idx):
-        assert(self.read_code == None)
-
         c_readw = f'\t\tauto &tmp_d{op_idx} = \n' \
                   f'\t\t    *({self.parser.namespace}::' \
                   f'VecPredRegContainer *)xc->getWritableRegOperand(' \
@@ -472,9 +428,6 @@
         return c_readw

     def makeWrite(self, predWrite, op_idx):
-        if self.write_code != None:
-            return self.buildWriteCode(predWrite, op_idx)
-
         wb = '''
         if (traceData) {
             traceData->setData(tmp_d%s);
@@ -518,8 +471,6 @@
         bit_select = 0
         if (self.ctype == 'float' or self.ctype == 'double'):
             error('Attempt to read control register as FP')
-        if self.read_code != None:
-            return self.buildReadCode(predRead, op_idx)

         return '%s = xc->readMiscRegOperand(this, %s);\n' % \
             (self.base_name, op_idx)
@@ -527,9 +478,6 @@
     def makeWrite(self, predWrite, op_idx):
         if (self.ctype == 'float' or self.ctype == 'double'):
             error('Attempt to write control register as FP')
-        if self.write_code != None:
-            return self.buildWriteCode(predWrite, op_idx)
-
         wb = 'xc->setMiscRegOperand(this, %s, %s);\n' % \
              (op_idx, self.base_name)
         wb += 'if (traceData) { traceData->setData(%s); }' % \
@@ -554,13 +502,9 @@
         return '%s %s = {};\n' % (self.ctype, self.base_name)

     def makeRead(self, predRead, op_idx):
-        if self.read_code != None:
-            return self.buildReadCode(predRead, op_idx)
         return ''

     def makeWrite(self, predWrite, op_idx):
-        if self.write_code != None:
-            return self.buildWriteCode(predWrite, op_idx)
         return ''

 class MemOperandDesc(OperandDesc):

--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/49743
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: I27b1b87ab51a44b5d7280e29e22f38d97d968a65
Gerrit-Change-Number: 49743
Gerrit-PatchSet: 1
Gerrit-Owner: Gabe Black <gabe.bl...@gmail.com>
Gerrit-MessageType: newchange
_______________________________________________
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