arch,cpu,sim: Store registers in InstRecord with InstResult.
The InstResult knows how to print registers without having to know about their actual types. Change-Id: Ib858e32a7b2fabbde4857165b9e88e87294942c8 Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/50254 Tested-by: kokoro <noreply+kokoro@google.com> Reviewed-by: Giacomo Travaglini <giacomo.travaglini@arm.com> Maintainer: Gabe Black <gabe.black@gmail.com>
This commit is contained in:
@@ -229,7 +229,7 @@ class RegValOperand(RegOperand):
|
||||
RegVal final_val = {reg_val};
|
||||
xc->setRegOperand(this, {self.dest_reg_idx}, final_val);
|
||||
if (traceData) {{
|
||||
traceData->setData(final_val);
|
||||
traceData->setData({self.reg_class}, final_val);
|
||||
}}
|
||||
}}'''
|
||||
|
||||
@@ -354,7 +354,7 @@ class VecRegOperand(RegOperand):
|
||||
def makeWrite(self):
|
||||
return f'''
|
||||
if (traceData) {{
|
||||
traceData->setData(tmp_d{self.dest_reg_idx});
|
||||
traceData->setData({self.reg_class}, &tmp_d{self.dest_reg_idx});
|
||||
}}
|
||||
'''
|
||||
|
||||
@@ -398,7 +398,7 @@ class VecPredRegOperand(RegOperand):
|
||||
def makeWrite(self):
|
||||
return f'''
|
||||
if (traceData) {{
|
||||
traceData->setData(tmp_d{self.dest_reg_idx});
|
||||
traceData->setData({self.reg_class}, &tmp_d{self.dest_reg_idx});
|
||||
}}
|
||||
'''
|
||||
|
||||
@@ -447,7 +447,7 @@ class ControlRegOperand(Operand):
|
||||
f'{self.dest_reg_idx}, {self.base_name});\n'
|
||||
wb += f'''
|
||||
if (traceData) {{
|
||||
traceData->setData({self.base_name});
|
||||
traceData->setData({self.reg_class}, {self.base_name});
|
||||
}}
|
||||
'''
|
||||
|
||||
|
||||
Reference in New Issue
Block a user