mirror of
https://github.com/FEX-Emu/FEX.git
synced 2026-10-14 20:00:46 +02:00
OpcodeDispatcher: Use SetAF
For constants. Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
This commit is contained in:
1 parent
f46ba52e0e
commit
5edd9cb35b
3 files changed
+17
-22
No files matched your search
@@ -3435,7 +3435,7 @@ void OpDispatchBuilder::DAAOp(OpcodeArgs) {
|
||||
SetCurrentCodeBlock(FalseBlock);
|
||||
StartNewBlock();
|
||||
{
|
||||
SetRFLAG<FEXCore::X86State::RFLAG_AF_LOC>(_Constant(0));
|
||||
SetAF(0);
|
||||
_Jump(EndBlock);
|
||||
}
|
||||
SetCurrentCodeBlock(TrueBlock);
|
||||
@@ -3450,7 +3450,7 @@ void OpDispatchBuilder::DAAOp(OpcodeArgs) {
|
||||
// The `NewCF` will be _Constant(0) stored aboved.
|
||||
// So Or(CF, _Constant(0)) ill mean CF gets updated to the old value in the true case?
|
||||
SetRFLAG<FEXCore::X86State::RFLAG_CF_LOC>(_Or(OpSize::i64Bit, CF, NewCF));
|
||||
SetRFLAG<FEXCore::X86State::RFLAG_AF_LOC>(_Constant(1));
|
||||
SetAF(1);
|
||||
CalculateDeferredFlags();
|
||||
_Jump(EndBlock);
|
||||
}
|
||||
@@ -3509,7 +3509,7 @@ void OpDispatchBuilder::DASOp(OpcodeArgs) {
|
||||
SetCurrentCodeBlock(FalseBlock);
|
||||
StartNewBlock();
|
||||
{
|
||||
SetRFLAG<FEXCore::X86State::RFLAG_AF_LOC>(_Constant(0));
|
||||
SetAF(0);
|
||||
_Jump(EndBlock);
|
||||
}
|
||||
SetCurrentCodeBlock(TrueBlock);
|
||||
@@ -3524,7 +3524,7 @@ void OpDispatchBuilder::DASOp(OpcodeArgs) {
|
||||
// The `NewCF` will be _Constant(0) stored aboved.
|
||||
// So Or(CF, _Constant(0)) ill mean CF gets updated to the old value in the true case?
|
||||
SetRFLAG<FEXCore::X86State::RFLAG_CF_LOC>(_Or(OpSize::i64Bit, CF, NewCF));
|
||||
SetRFLAG<FEXCore::X86State::RFLAG_AF_LOC>(_Constant(1));
|
||||
SetAF(1);
|
||||
CalculateDeferredFlags();
|
||||
_Jump(EndBlock);
|
||||
}
|
||||
@@ -3581,7 +3581,7 @@ void OpDispatchBuilder::AAAOp(OpcodeArgs) {
|
||||
auto NewAX = _And(OpSize::i64Bit, AX, _Constant(0xFF0F));
|
||||
StoreGPRRegister(X86State::REG_RAX, NewAX, 2);
|
||||
SetRFLAG<FEXCore::X86State::RFLAG_CF_LOC>(_Constant(0));
|
||||
SetRFLAG<FEXCore::X86State::RFLAG_AF_LOC>(_Constant(0));
|
||||
SetAF(0);
|
||||
CalculateDeferredFlags();
|
||||
_Jump(EndBlock);
|
||||
}
|
||||
@@ -3593,7 +3593,7 @@ void OpDispatchBuilder::AAAOp(OpcodeArgs) {
|
||||
auto Result = _And(OpSize::i64Bit, NewAX, _Constant(0xFF0F));
|
||||
StoreGPRRegister(X86State::REG_RAX, Result, 2);
|
||||
SetRFLAG<FEXCore::X86State::RFLAG_CF_LOC>(_Constant(1));
|
||||
SetRFLAG<FEXCore::X86State::RFLAG_AF_LOC>(_Constant(1));
|
||||
SetAF(1);
|
||||
CalculateDeferredFlags();
|
||||
_Jump(EndBlock);
|
||||
}
|
||||
@@ -3620,7 +3620,7 @@ void OpDispatchBuilder::AASOp(OpcodeArgs) {
|
||||
auto NewAX = _And(OpSize::i64Bit, AX, _Constant(0xFF0F));
|
||||
StoreGPRRegister(X86State::REG_RAX, NewAX, 2);
|
||||
SetRFLAG<FEXCore::X86State::RFLAG_CF_LOC>(_Constant(0));
|
||||
SetRFLAG<FEXCore::X86State::RFLAG_AF_LOC>(_Constant(0));
|
||||
SetAF(0);
|
||||
CalculateDeferredFlags();
|
||||
_Jump(EndBlock);
|
||||
}
|
||||
@@ -3632,7 +3632,7 @@ void OpDispatchBuilder::AASOp(OpcodeArgs) {
|
||||
auto Result = _And(OpSize::i64Bit, NewAX, _Constant(0xFF0F));
|
||||
StoreGPRRegister(X86State::REG_RAX, Result, 2);
|
||||
SetRFLAG<FEXCore::X86State::RFLAG_CF_LOC>(_Constant(1));
|
||||
SetRFLAG<FEXCore::X86State::RFLAG_AF_LOC>(_Constant(1));
|
||||
SetAF(1);
|
||||
CalculateDeferredFlags();
|
||||
_Jump(EndBlock);
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user