mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-30 21:30:04 +00:00 
			
		
		
		
	Merge pull request #1800 from JayFoxRox/set-fpscr
Set fpscr for new threads
This commit is contained in:
		
						commit
						a39144050b
					
				
					 3 changed files with 6 additions and 0 deletions
				
			
		|  | @ -6,6 +6,7 @@ | ||||||
| 
 | 
 | ||||||
| #include "common/common_types.h" | #include "common/common_types.h" | ||||||
| #include "core/arm/skyeye_common/arm_regformat.h" | #include "core/arm/skyeye_common/arm_regformat.h" | ||||||
|  | #include "core/arm/skyeye_common/vfp/asm_vfp.h" | ||||||
| 
 | 
 | ||||||
| namespace Core { | namespace Core { | ||||||
|     struct ThreadContext; |     struct ThreadContext; | ||||||
|  |  | ||||||
|  | @ -526,6 +526,8 @@ SharedPtr<Thread> SetupMainThread(u32 entry_point, s32 priority) { | ||||||
| 
 | 
 | ||||||
|     SharedPtr<Thread> thread = thread_res.MoveFrom(); |     SharedPtr<Thread> thread = thread_res.MoveFrom(); | ||||||
| 
 | 
 | ||||||
|  |     thread->context.fpscr = FPSCR_DEFAULT_NAN | FPSCR_FLUSH_TO_ZERO | FPSCR_ROUND_TOZERO | FPSCR_IXC; // 0x03C00010
 | ||||||
|  | 
 | ||||||
|     // Run new "main" thread
 |     // Run new "main" thread
 | ||||||
|     SwitchContext(thread.get()); |     SwitchContext(thread.get()); | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -502,6 +502,9 @@ static ResultCode CreateThread(Handle* out_handle, s32 priority, u32 entry_point | ||||||
| 
 | 
 | ||||||
|     CASCADE_RESULT(SharedPtr<Thread> thread, Kernel::Thread::Create( |     CASCADE_RESULT(SharedPtr<Thread> thread, Kernel::Thread::Create( | ||||||
|             name, entry_point, priority, arg, processor_id, stack_top)); |             name, entry_point, priority, arg, processor_id, stack_top)); | ||||||
|  | 
 | ||||||
|  |     thread->context.fpscr = FPSCR_DEFAULT_NAN | FPSCR_FLUSH_TO_ZERO | FPSCR_ROUND_TOZERO; // 0x03C00000
 | ||||||
|  | 
 | ||||||
|     CASCADE_RESULT(*out_handle, Kernel::g_handle_table.Create(std::move(thread))); |     CASCADE_RESULT(*out_handle, Kernel::g_handle_table.Create(std::move(thread))); | ||||||
| 
 | 
 | ||||||
|     LOG_TRACE(Kernel_SVC, "called entrypoint=0x%08X (%s), arg=0x%08X, stacktop=0x%08X, " |     LOG_TRACE(Kernel_SVC, "called entrypoint=0x%08X (%s), arg=0x%08X, stacktop=0x%08X, " | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue