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

Method MOVQ2DQ

FEXCore/Source/Interface/Core/OpcodeDispatcher/Vector.cpp:3000–3013  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2998
2999template<bool ToXMM>
3000void OpDispatchBuilder::MOVQ2DQ(OpcodeArgs) {
3001 Ref Src = LoadSource(FPRClass, Op, Op->Src[0], Op->Flags);
3002
3003 // This instruction is a bit special in that if the source is MMX then it zexts to 128bit
3004 if constexpr (ToXMM) {
3005 const auto Index = Op->Dest.Data.GPR.GPR - FEXCore::X86State::REG_XMM_0;
3006
3007 Src = VZeroExtendOperand(OpSize::i128Bit, Op->Src[0], Src);
3008 StoreXMMRegister(Index, Src);
3009 } else {
3010 // This is simple, just store the result
3011 StoreResult(FPRClass, Op, Src, OpSize::iInvalid);
3012 }
3013}
3014
3015template void OpDispatchBuilder::MOVQ2DQ<false>(OpcodeArgs);
3016template void OpDispatchBuilder::MOVQ2DQ<true>(OpcodeArgs);

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected