A64: Partially implement MRS

This commit is contained in:
MerryMage 2018-02-12 00:06:44 +00:00
parent bfd65bedfe
commit 8756487554
8 changed files with 48 additions and 2 deletions

View file

@ -46,4 +46,17 @@ bool TranslatorVisitor::DMB(Imm<4> /*CRm*/) {
return true;
}
bool TranslatorVisitor::MRS(Imm<1> o0, Imm<3> op1, Imm<4> CRn, Imm<4> CRm, Imm<3> op2, Reg Rt) {
const size_t sys_reg = concatenate(Imm<1>{1}, o0, op1, CRn, CRm, op2).ZeroExtend<size_t>();
switch (sys_reg) {
case 0b11'011'1101'0000'011: // TPIDRRO_EL0
X(64, Rt, ir.GetTPIDRRO());
return true;
case 0b11'011'0000'0000'111: // DCZID_EL0
X(32, Rt, ir.GetDCZID());
return true;
}
return InterpretThisInstruction();
}
} // namespace Dynarmic::A64