mirror of
https://git.suyu.dev/suyu/dynarmic.git
synced 2026-03-06 10:32:58 +00:00
jit_state: Split off CPSR.NZCV
This commit is contained in:
@@ -117,6 +117,14 @@ void IREmitter::SetCpsr(const Value& value) {
|
||||
Inst(Opcode::SetCpsr, {value});
|
||||
}
|
||||
|
||||
void IREmitter::SetCpsrNZCV(const Value& value) {
|
||||
Inst(Opcode::SetCpsrNZCV, {value});
|
||||
}
|
||||
|
||||
void IREmitter::SetCpsrNZCVQ(const Value& value) {
|
||||
Inst(Opcode::SetCpsrNZCVQ, {value});
|
||||
}
|
||||
|
||||
Value IREmitter::GetCFlag() {
|
||||
return Inst(Opcode::GetCFlag, {});
|
||||
}
|
||||
@@ -149,6 +157,10 @@ void IREmitter::SetGEFlags(const Value& value) {
|
||||
Inst(Opcode::SetGEFlags, {value});
|
||||
}
|
||||
|
||||
void IREmitter::SetGEFlagsCompressed(const Value& value) {
|
||||
Inst(Opcode::SetGEFlagsCompressed, {value});
|
||||
}
|
||||
|
||||
Value IREmitter::GetFpscr() {
|
||||
return Inst(Opcode::GetFpscr, {});
|
||||
}
|
||||
|
||||
@@ -84,6 +84,8 @@ public:
|
||||
|
||||
Value GetCpsr();
|
||||
void SetCpsr(const Value& value);
|
||||
void SetCpsrNZCV(const Value& value);
|
||||
void SetCpsrNZCVQ(const Value& value);
|
||||
Value GetCFlag();
|
||||
void SetNFlag(const Value& value);
|
||||
void SetZFlag(const Value& value);
|
||||
@@ -92,6 +94,7 @@ public:
|
||||
void OrQFlag(const Value& value);
|
||||
Value GetGEFlags();
|
||||
void SetGEFlags(const Value& value);
|
||||
void SetGEFlagsCompressed(const Value& value);
|
||||
|
||||
Value GetFpscr();
|
||||
void SetFpscr(const Value& new_fpscr);
|
||||
|
||||
@@ -112,12 +112,15 @@ bool Inst::ReadsFromCPSR() const {
|
||||
bool Inst::WritesToCPSR() const {
|
||||
switch (op) {
|
||||
case Opcode::SetCpsr:
|
||||
case Opcode::SetCpsrNZCV:
|
||||
case Opcode::SetCpsrNZCVQ:
|
||||
case Opcode::SetNFlag:
|
||||
case Opcode::SetZFlag:
|
||||
case Opcode::SetCFlag:
|
||||
case Opcode::SetVFlag:
|
||||
case Opcode::OrQFlag:
|
||||
case Opcode::SetGEFlags:
|
||||
case Opcode::SetGEFlagsCompressed:
|
||||
return true;
|
||||
|
||||
default:
|
||||
|
||||
@@ -13,6 +13,8 @@ OPCODE(SetExtendedRegister32, T::Void, T::ExtRegRef, T::F32
|
||||
OPCODE(SetExtendedRegister64, T::Void, T::ExtRegRef, T::F64 )
|
||||
OPCODE(GetCpsr, T::U32, )
|
||||
OPCODE(SetCpsr, T::Void, T::U32 )
|
||||
OPCODE(SetCpsrNZCV, T::Void, T::U32 )
|
||||
OPCODE(SetCpsrNZCVQ, T::Void, T::U32 )
|
||||
OPCODE(GetNFlag, T::U1, )
|
||||
OPCODE(SetNFlag, T::Void, T::U1 )
|
||||
OPCODE(GetZFlag, T::U1, )
|
||||
@@ -24,6 +26,7 @@ OPCODE(SetVFlag, T::Void, T::U1
|
||||
OPCODE(OrQFlag, T::Void, T::U1 )
|
||||
OPCODE(GetGEFlags, T::U32, )
|
||||
OPCODE(SetGEFlags, T::Void, T::U32 )
|
||||
OPCODE(SetGEFlagsCompressed, T::Void, T::U32 )
|
||||
OPCODE(BXWritePC, T::Void, T::U32 )
|
||||
OPCODE(CallSupervisor, T::Void, T::U32 )
|
||||
OPCODE(GetFpscr, T::U32, )
|
||||
|
||||
Reference in New Issue
Block a user