Gabe Black has submitted this change. (
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
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/49741
Tested-by: kokoro <noreply+kok...@google.com>
Reviewed-by: Gabe Black <gabe.bl...@gmail.com>
Maintainer: Gabe Black <gabe.bl...@gmail.com>
---
M src/arch/x86/isa/operands.isa
1 file changed, 31 insertions(+), 9 deletions(-)
Approvals:
Gabe Black: Looks good to me, approved; Looks good to me, approved
kokoro: Regressions pass
diff --git a/src/arch/x86/isa/operands.isa b/src/arch/x86/isa/operands.isa
index 2eaab4b..afbb8a0 100644
--- a/src/arch/x86/isa/operands.isa
+++ b/src/arch/x86/isa/operands.isa
@@ -55,20 +55,29 @@
let {{
class IntReg(IntRegOp):
- def __init__(self, idx, id, *args, **kwargs):
+ def __init__(self, idx, id, data_size='dataSize', *args, **kwargs):
super().__init__('uqw', idx, 'IsInteger', id, *args, **kwargs)
+ self.attrs['data_size'] = data_size
class PickedReg(IntReg):
- def __init__(self, idx, id, size='dataSize'):
- super().__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().__init__(idx, id, data_size)
class SignedPickedReg(IntReg):
- def __init__(self, idx, id, size='dataSize'):
- super().__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().__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: 67
Gerrit-Owner: Gabe Black <gabe.bl...@gmail.com>
Gerrit-Reviewer: Bradford Beckmann <bradford.beckm...@gmail.com>
Gerrit-Reviewer: Gabe Black <gabe.bl...@gmail.com>
Gerrit-Reviewer: Giacomo Travaglini <giacomo.travagl...@arm.com>
Gerrit-Reviewer: Matt Sinclair <mattdsincl...@gmail.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