| 2998 | |
| 2999 | template<bool ToXMM> |
| 3000 | void 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 | |
| 3015 | template void OpDispatchBuilder::MOVQ2DQ<false>(OpcodeArgs); |
| 3016 | template void OpDispatchBuilder::MOVQ2DQ<true>(OpcodeArgs); |
nothing calls this directly
no outgoing calls
no test coverage detected