Gabe Black has uploaded this change for review. (
https://gem5-review.googlesource.com/c/public/gem5/+/36882 )
Change subject: power: Convert POWER to use local reg index storage.
......................................................................
power: Convert POWER to use local reg index storage.
Change-Id: Ieea4ade247f89b23266a383b604c17e740d44e3d
---
M src/arch/power/isa/formats/basic.isa
M src/arch/power/isa/formats/integer.isa
M src/arch/power/isa/formats/mem.isa
3 files changed, 36 insertions(+), 23 deletions(-)
diff --git a/src/arch/power/isa/formats/basic.isa
b/src/arch/power/isa/formats/basic.isa
index 0ccef6a..20d380f 100644
--- a/src/arch/power/isa/formats/basic.isa
+++ b/src/arch/power/isa/formats/basic.isa
@@ -33,19 +33,23 @@
*/
class %(class_name)s : public %(base_class)s
{
+ private:
+ %(reg_idx_arr_decl)s;
+
public:
- /// Constructor.
- %(class_name)s(ExtMachInst machInst);
- Fault execute(ExecContext *,
- Trace::InstRecord *) const override;
+ /// Constructor.
+ %(class_name)s(ExtMachInst machInst);
+ Fault execute(ExecContext *, Trace::InstRecord *) const
override;
};
}};
// Basic instruction class constructor template.
def template BasicConstructor {{
- %(class_name)s::%(class_name)s(ExtMachInst
machInst) : %(base_class)s("%(mnemonic)s", machInst, %(op_class)s)
+ %(class_name)s::%(class_name)s(ExtMachInst machInst) :
+ %(base_class)s("%(mnemonic)s", machInst, %(op_class)s)
{
- %(constructor)s;
+ %(set_reg_idx_arr)s;
+ %(constructor)s;
}
}};
diff --git a/src/arch/power/isa/formats/integer.isa
b/src/arch/power/isa/formats/integer.isa
index 3b24927..50badce 100644
--- a/src/arch/power/isa/formats/integer.isa
+++ b/src/arch/power/isa/formats/integer.isa
@@ -34,32 +34,38 @@
// Instruction class constructor template when Rc is set.
def template IntRcConstructor {{
- %(class_name)s::%(class_name)s(ExtMachInst
machInst) : %(base_class)s("%(mnemonic)s", machInst, %(op_class)s)
- {
- %(constructor)s;
- rcSet = true;
- }
+ %(class_name)s::%(class_name)s(ExtMachInst machInst) :
+ %(base_class)s("%(mnemonic)s", machInst, %(op_class)s)
+ {
+ %(set_reg_idx_arr)s;
+ %(constructor)s;
+ rcSet = true;
+ }
}};
// Instruction class constructor template when OE is set.
def template IntOeConstructor {{
- %(class_name)s::%(class_name)s(ExtMachInst
machInst) : %(base_class)s("%(mnemonic)s", machInst, %(op_class)s)
- {
- %(constructor)s;
- oeSet = true;
- }
+ %(class_name)s::%(class_name)s(ExtMachInst machInst) :
+ %(base_class)s("%(mnemonic)s", machInst, %(op_class)s)
+ {
+ %(set_reg_idx_arr)s;
+ %(constructor)s;
+ oeSet = true;
+ }
}};
// Instruction class constructor template when both Rc and OE are set.
def template IntRcOeConstructor {{
- %(class_name)s::%(class_name)s(ExtMachInst
machInst) : %(base_class)s("%(mnemonic)s", machInst, %(op_class)s)
- {
- %(constructor)s;
- rcSet = true;
- oeSet = true;
- }
+ %(class_name)s::%(class_name)s(ExtMachInst machInst) :
+ %(base_class)s("%(mnemonic)s", machInst, %(op_class)s)
+ {
+ %(set_reg_idx_arr)s;
+ %(constructor)s;
+ rcSet = true;
+ oeSet = true;
+ }
}};
diff --git a/src/arch/power/isa/formats/mem.isa
b/src/arch/power/isa/formats/mem.isa
index 1f10a5a..c7be2b1 100644
--- a/src/arch/power/isa/formats/mem.isa
+++ b/src/arch/power/isa/formats/mem.isa
@@ -37,8 +37,10 @@
*/
class %(class_name)s : public %(base_class)s
{
- public:
+ private:
+ %(reg_idx_arr_decl)s;
+ public:
/// Constructor.
%(class_name)s(ExtMachInst machInst);
@@ -54,6 +56,7 @@
%(class_name)s::%(class_name)s(ExtMachInst machInst)
: %(base_class)s("%(mnemonic)s", machInst, %(op_class)s)
{
+ %(set_reg_idx_arr)s;
%(constructor)s;
}
}};
--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/36882
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: Ieea4ade247f89b23266a383b604c17e740d44e3d
Gerrit-Change-Number: 36882
Gerrit-PatchSet: 1
Gerrit-Owner: Gabe Black <[email protected]>
Gerrit-MessageType: newchange
_______________________________________________
gem5-dev mailing list -- [email protected]
To unsubscribe send an email to [email protected]
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s