aboutsummaryrefslogtreecommitdiff
path: root/src/core/hle/kernel/thread.h
diff options
context:
space:
mode:
authorSubv <subv2112@gmail.com>2018-07-20 19:57:45 -0500
committerSubv <subv2112@gmail.com>2018-07-20 19:57:45 -0500
commitd84eb9dac64f314adcef2c374de245012f658b1d (patch)
tree56720a5bce5d1a285dda01c16bfcb1dd57e53054 /src/core/hle/kernel/thread.h
parentf36affdbe3727e21b6b0bdc3bef562ada6abe2c8 (diff)
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.
Diffstat (limited to 'src/core/hle/kernel/thread.h')
-rw-r--r--src/core/hle/kernel/thread.h9
1 files changed, 9 insertions, 0 deletions
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
@@ -183,6 +183,14 @@ public:
}
/*
+ * 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<Process> owner_process; ///< Process that owns this thread