mirror of
https://github.com/asmjit/asmjit.git
synced 2025-12-17 04:24:37 +03:00
The problem is that the rewriter must also rewrite an instruction ID in case that it's a [K|V]MOV[B|W|D|Q] instruction that moves from either K or SIMD register to GP register. when such instruction is rewritten in a way that it ends up as "xMOVx GP, [MEM]" it would be invalid if it's not changed to a general purpose MOV. The problem can only happen in case that the compiler spills a virtual register, which is then moved to a scalar register. In addition, checks were added to MOVD|MOVQ to ensure that when an invalid instruction is emitted it's not ignored as it used to be.