forked from eden-emu/eden
		
	macro_jit_x64: Remove RESULT_64
This Reg64 codepath has the exact same behaviour as the Reg32 one.
This commit is contained in:
		
							parent
							
								
									1a0de59d23
								
							
						
					
					
						commit
						7ef7a520ca
					
				
					 2 changed files with 3 additions and 16 deletions
				
			
		|  | @ -19,7 +19,6 @@ static const Xbyak::Reg64 REGISTERS = Xbyak::util::r10; | ||||||
| static const Xbyak::Reg64 STATE = Xbyak::util::r11; | static const Xbyak::Reg64 STATE = Xbyak::util::r11; | ||||||
| static const Xbyak::Reg64 NEXT_PARAMETER = Xbyak::util::r12; | static const Xbyak::Reg64 NEXT_PARAMETER = Xbyak::util::r12; | ||||||
| static const Xbyak::Reg32 RESULT = Xbyak::util::r13d; | static const Xbyak::Reg32 RESULT = Xbyak::util::r13d; | ||||||
| static const Xbyak::Reg64 RESULT_64 = Xbyak::util::r13; |  | ||||||
| static const Xbyak::Reg32 METHOD_ADDRESS = Xbyak::util::r14d; | static const Xbyak::Reg32 METHOD_ADDRESS = Xbyak::util::r14d; | ||||||
| static const Xbyak::Reg64 METHOD_ADDRESS_64 = Xbyak::util::r14; | static const Xbyak::Reg64 METHOD_ADDRESS_64 = Xbyak::util::r14; | ||||||
| static const Xbyak::Reg64 BRANCH_HOLDER = Xbyak::util::r15; | static const Xbyak::Reg64 BRANCH_HOLDER = Xbyak::util::r15; | ||||||
|  | @ -64,15 +63,15 @@ void MacroJITx64Impl::Compile_ALU(Macro::Opcode opcode) { | ||||||
|     const bool is_move_operation = !is_a_zero && is_b_zero; |     const bool is_move_operation = !is_a_zero && is_b_zero; | ||||||
|     const bool has_zero_register = is_a_zero || is_b_zero; |     const bool has_zero_register = is_a_zero || is_b_zero; | ||||||
| 
 | 
 | ||||||
|     Xbyak::Reg64 src_a; |     Xbyak::Reg32 src_a; | ||||||
|     Xbyak::Reg32 src_b; |     Xbyak::Reg32 src_b; | ||||||
| 
 | 
 | ||||||
|     if (!optimizer.zero_reg_skip) { |     if (!optimizer.zero_reg_skip) { | ||||||
|         src_a = Compile_GetRegister(opcode.src_a, RESULT_64); |         src_a = Compile_GetRegister(opcode.src_a, RESULT); | ||||||
|         src_b = Compile_GetRegister(opcode.src_b, ebx); |         src_b = Compile_GetRegister(opcode.src_b, ebx); | ||||||
|     } else { |     } else { | ||||||
|         if (!is_a_zero) { |         if (!is_a_zero) { | ||||||
|             src_a = Compile_GetRegister(opcode.src_a, RESULT_64); |             src_a = Compile_GetRegister(opcode.src_a, RESULT); | ||||||
|         } |         } | ||||||
|         if (!is_b_zero) { |         if (!is_b_zero) { | ||||||
|             src_b = Compile_GetRegister(opcode.src_b, ebx); |             src_b = Compile_GetRegister(opcode.src_b, ebx); | ||||||
|  | @ -553,17 +552,6 @@ Xbyak::Reg32 MacroJITx64Impl::Compile_GetRegister(u32 index, Xbyak::Reg32 dst) { | ||||||
|     return dst; |     return dst; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| Xbyak::Reg64 Tegra::MacroJITx64Impl::Compile_GetRegister(u32 index, Xbyak::Reg64 dst) { |  | ||||||
|     if (index == 0) { |  | ||||||
|         // Register 0 is always zero
 |  | ||||||
|         xor_(dst, dst); |  | ||||||
|     } else { |  | ||||||
|         mov(dst, dword[REGISTERS + index * sizeof(u32)]); |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     return dst; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| void Tegra::MacroJITx64Impl::Compile_WriteCarry(Xbyak::Reg64 dst) { | void Tegra::MacroJITx64Impl::Compile_WriteCarry(Xbyak::Reg64 dst) { | ||||||
|     Xbyak::Label zero{}, end{}; |     Xbyak::Label zero{}, end{}; | ||||||
|     xor_(ecx, ecx); |     xor_(ecx, ecx); | ||||||
|  |  | ||||||
|  | @ -55,7 +55,6 @@ private: | ||||||
| 
 | 
 | ||||||
|     Xbyak::Reg32 Compile_FetchParameter(); |     Xbyak::Reg32 Compile_FetchParameter(); | ||||||
|     Xbyak::Reg32 Compile_GetRegister(u32 index, Xbyak::Reg32 dst); |     Xbyak::Reg32 Compile_GetRegister(u32 index, Xbyak::Reg32 dst); | ||||||
|     Xbyak::Reg64 Compile_GetRegister(u32 index, Xbyak::Reg64 dst); |  | ||||||
|     void Compile_WriteCarry(Xbyak::Reg64 dst); |     void Compile_WriteCarry(Xbyak::Reg64 dst); | ||||||
| 
 | 
 | ||||||
|     void Compile_ProcessResult(Macro::ResultOperation operation, u32 reg); |     void Compile_ProcessResult(Macro::ResultOperation operation, u32 reg); | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 MerryMage
						MerryMage