mirror of
https://git.suyu.dev/suyu/dynarmic.git
synced 2026-03-12 03:12:57 +00:00
A64: Implement system register CTR_EL0
This commit is contained in:
@@ -53,6 +53,10 @@ void IREmitter::DataMemoryBarrier() {
|
||||
Inst(Opcode::A64DataMemoryBarrier);
|
||||
}
|
||||
|
||||
IR::U32 IREmitter::GetCTR() {
|
||||
return Inst<IR::U32>(Opcode::A64GetCTR);
|
||||
}
|
||||
|
||||
IR::U32 IREmitter::GetDCZID() {
|
||||
return Inst<IR::U32>(Opcode::A64GetDCZID);
|
||||
}
|
||||
|
||||
@@ -44,6 +44,7 @@ public:
|
||||
void DataCacheOperationRaised(DataCacheOperation op, const IR::U64& value);
|
||||
void DataSynchronizationBarrier();
|
||||
void DataMemoryBarrier();
|
||||
IR::U32 GetCTR();
|
||||
IR::U32 GetDCZID();
|
||||
IR::U64 GetTPIDRRO();
|
||||
|
||||
|
||||
@@ -60,6 +60,9 @@ bool TranslatorVisitor::MRS(Imm<1> o0, Imm<3> op1, Imm<4> CRn, Imm<4> CRm, Imm<3
|
||||
case 0b11'011'0000'0000'111: // DCZID_EL0
|
||||
X(32, Rt, ir.GetDCZID());
|
||||
return true;
|
||||
case 0b11'011'0000'0000'001: // CTR_EL0
|
||||
X(32, Rt, ir.GetCTR());
|
||||
return true;
|
||||
}
|
||||
return InterpretThisInstruction();
|
||||
}
|
||||
|
||||
@@ -61,6 +61,7 @@ A64OPC(ExceptionRaised, T::Void, T::U64, T::U64
|
||||
A64OPC(DataCacheOperationRaised, T::Void, T::U64, T::U64 )
|
||||
A64OPC(DataSynchronizationBarrier, T::Void, )
|
||||
A64OPC(DataMemoryBarrier, T::Void, )
|
||||
A64OPC(GetCTR, T::U32, )
|
||||
A64OPC(GetDCZID, T::U32, )
|
||||
A64OPC(GetTPIDRRO, T::U64, )
|
||||
|
||||
|
||||
Reference in New Issue
Block a user