mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-07-10 00:41:26 +12:00
- Implemented some ARMv7 instructions.
This commit is contained in:
parent
f18fff08c7
commit
099333c992
8 changed files with 382 additions and 28 deletions
|
@ -10,15 +10,26 @@ ARMv7Thread::ARMv7Thread() : CPUThread(CPU_THREAD_ARMv7)
|
|||
|
||||
void ARMv7Thread::InitRegs()
|
||||
{
|
||||
memset(GPR, 0, sizeof(GPR[0]) * 15);
|
||||
APSR.APSR = 0;
|
||||
IPSR.IPSR = 0;
|
||||
SP = m_stack_point;
|
||||
}
|
||||
|
||||
void ARMv7Thread::InitStack()
|
||||
{
|
||||
if(!m_stack_addr)
|
||||
{
|
||||
m_stack_size = 0x10000;
|
||||
m_stack_addr = Memory.Alloc(0x10000, 1);
|
||||
}
|
||||
|
||||
m_stack_point = m_stack_addr;
|
||||
}
|
||||
|
||||
u64 ARMv7Thread::GetFreeStackSize() const
|
||||
{
|
||||
return GetStackSize() - (m_stack_point - GetStackAddr());
|
||||
return GetStackSize() - (SP - GetStackAddr());
|
||||
}
|
||||
|
||||
void ARMv7Thread::SetArg(const uint pos, const u64 arg)
|
||||
|
@ -28,7 +39,15 @@ void ARMv7Thread::SetArg(const uint pos, const u64 arg)
|
|||
|
||||
wxString ARMv7Thread::RegsToString()
|
||||
{
|
||||
return wxEmptyString;
|
||||
wxString result;
|
||||
for(int i=0; i<15; ++i)
|
||||
{
|
||||
result += wxString::Format("%s\t= 0x%08x\n", g_arm_reg_name[i], GPR[i]);
|
||||
}
|
||||
|
||||
result += wxString::Format("APSR\t= 0x%08x [N: %d, Z: %d, C: %d, V: %d, Q: %d]\n", APSR.APSR, APSR.N, APSR.Z, APSR.C, APSR.V, APSR.Q);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
wxString ARMv7Thread::ReadRegString(wxString reg)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue