Gabe Black has uploaded this change for review. (
https://gem5-review.googlesource.com/c/public/gem5/+/49741 )
Change subject: arch-x86: Override make(Read|Write) instead of (read|
write)_code.
......................................................................
arch-x86: Override make(Read|Write) instead of (read|write)_code.
Change-Id: Iab077f58e19aa6bfeed555caa31a4c8b3d261059
---
M src/arch/x86/isa/operands.isa
1 file changed, 18 insertions(+), 9 deletions(-)
diff --git a/src/arch/x86/isa/operands.isa b/src/arch/x86/isa/operands.isa
index a549860..e243847 100644
--- a/src/arch/x86/isa/operands.isa
+++ b/src/arch/x86/isa/operands.isa
@@ -55,21 +55,30 @@
let {{
class IntReg(IntRegOp):
- def __init__(self, idx, id, *args, **kwargs):
+ def __init__(self, idx, id, data_size='dataSize', *args, **kwargs):
super(IntReg, self).__init__(
'uqw', idx, 'IsInteger', id, *args, **kwargs)
+ self.attrs['data_size'] = data_size
class PickedReg(IntReg):
- def __init__(self, idx, id, size='dataSize'):
- super(PickedReg, self).__init__(idx, id,
- read_code='pick(xc->getRegOperand(this, %(op_idx)s), '
- '%(reg_idx)s, ' + size + ')')
+ @overrideInOperand
+ def makeRead(self, predRead, op_idx):
+ return f'{self.base_name} = pick(xc->getRegOperand(' \
+ f'this, {op_idx}), {self.reg_spec}, ' \
+ f'{self.data_size});\n'
+
+ def __init__(self, idx, id, data_size='dataSize'):
+ super(PickedReg, self).__init__(idx, id, data_size)
class SignedPickedReg(IntReg):
- def __init__(self, idx, id, size='dataSize'):
- super(SignedPickedReg, self).__init__(idx, id,
- read_code='signedPick(xc->getRegOperand(this, '
- '%(op_idx)s), %(reg_idx)s, ' + size + ')')
+ @overrideInOperand
+ def makeRead(self, predRead, op_idx):
+ return f'{self.base_name} = signedPick(xc->getRegOperand(' \
+ f'this, {op_idx}), {self.reg_spec}, ' \
+ f'{self.data_size});\n'
+
+ def __init__(self, idx, id, data_size='dataSize'):
+ super(SignedPickedReg, self).__init__(idx, id, data_size)
class FloatReg(FloatRegOp):
def __init__(self, idx, id):
--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/49741
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: Iab077f58e19aa6bfeed555caa31a4c8b3d261059
Gerrit-Change-Number: 49741
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