ir: Add A64-specific opcodes for getting and setting raw NZCV values

This will be necessary to implement the flag manipulation and flag
format instructions.
This commit is contained in:
Lioncash
2019-03-06 13:54:09 -05:00
committed by MerryMage
parent 4f937c1ee1
commit 597a8be5d5
5 changed files with 29 additions and 0 deletions

View File

@@ -29,6 +29,14 @@ IR::U1 IREmitter::GetCFlag() {
return Inst<IR::U1>(Opcode::A64GetCFlag);
}
IR::U32 IREmitter::GetNZCVRaw() {
return Inst<IR::U32>(Opcode::A64GetNZCVRaw);
}
void IREmitter::SetNZCVRaw(IR::U32 value) {
Inst(Opcode::A64SetNZCVRaw, value);
}
void IREmitter::SetNZCV(const IR::NZCV& nzcv) {
Inst(Opcode::A64SetNZCV, nzcv);
}

View File

@@ -36,6 +36,8 @@ public:
void SetCheckBit(const IR::U1& value);
IR::U1 GetCFlag();
IR::U32 GetNZCVRaw();
void SetNZCVRaw(IR::U32 value);
void SetNZCV(const IR::NZCV& nzcv);
void OrQC(const IR::U1& value);