From 150104648f713fcf45a1ea423468948d1dc509fc Mon Sep 17 00:00:00 2001 From: Giacomo Gabrielli Date: Thu, 14 Feb 2019 17:39:37 +0000 Subject: [PATCH] cpu: Add ISA* getter in Thread interface 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 Reviewed-by: Anthony Gutierrez Maintainer: Anthony Gutierrez --- src/cpu/checker/thread_context.hh | 2 ++ src/cpu/o3/thread_context.hh | 6 ++++++ src/cpu/simple_thread.hh | 2 ++ src/cpu/thread_context.hh | 5 +++++ 4 files changed, 15 insertions(+) diff --git a/src/cpu/checker/thread_context.hh b/src/cpu/checker/thread_context.hh index 9c8469cc0..d88c9b250 100644 --- a/src/cpu/checker/thread_context.hh +++ b/src/cpu/checker/thread_context.hh @@ -121,6 +121,8 @@ class CheckerThreadContext : public ThreadContext return checkerCPU; } + TheISA::ISA *getIsaPtr() override { return actualTC->getIsaPtr(); } + TheISA::Decoder *getDecoderPtr() override { return actualTC->getDecoderPtr(); } diff --git a/src/cpu/o3/thread_context.hh b/src/cpu/o3/thread_context.hh index 022e71291..374ef377d 100644 --- a/src/cpu/o3/thread_context.hh +++ b/src/cpu/o3/thread_context.hh @@ -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 { diff --git a/src/cpu/simple_thread.hh b/src/cpu/simple_thread.hh index 3dddc6768..53aa9d7b7 100644 --- a/src/cpu/simple_thread.hh +++ b/src/cpu/simple_thread.hh @@ -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; } diff --git a/src/cpu/thread_context.hh b/src/cpu/thread_context.hh index 6b9ff1a12..2a991f68f 100644 --- a/src/cpu/thread_context.hh +++ b/src/cpu/thread_context.hh @@ -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(); } -- 2.30.2