Gabe Black has submitted this change. (
https://gem5-review.googlesource.com/c/public/gem5/+/49743 )
(
64 is the latest approved patch-set.
No files were changed between the latest approved patch-set and the
submitted one.
)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
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/49743
Maintainer: Gabe Black <gabe.bl...@gmail.com>
Maintainer: Giacomo Travaglini <giacomo.travagl...@arm.com>
Reviewed-by: Giacomo Travaglini <giacomo.travagl...@arm.com>
Tested-by: kokoro <noreply+kok...@google.com>
---
M src/arch/isa_parser/operand_types.py
1 file changed, 17 insertions(+), 57 deletions(-)
Approvals:
Giacomo Travaglini: Looks good to me, approved; Looks good to me, approved
Gabe Black: 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 a9f5eab..897235a 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, 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, pred_read, 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 f'{self.base_name} = {code};\n'
-
- def buildWriteCode(self, pred_write, 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 f'''
- {{
- {self.ctype} final_val = {self.base_name};
- {code};
- if (traceData) {{ traceData->setData(final_val); }}
- }}'''
-
def regId(self):
return f'RegId({self.reg_class}, {self.reg_spec})'
@@ -260,9 +235,6 @@
class RegValOperand(RegOperand):
def makeRead(self, pred_read, op_idx):
- if self.read_code != None:
- return self.buildReadCode(pred_read, op_idx)
-
reg_val = f'xc->getRegOperand(this, {op_idx})'
if self.ctype == 'float':
@@ -276,9 +248,6 @@
return f'{self.base_name} = {reg_val};\n'
def makeWrite(self, pred_write, op_idx):
- if self.write_code != None:
- return self.buildWriteCode(pred_write, op_idx)
-
reg_val = self.base_name
if self.ctype == 'float':
@@ -363,8 +332,6 @@
return c_read
def makeReadW(self, pred_write, 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'
@@ -395,9 +362,6 @@
return c_read
def makeRead(self, pred_read, op_idx):
- if self.read_code != None:
- return self.buildReadCode(pred_read, op_idx)
-
name = self.base_name
if self.is_dest and self.is_src:
name += '_merger'
@@ -420,9 +384,6 @@
return c_read
def makeWrite(self, pred_write, op_idx):
- if self.write_code != None:
- return self.buildWriteCode(pred_write, op_idx)
-
return f'''
if (traceData) {{
traceData->setData(tmp_d{op_idx});
@@ -446,9 +407,6 @@
return ''
def makeRead(self, pred_read, op_idx):
- if self.read_code != None:
- return self.buildReadCode(pred_read, 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, pred_write, 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, pred_write, op_idx):
- if self.write_code != None:
- return self.buildWriteCode(pred_write, op_idx)
-
return f'''
if (traceData) {{
traceData->setData(tmp_d{op_idx});
@@ -516,8 +469,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(pred_read, op_idx)
return '%s = xc->readMiscRegOperand(this, %s);\n' % \
(self.base_name, op_idx)
@@ -525,9 +476,6 @@
def makeWrite(self, pred_write, 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(pred_write, op_idx)
-
wb = 'xc->setMiscRegOperand(this, %s, %s);\n' % \
(op_idx, self.base_name)
wb += 'if (traceData) { traceData->setData(%s); }' % \
@@ -551,13 +499,9 @@
return '%s %s = {};\n' % (self.ctype, self.base_name)
def makeRead(self, pred_read, op_idx):
- if self.read_code != None:
- return self.buildReadCode(pred_read, op_idx)
return ''
def makeWrite(self, pred_write, op_idx):
- if self.write_code != None:
- return self.buildWriteCode(pred_write, 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: 67
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