mirror of
https://git.suyu.dev/suyu/dynarmic.git
synced 2026-03-07 17:36:27 +00:00
IR: Add IR instruction NZCVFromPackedFlags
This instruction expects NZCV to be in the high bits. i.e.: The positions they were in PSTATE.
This commit is contained in:
@@ -107,6 +107,10 @@ U32U64 IREmitter::ConditionalSelect(Cond cond, const U32U64& a, const U32U64& b)
|
||||
}
|
||||
}
|
||||
|
||||
NZCV IREmitter::NZCVFromPackedFlags(const U32& a) {
|
||||
return Inst<NZCV>(Opcode::NZCVFromPackedFlags, a);
|
||||
}
|
||||
|
||||
NZCV IREmitter::NZCVFrom(const Value& value) {
|
||||
return Inst<NZCV>(Opcode::GetNZCVFromOp, value);
|
||||
}
|
||||
|
||||
@@ -81,6 +81,7 @@ public:
|
||||
U64 ConditionalSelect(Cond cond, const U64& a, const U64& b);
|
||||
U32U64 ConditionalSelect(Cond cond, const U32U64& a, const U32U64& b);
|
||||
|
||||
NZCV NZCVFromPackedFlags(const U32& a);
|
||||
// This pseudo-instruction may only be added to instructions that support it.
|
||||
NZCV NZCVFrom(const Value& value);
|
||||
|
||||
|
||||
@@ -68,6 +68,8 @@ OPCODE(GetOverflowFromOp, T::U1, T::U32
|
||||
OPCODE(GetGEFromOp, T::U32, T::U32 )
|
||||
OPCODE(GetNZCVFromOp, T::NZCVFlags, T::Opaque )
|
||||
|
||||
OPCODE(NZCVFromPackedFlags, T::NZCVFlags, T::U32 )
|
||||
|
||||
// Calculations
|
||||
OPCODE(Pack2x32To1x64, T::U64, T::U32, T::U32 )
|
||||
OPCODE(LeastSignificantWord, T::U32, T::U64 )
|
||||
|
||||
Reference in New Issue
Block a user