mirror of
https://github.com/Lime3DS/Lime3DS
synced 2024-12-27 01:22:37 -06:00
arm_interface: Implement interface for retrieving VFP registers
This commit is contained in:
parent
5855cf087d
commit
3b457a5876
4 changed files with 49 additions and 1 deletions
|
@ -61,6 +61,34 @@ public:
|
|||
*/
|
||||
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
|
||||
* @return Returns the value of the CPSR register
|
||||
|
|
|
@ -40,6 +40,22 @@ void ARM_DynCom::SetReg(int index, u32 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 {
|
||||
return state->Cpsr;
|
||||
}
|
||||
|
|
|
@ -25,6 +25,10 @@ public:
|
|||
u32 GetPC() const override;
|
||||
u32 GetReg(int index) const 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;
|
||||
void SetCPSR(u32 cpsr) override;
|
||||
u32 GetCP15Register(CP15Register reg) override;
|
||||
|
|
|
@ -55,7 +55,7 @@ enum {
|
|||
};
|
||||
|
||||
// VFP system registers
|
||||
enum {
|
||||
enum VFPSystemRegister {
|
||||
VFP_FPSID,
|
||||
VFP_FPSCR,
|
||||
VFP_FPEXC,
|
||||
|
|
Loading…
Reference in a new issue