moar shit

This commit is contained in:
StapleButter
2016-12-03 04:05:23 +01:00
parent ae6e9d96da
commit 6213245f3a
6 changed files with 295 additions and 71 deletions

View File

@ -1,3 +1,4 @@
#include <stdio.h>
#include "ARM.h"
@ -32,6 +33,22 @@ s32 A_BLX_IMM(ARM* cpu)
return C_S(2) + C_N(1);
}
s32 A_BX(ARM* cpu)
{
cpu->JumpTo(cpu->R[cpu->CurInstr & 0xF]);
return C_S(2) + C_N(1);
}
s32 A_BLX_REG(ARM* cpu)
{
u32 lr = cpu->R[15] - 4;
cpu->JumpTo(cpu->R[cpu->CurInstr & 0xF]);
cpu->R[14] = lr;
return C_S(2) + C_N(1);
}
s32 T_BCOND(ARM* cpu)
@ -46,6 +63,28 @@ s32 T_BCOND(ARM* cpu)
return C_S(1);
}
s32 T_BX(ARM* cpu)
{
cpu->JumpTo(cpu->R[(cpu->CurInstr >> 3) & 0xF]);
return C_S(2) + C_N(1);
}
s32 T_BLX_REG(ARM* cpu)
{
if (cpu->Num==1)
{
printf("!! THUMB BLX_REG ON ARM7\n");
return 1;
}
u32 lr = cpu->R[15] - 1;
cpu->JumpTo(cpu->R[(cpu->CurInstr >> 3) & 0xF]);
cpu->R[14] = lr;
return C_S(2) + C_N(1);
}
}