mirror of
				https://git.zaroz.cloud/nintendo-back-up/yuzu/yuzu.git
				synced 2025-05-12 00:45:25 +00:00 
			
		
		
		
	vfp: Handle accesses to the VFP media feature registers
These are able to be accessed in any privilege mode.
This commit is contained in:
		
							parent
							
								
									2a435aa0cc
								
							
						
					
					
						commit
						71858fc7cc
					
				@ -59,6 +59,8 @@ enum {
 | 
				
			|||||||
    VFP_FPSID,
 | 
					    VFP_FPSID,
 | 
				
			||||||
    VFP_FPSCR,
 | 
					    VFP_FPSCR,
 | 
				
			||||||
    VFP_FPEXC,
 | 
					    VFP_FPEXC,
 | 
				
			||||||
 | 
					    VFP_MVFR0,
 | 
				
			||||||
 | 
					    VFP_MVFR1,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Not an actual register.
 | 
					    // Not an actual register.
 | 
				
			||||||
    // All VFP system registers should be defined above this.
 | 
					    // All VFP system registers should be defined above this.
 | 
				
			||||||
 | 
				
			|||||||
@ -33,6 +33,10 @@ unsigned VFPInit(ARMul_State* state)
 | 
				
			|||||||
    state->VFP[VFP_FPEXC] = 0;
 | 
					    state->VFP[VFP_FPEXC] = 0;
 | 
				
			||||||
    state->VFP[VFP_FPSCR] = 0;
 | 
					    state->VFP[VFP_FPSCR] = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // ARM11 MPCore feature register values.
 | 
				
			||||||
 | 
					    state->VFP[VFP_MVFR0] = 0x11111111;
 | 
				
			||||||
 | 
					    state->VFP[VFP_MVFR1] = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return 0;
 | 
					    return 0;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -1141,12 +1141,10 @@ VMRS_INST:
 | 
				
			|||||||
                cpu->Reg[inst_cream->Rt] = cpu->VFP[VFP_FPSID];
 | 
					                cpu->Reg[inst_cream->Rt] = cpu->VFP[VFP_FPSID];
 | 
				
			||||||
                break;
 | 
					                break;
 | 
				
			||||||
            case 6:
 | 
					            case 6:
 | 
				
			||||||
                /* MVFR1, VFPv3 only ? */
 | 
					                cpu->Reg[inst_cream->Rt] = cpu->VFP[VFP_MVFR1];
 | 
				
			||||||
                LOG_TRACE(Core_ARM11, "\tr%d <= MVFR1 unimplemented\n", inst_cream->Rt);
 | 
					 | 
				
			||||||
                break;
 | 
					                break;
 | 
				
			||||||
            case 7:
 | 
					            case 7:
 | 
				
			||||||
                /* MVFR0, VFPv3 only? */
 | 
					                cpu->Reg[inst_cream->Rt] = cpu->VFP[VFP_MVFR0];
 | 
				
			||||||
                LOG_TRACE(Core_ARM11, "\tr%d <= MVFR0 unimplemented\n", inst_cream->Rt);
 | 
					 | 
				
			||||||
                break;
 | 
					                break;
 | 
				
			||||||
            case 8:
 | 
					            case 8:
 | 
				
			||||||
                cpu->Reg[inst_cream->Rt] = cpu->VFP[VFP_FPEXC];
 | 
					                cpu->Reg[inst_cream->Rt] = cpu->VFP[VFP_FPEXC];
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user