core:
- fix some bugs in CPU emulation on ARM mode (need to test);
This commit is contained in:
parent
2c59c934a8
commit
7ae6f09c1e
|
@ -3742,6 +3742,8 @@ TEMPLATE static u32 FASTCALL OP_LDR_P_ROR_IMM_OFF(const u32 i)
|
||||||
return MMU_aluMemAccessCycles<PROCNUM,32,MMU_AD_READ>(5,adr);
|
return MMU_aluMemAccessCycles<PROCNUM,32,MMU_AD_READ>(5,adr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
cpu->R[REG_POS(i,16)] = adr;
|
||||||
|
INFO("OP_LDR_P_ROR_IMM_OFF\n");
|
||||||
cpu->R[REG_POS(i,12)] = val;
|
cpu->R[REG_POS(i,12)] = val;
|
||||||
|
|
||||||
return MMU_aluMemAccessCycles<PROCNUM,32,MMU_AD_READ>(3,adr);
|
return MMU_aluMemAccessCycles<PROCNUM,32,MMU_AD_READ>(3,adr);
|
||||||
|
@ -4422,6 +4424,8 @@ TEMPLATE static u32 FASTCALL OP_LDRB_P_ROR_IMM_OFF(const u32 i)
|
||||||
adr = cpu->R[REG_POS(i,16)] + shift_op;
|
adr = cpu->R[REG_POS(i,16)] + shift_op;
|
||||||
val = READ8(cpu->mem_if->data, adr);
|
val = READ8(cpu->mem_if->data, adr);
|
||||||
cpu->R[REG_POS(i,12)] = val;
|
cpu->R[REG_POS(i,12)] = val;
|
||||||
|
INFO("OP_LDRB_P_ROR_IMM_OFF\n");
|
||||||
|
cpu->R[REG_POS(i,16)] = adr;
|
||||||
|
|
||||||
return MMU_aluMemAccessCycles<PROCNUM,8,MMU_AD_READ>(3,adr);
|
return MMU_aluMemAccessCycles<PROCNUM,8,MMU_AD_READ>(3,adr);
|
||||||
}
|
}
|
||||||
|
@ -4805,6 +4809,8 @@ TEMPLATE static u32 FASTCALL OP_STR_P_ROR_IMM_OFF(const u32 i)
|
||||||
ROR_IMM;
|
ROR_IMM;
|
||||||
adr = cpu->R[REG_POS(i,16)] + shift_op;
|
adr = cpu->R[REG_POS(i,16)] + shift_op;
|
||||||
WRITE32(cpu->mem_if->data, adr, cpu->R[REG_POS(i,12)]);
|
WRITE32(cpu->mem_if->data, adr, cpu->R[REG_POS(i,12)]);
|
||||||
|
INFO("OP_STR_P_ROR_IMM_OFF\n");
|
||||||
|
cpu->R[REG_POS(i,16)] = adr;
|
||||||
|
|
||||||
return MMU_aluMemAccessCycles<PROCNUM,32,MMU_AD_WRITE>(2,adr);
|
return MMU_aluMemAccessCycles<PROCNUM,32,MMU_AD_WRITE>(2,adr);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue