From d84eb9dac64f314adcef2c374de245012f658b1d Mon Sep 17 00:00:00 2001 From: Subv Date: Fri, 20 Jul 2018 19:57:45 -0500 Subject: CPU: Save and restore the TPIDR_EL0 system register on every context switch. Note that there's currently a dynarmic bug preventing this register from being written. --- src/core/hle/kernel/thread.h | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'src/core/hle/kernel/thread.h') diff --git a/src/core/hle/kernel/thread.h b/src/core/hle/kernel/thread.h index f1e759802..5fe72c55c 100644 --- a/src/core/hle/kernel/thread.h +++ b/src/core/hle/kernel/thread.h @@ -182,6 +182,14 @@ public: return tls_address; } + /* + * Returns the value of the TPIDR_EL0 Read/Write system register for this thread. + * @returns The value of the TPIDR_EL0 register. + */ + u64 GetTPIDR_EL0() const { + return tpidr_el0; + } + /* * Returns the address of the current thread's command buffer, located in the TLS. * @returns VAddr of the thread's command buffer. @@ -213,6 +221,7 @@ public: s32 processor_id; VAddr tls_address; ///< Virtual address of the Thread Local Storage of the thread + u64 tpidr_el0; ///< TPIDR_EL0 read/write system register. SharedPtr owner_process; ///< Process that owns this thread -- cgit v1.2.3