diff options
Diffstat (limited to 'src/arch/sparc/isa/formats/mem/util.isa')
-rw-r--r-- | src/arch/sparc/isa/formats/mem/util.isa | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/arch/sparc/isa/formats/mem/util.isa b/src/arch/sparc/isa/formats/mem/util.isa index ca673566b..aaa04b4bf 100644 --- a/src/arch/sparc/isa/formats/mem/util.isa +++ b/src/arch/sparc/isa/formats/mem/util.isa @@ -260,6 +260,32 @@ def template StoreCompleteAcc {{ } }}; +def template EACompExecute {{ + Fault + %(class_name)s::eaComp(%(CPU_exec_context)s *xc, + Trace::InstRecord *traceData) const + { + Addr EA; + Fault fault = NoFault; + %(op_decl)s; + %(op_rd)s; + %(ea_code)s; + %(fault_check)s; + + // NOTE: Trace Data is written using execute or completeAcc templates + if (fault == NoFault) { + %(EA_trunc)s + xc->setEA(EA); + } + + return fault; + } +}}; + +def template EACompDeclare {{ + Fault eaComp(%(CPU_exec_context)s *, Trace::InstRecord *) const; +}}; + // This delcares the initiateAcc function in memory operations def template InitiateAccDeclare {{ Fault initiateAcc(%(CPU_exec_context)s *, Trace::InstRecord *) const; |