From 17c7f33fdb3adcba81cd45789dbc0959e896a3c4 Mon Sep 17 00:00:00 2001 From: Gabe Black Date: Fri, 6 Aug 2021 04:41:16 -0700 Subject: [PATCH] cpu: Implement (get|set)Reg(Flat|) for the checker CPU. These are very simple, since they just delegate to other TCs. Change-Id: I08fd8de09c90c74548987d537e282edc297ac4e8 Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/49111 Maintainer: Gabe Black Tested-by: kokoro Reviewed-by: Giacomo Travaglini Maintainer: Giacomo Travaglini --- src/cpu/checker/thread_context.hh | 64 +++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) diff --git a/src/cpu/checker/thread_context.hh b/src/cpu/checker/thread_context.hh index d97e7a03c6..f8c3ce7a65 100644 --- a/src/cpu/checker/thread_context.hh +++ b/src/cpu/checker/thread_context.hh @@ -226,6 +226,38 @@ class CheckerThreadContext : public ThreadContext // // New accessors for new decoder. // + RegVal + getReg(const RegId ®) const override + { + return actualTC->getReg(reg); + } + + void + getReg(const RegId ®, void *val) const override + { + actualTC->getReg(reg, val); + } + + void * + getWritableReg(const RegId ®) override + { + return actualTC->getWritableReg(reg); + } + + void + setReg(const RegId ®, RegVal val) override + { + actualTC->setReg(reg, val); + checkerTC->setReg(reg, val); + } + + void + setReg(const RegId ®, const void *val) override + { + actualTC->setReg(reg, val); + checkerTC->setReg(reg, val); + } + RegVal readIntReg(RegIndex reg_idx) const override { @@ -388,6 +420,38 @@ class CheckerThreadContext : public ThreadContext actualTC->setStCondFailures(sc_failures); } + RegVal + getRegFlat(const RegId ®) const override + { + return actualTC->getRegFlat(reg); + } + + void + getRegFlat(const RegId ®, void *val) const override + { + actualTC->getRegFlat(reg, val); + } + + void * + getWritableRegFlat(const RegId ®) override + { + return actualTC->getWritableRegFlat(reg); + } + + void + setRegFlat(const RegId ®, RegVal val) override + { + actualTC->setRegFlat(reg, val); + checkerTC->setRegFlat(reg, val); + } + + void + setRegFlat(const RegId ®, const void *val) override + { + actualTC->setRegFlat(reg, val); + checkerTC->setRegFlat(reg, val); + } + RegVal readIntRegFlat(RegIndex idx) const override {