MCPcopy Create free account
hub / github.com/FEX-Emu/FEX / BLSRBMIOp

Method BLSRBMIOp

FEXCore/Source/Interface/Core/OpcodeDispatcher.cpp:1773–1788  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1771}
1772
1773void OpDispatchBuilder::BLSRBMIOp(OpcodeArgs) {
1774 // Equivalent to: (Src - 1) & Src
1775 LOGMAN_THROW_A_FMT(Op->InstSize >= 4, "No masking needed");
1776 const auto Size = OpSizeFromSrc(Op);
1777
1778 auto* Src = LoadSource(GPRClass, Op, Op->Src[0], Op->Flags, {.AllowUpperGarbage = true});
1779 auto Result = _And(Size, Sub(Size, Src, 1), Src);
1780
1781 StoreResult(GPRClass, Op, Result, OpSize::iInvalid);
1782
1783 auto CFInv = To01(OpSize::i64Bit, Src);
1784
1785 SetNZ_ZeroCV(Size, Result);
1786 SetCFInverted(CFInv);
1787 InvalidatePF_AF();
1788}
1789
1790// Handles SARX, SHLX, and SHRX
1791void OpDispatchBuilder::BMI2Shift(OpcodeArgs) {

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected