cpu: Add ISA* getter in Thread interface
authorGiacomo Gabrielli <giacomo.gabrielli@arm.com>
Thu, 14 Feb 2019 17:39:37 +0000 (17:39 +0000)
committerGiacomo Travaglini <giacomo.travaglini@arm.com>
Tue, 19 Feb 2019 09:06:57 +0000 (09:06 +0000)
This patch is adding a ISA* getter to the TC interface

Change-Id: Ib8ddc5d8fdd44e782f50a2ad15878a6bcf931e58
Reviewed-on: https://gem5-review.googlesource.com/c/16462
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-by: Anthony Gutierrez <anthony.gutierrez@amd.com>
Maintainer: Anthony Gutierrez <anthony.gutierrez@amd.com>

src/cpu/checker/thread_context.hh
src/cpu/o3/thread_context.hh
src/cpu/simple_thread.hh
src/cpu/thread_context.hh

index 9c8469cc01ad18ec3b0b814427d7abc12f4b8908..d88c9b250aaf9ee23ecc369d3c9142709dca4b4f 100644 (file)
@@ -121,6 +121,8 @@ class CheckerThreadContext : public ThreadContext
         return checkerCPU;
     }
 
+    TheISA::ISA *getIsaPtr() override { return actualTC->getIsaPtr(); }
+
     TheISA::Decoder *getDecoderPtr() override {
         return actualTC->getDecoderPtr();
     }
index 022e7129117cf10e5fe06fc5fcf83e655b95b6fe..374ef377d20a71e22be95fd86a6a288425f442a3 100644 (file)
@@ -86,6 +86,12 @@ class O3ThreadContext : public ThreadContext
 
     CheckerCPU *getCheckerCpuPtr() override { return NULL; }
 
+    TheISA::ISA *
+    getIsaPtr() override
+    {
+        return cpu->isa[thread->threadId()];
+    }
+
     TheISA::Decoder *
     getDecoderPtr() override
     {
index 3dddc6768908b610484a6b1131e83c6c75c3942d..53aa9d7b712adac6f3c1bfd76aab4fdfa3c60952 100644 (file)
@@ -203,6 +203,8 @@ class SimpleThread : public ThreadState
 
     CheckerCPU *getCheckerCpuPtr() { return NULL; }
 
+    TheISA::ISA *getIsaPtr() { return isa; }
+
     TheISA::Decoder *getDecoderPtr() { return &decoder; }
 
     System *getSystemPtr() { return system; }
index 6b9ff1a1205506b49d2a8cdaafd884ddb8f646c0..2a991f68f712b805d63f1ef66f0a40e2fbbaf957 100644 (file)
@@ -57,6 +57,7 @@
 // DTB pointers.
 namespace TheISA
 {
+    class ISA;
     class Decoder;
 }
 class BaseCPU;
@@ -143,6 +144,8 @@ class ThreadContext
 
     virtual CheckerCPU *getCheckerCpuPtr() = 0;
 
+    virtual TheISA::ISA *getIsaPtr() = 0;
+
     virtual TheISA::Decoder *getDecoderPtr() = 0;
 
     virtual System *getSystemPtr() = 0;
@@ -406,6 +409,8 @@ class ProxyThreadContext : public ThreadContext
 
     CheckerCPU *getCheckerCpuPtr() { return actualTC->getCheckerCpuPtr(); }
 
+    TheISA::ISA *getIsaPtr() { return actualTC->getIsaPtr(); }
+
     TheISA::Decoder *getDecoderPtr() { return actualTC->getDecoderPtr(); }
 
     System *getSystemPtr() { return actualTC->getSystemPtr(); }