mirror of
				https://git.zaroz.cloud/nintendo-back-up/yuzu/yuzu-mainline.git
				synced 2025-03-21 01:53:15 +00:00 
			
		
		
		
	arm_interface: Implement interface for retrieving VFP registers
This commit is contained in:
		
							parent
							
								
									5855cf087d
								
							
						
					
					
						commit
						3b457a5876
					
				@ -61,6 +61,34 @@ public:
 | 
				
			|||||||
     */
 | 
					     */
 | 
				
			||||||
    virtual void SetReg(int index, u32 value) = 0;
 | 
					    virtual void SetReg(int index, u32 value) = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * Gets the value of a VFP register
 | 
				
			||||||
 | 
					     * @param index Register index (0-31)
 | 
				
			||||||
 | 
					     * @return Returns the value in the register
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    virtual u32 GetVFPReg(int index) const = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * Sets a VFP register to the given value
 | 
				
			||||||
 | 
					     * @param index Register index (0-31)
 | 
				
			||||||
 | 
					     * @param value Value to set register to
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    virtual void SetVFPReg(int index, u32 value) = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * Gets the current value within a given VFP system register
 | 
				
			||||||
 | 
					     * @param reg The VFP system register
 | 
				
			||||||
 | 
					     * @return The value within the VFP system register
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    virtual u32 GetVFPSystemReg(VFPSystemRegister reg) const = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * Sets the VFP system register to the given value
 | 
				
			||||||
 | 
					     * @param reg   The VFP system register
 | 
				
			||||||
 | 
					     * @param value Value to set the VFP system register to
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    virtual void SetVFPSystemReg(VFPSystemRegister reg, u32 value) = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * Get the current CPSR register
 | 
					     * Get the current CPSR register
 | 
				
			||||||
     * @return Returns the value of the CPSR register
 | 
					     * @return Returns the value of the CPSR register
 | 
				
			||||||
 | 
				
			|||||||
@ -40,6 +40,22 @@ void ARM_DynCom::SetReg(int index, u32 value) {
 | 
				
			|||||||
    state->Reg[index] = value;
 | 
					    state->Reg[index] = value;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					u32 ARM_DynCom::GetVFPReg(int index) const {
 | 
				
			||||||
 | 
					    return state->ExtReg[index];
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void ARM_DynCom::SetVFPReg(int index, u32 value) {
 | 
				
			||||||
 | 
					    state->ExtReg[index] = value;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					u32 ARM_DynCom::GetVFPSystemReg(VFPSystemRegister reg) const {
 | 
				
			||||||
 | 
					    return state->VFP[reg];
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void ARM_DynCom::SetVFPSystemReg(VFPSystemRegister reg, u32 value) {
 | 
				
			||||||
 | 
					    state->VFP[reg] = value;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
u32 ARM_DynCom::GetCPSR() const {
 | 
					u32 ARM_DynCom::GetCPSR() const {
 | 
				
			||||||
    return state->Cpsr;
 | 
					    return state->Cpsr;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -25,6 +25,10 @@ public:
 | 
				
			|||||||
    u32 GetPC() const override;
 | 
					    u32 GetPC() const override;
 | 
				
			||||||
    u32 GetReg(int index) const override;
 | 
					    u32 GetReg(int index) const override;
 | 
				
			||||||
    void SetReg(int index, u32 value) override;
 | 
					    void SetReg(int index, u32 value) override;
 | 
				
			||||||
 | 
					    u32 GetVFPReg(int index) const override;
 | 
				
			||||||
 | 
					    void SetVFPReg(int index, u32 value) override;
 | 
				
			||||||
 | 
					    u32 GetVFPSystemReg(VFPSystemRegister reg) const override;
 | 
				
			||||||
 | 
					    void SetVFPSystemReg(VFPSystemRegister reg, u32 value) override;
 | 
				
			||||||
    u32 GetCPSR() const override;
 | 
					    u32 GetCPSR() const override;
 | 
				
			||||||
    void SetCPSR(u32 cpsr) override;
 | 
					    void SetCPSR(u32 cpsr) override;
 | 
				
			||||||
    u32 GetCP15Register(CP15Register reg) override;
 | 
					    u32 GetCP15Register(CP15Register reg) override;
 | 
				
			||||||
 | 
				
			|||||||
@ -55,7 +55,7 @@ enum {
 | 
				
			|||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// VFP system registers
 | 
					// VFP system registers
 | 
				
			||||||
enum {
 | 
					enum VFPSystemRegister {
 | 
				
			||||||
    VFP_FPSID,
 | 
					    VFP_FPSID,
 | 
				
			||||||
    VFP_FPSCR,
 | 
					    VFP_FPSCR,
 | 
				
			||||||
    VFP_FPEXC,
 | 
					    VFP_FPEXC,
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user