mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-30 21:30:04 +00:00 
			
		
		
		
	vfp: Implement VMOVBCR/VMOVBRC
This commit is contained in:
		
							parent
							
								
									ca5d1545c3
								
							
						
					
					
						commit
						e817224f89
					
				
					 2 changed files with 8 additions and 5 deletions
				
			
		|  | @ -22,7 +22,6 @@ | ||||||
| 
 | 
 | ||||||
| #include "core/arm/skyeye_common/vfp/vfp_helper.h" /* for references to cdp SoftFloat functions */ | #include "core/arm/skyeye_common/vfp/vfp_helper.h" /* for references to cdp SoftFloat functions */ | ||||||
| 
 | 
 | ||||||
| #define VFP_DEBUG_UNIMPLEMENTED(x) LOG_ERROR(Core_ARM11, "in func %s, " #x " unimplemented\n", __FUNCTION__); exit(-1); |  | ||||||
| #define VFP_DEBUG_UNTESTED(x) LOG_TRACE(Core_ARM11, "in func %s, " #x " untested\n", __FUNCTION__); | #define VFP_DEBUG_UNTESTED(x) LOG_TRACE(Core_ARM11, "in func %s, " #x " untested\n", __FUNCTION__); | ||||||
| #define CHECK_VFP_ENABLED | #define CHECK_VFP_ENABLED | ||||||
| #define CHECK_VFP_CDP_RET vfp_raise_exceptions(cpu, ret, inst_cream->instr, cpu->VFP[VFP_FPSCR]); | #define CHECK_VFP_CDP_RET vfp_raise_exceptions(cpu, ret, inst_cream->instr, cpu->VFP[VFP_FPSCR]); | ||||||
|  |  | ||||||
|  | @ -1068,10 +1068,12 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(vmovbrc)(unsigned int inst, int index) | ||||||
| #ifdef VFP_INTERPRETER_IMPL | #ifdef VFP_INTERPRETER_IMPL | ||||||
| VMOVBRC_INST: | VMOVBRC_INST: | ||||||
| { | { | ||||||
|     if ((inst_base->cond == 0xe) || CondPassed(cpu, inst_base->cond)) { |     if (inst_base->cond == 0xE || CondPassed(cpu, inst_base->cond)) { | ||||||
|         CHECK_VFP_ENABLED; |         CHECK_VFP_ENABLED; | ||||||
| 
 | 
 | ||||||
|         VFP_DEBUG_UNIMPLEMENTED(VMOVBRC); |         vmovbrc_inst* const inst_cream = (vmovbrc_inst*)inst_base->component; | ||||||
|  | 
 | ||||||
|  |         cpu->ExtReg[(2 * inst_cream->d) + inst_cream->index] = cpu->Reg[inst_cream->t]; | ||||||
|     } |     } | ||||||
|     cpu->Reg[15] += GET_INST_SIZE(cpu); |     cpu->Reg[15] += GET_INST_SIZE(cpu); | ||||||
|     INC_PC(sizeof(vmovbrc_inst)); |     INC_PC(sizeof(vmovbrc_inst)); | ||||||
|  | @ -1195,10 +1197,12 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(vmovbcr)(unsigned int inst, int index) | ||||||
| #ifdef VFP_INTERPRETER_IMPL | #ifdef VFP_INTERPRETER_IMPL | ||||||
| VMOVBCR_INST: | VMOVBCR_INST: | ||||||
| { | { | ||||||
|     if ((inst_base->cond == 0xe) || CondPassed(cpu, inst_base->cond)) { |     if (inst_base->cond == 0xE || CondPassed(cpu, inst_base->cond)) { | ||||||
|         CHECK_VFP_ENABLED; |         CHECK_VFP_ENABLED; | ||||||
| 
 | 
 | ||||||
|         VFP_DEBUG_UNIMPLEMENTED(VMOVBCR); |         vmovbcr_inst* const inst_cream = (vmovbcr_inst*) inst_base->component; | ||||||
|  | 
 | ||||||
|  |         cpu->Reg[inst_cream->t] = cpu->ExtReg[(2 * inst_cream->d) + inst_cream->index]; | ||||||
|     } |     } | ||||||
|     cpu->Reg[15] += GET_INST_SIZE(cpu); |     cpu->Reg[15] += GET_INST_SIZE(cpu); | ||||||
|     INC_PC(sizeof(vmovbcr_inst)); |     INC_PC(sizeof(vmovbcr_inst)); | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue