Intel has 3 different encodings: 1. movd for xmm<->general reg/mem dword moves, 2. movq for xmm <-> general reg/mem qword moved (x64 only), 3. movq for xmm<->xmm/mem qword moves, but in the Jit we combine 1. and 2. and call them movd so our disasm shows incorrect instruction for movq in that case.
See the details in the @tannergooding comment below.
The fix is to separate 2. and 3., the hard part is to find names, maybe movq_g(general), movq_mm?
Intel has 3 different encodings: 1.
movdfor xmm<->general reg/mem dword moves, 2.movqfor xmm <-> general reg/mem qword moved (x64 only), 3.movqfor xmm<->xmm/mem qword moves, but in the Jit we combine 1. and 2. and call themmovdso our disasm shows incorrect instruction formovqin that case.See the details in the @tannergooding comment below.
The fix is to separate 2. and 3., the hard part is to find names, maybe
movq_g(general),movq_mm?