vfp: Implement VMOVBCR/VMOVBRC
This commit is contained in:
		
							parent
							
								
									ca5d1545c3
								
							
						
					
					
						commit
						e817224f89
					
				@ -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…
	
		Reference in New Issue
	
	Block a user