invalid instruction with shifting integers xmm for see2
psllw
pslld
psllq
psraw
psrad
psrlw
psrld
psrlq
psrlq xmm0, xmm1 ;invalid instruction
psrlq xmm0, 225 ;invalid instruction
uasm not permitting to use with evex, but also blocks if used with for sse2 only xmm.
Found the file codegen.c in line 337.
(switch (CodeInfo->token){)
commented:
line 373 to 381:
/*case T_PSLLDQ:
case T_PSRLDQ:
case T_PSLLW:
case T_PSLLD:
case T_PSLLQ:
case T_PSRAW:
case T_PSRAD:
case T_PSRAQ:
case T_PSRLW:
case T_PSRLD:
case T_PSRLQ:*/
Do now the implications with the arch evex if doing this, but resolved the invalid instruction assembling for sse2.
Good find KradMoonRa :t
it was supposed to be for AVX and EVEX instruction and not for SSE, that was a typo of copy-paste with omitted T_V ::)
it should be:
case T_VPSLLDQ:
case T_VPSRLDQ:
case T_VPSLLW:
case T_VPSLLD:
case T_VPSLLQ:
case T_VPSRAW:
case T_VPSRAD:
case T_VPSRAQ:
case T_VPSRLW:
case T_VPSRLD:
case T_VPSRLQ:
will be fixed ASAP