mirror of
				https://git.zaroz.cloud/nintendo-back-up/yuzu/yuzu.git
				synced 2025-05-12 00:45:25 +00:00 
			
		
		
		
	
						commit
						8968c1dfec
					
				| @ -52,7 +52,6 @@ set(HEADERS | |||||||
|             synchronized_wrapper.h |             synchronized_wrapper.h | ||||||
|             thread.h |             thread.h | ||||||
|             thread_queue_list.h |             thread_queue_list.h | ||||||
|             thunk.h |  | ||||||
|             timer.h |             timer.h | ||||||
|             vector_math.h |             vector_math.h | ||||||
|             ) |             ) | ||||||
|  | |||||||
| @ -1,42 +0,0 @@ | |||||||
| // Copyright 2013 Dolphin Emulator Project / 2014 Citra Emulator Project
 |  | ||||||
| // Licensed under GPLv2 or any later version
 |  | ||||||
| // Refer to the license.txt file included.
 |  | ||||||
| 
 |  | ||||||
| #pragma once |  | ||||||
| 
 |  | ||||||
| #include <map> |  | ||||||
| 
 |  | ||||||
| #include "common/common_types.h" |  | ||||||
| 
 |  | ||||||
| // This simple class creates a wrapper around a C/C++ function that saves all fp state
 |  | ||||||
| // before entering it, and restores it upon exit. This is required to be able to selectively
 |  | ||||||
| // call functions from generated code, without inflicting the performance hit and increase
 |  | ||||||
| // of complexity that it means to protect the generated code from this problem.
 |  | ||||||
| 
 |  | ||||||
| // This process is called thunking.
 |  | ||||||
| 
 |  | ||||||
| // There will only ever be one level of thunking on the stack, plus,
 |  | ||||||
| // we don't want to pollute the stack, so we store away regs somewhere global.
 |  | ||||||
| // NOT THREAD SAFE. This may only be used from the CPU thread.
 |  | ||||||
| // Any other thread using this stuff will be FATAL.
 |  | ||||||
| 
 |  | ||||||
| class ThunkManager : public Gen::XCodeBlock |  | ||||||
| { |  | ||||||
|     std::map<void *, const u8 *> thunks; |  | ||||||
| 
 |  | ||||||
|     const u8 *save_regs; |  | ||||||
|     const u8 *load_regs; |  | ||||||
| 
 |  | ||||||
| public: |  | ||||||
|     ThunkManager() { |  | ||||||
|         Init(); |  | ||||||
|     } |  | ||||||
|     ~ThunkManager() { |  | ||||||
|         Shutdown(); |  | ||||||
|     } |  | ||||||
|     void *ProtectFunction(void *function, int num_params); |  | ||||||
| private: |  | ||||||
|     void Init(); |  | ||||||
|     void Shutdown(); |  | ||||||
|     void Reset(); |  | ||||||
| }; |  | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Yuri Kunde Schlesner
						Yuri Kunde Schlesner