diff options
| author | Subv <subv2112@gmail.com> | 2015-05-10 18:35:37 -0500 |
|---|---|---|
| committer | Subv <subv2112@gmail.com> | 2015-05-10 18:35:37 -0500 |
| commit | 000876858d52d7e4fa8e21bc4407d43d548eff30 (patch) | |
| tree | f0af4cde78349cfe4ea7875b24d37cf85eb3eb03 /src/core/arm/arm_interface.h | |
| parent | ba0bfe7d82a241f1dbe449a1bdcc2a76c594c667 (diff) | |
Core/Memory: Give every emulated thread it's own TLS area.
The TLS area for thread T with id Ti is located at TLS_AREA_VADDR + (Ti - 1) * 0x200.
This allows some games like Mario Kart 7 to continue further.
Diffstat (limited to 'src/core/arm/arm_interface.h')
| -rw-r--r-- | src/core/arm/arm_interface.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/core/arm/arm_interface.h b/src/core/arm/arm_interface.h index 85ed2c698..976c339e8 100644 --- a/src/core/arm/arm_interface.h +++ b/src/core/arm/arm_interface.h @@ -99,8 +99,9 @@ public: * @param stack_top Pointer to the top of the stack * @param entry_point Entry point for execution * @param arg User argument for thread + * @param tls_address Address of the Thread Local Storage for the thread */ - virtual void ResetContext(Core::ThreadContext& context, u32 stack_top, u32 entry_point, u32 arg) = 0; + virtual void ResetContext(Core::ThreadContext& context, u32 stack_top, u32 entry_point, u32 arg, u32 tls_address) = 0; /** * Saves the current CPU context |
