3030 X86_INS_MOVSW , X86_INS_MOVSD , X86_INS_MOVSQ , X86_INS_LODSB ,
3131 X86_INS_LODSW , X86_INS_LODSD , X86_INS_LODSQ , X86_INS_CMPSB ,
3232 X86_INS_CMPSW , X86_INS_CMPSD , X86_INS_CMPSQ , X86_INS_SCASB ,
33- X86_INS_SCASW , X86_INS_SCASD , X86_INS_SCASQ , X86_INS_XADD , X86_PREFIX_LOCK )
33+ X86_INS_SCASW , X86_INS_SCASD , X86_INS_SCASQ , X86_INS_XADD , X86_PREFIX_LOCK ,
34+ X86_INS_MOVSS , X86_INS_MOVAPD , X86_INS_MOVAPS , X86_INS_MOVUPS , X86_INS_MOVUPD )
3435
3536from plasma .lib .output import OutputAbs
3637from plasma .lib .arch .x86 .utils import (inst_symbol , is_call , is_jump , is_ret ,
6566INST_MOVS = {X86_INS_MOVSB , X86_INS_MOVSW , X86_INS_MOVSD , X86_INS_MOVSQ }
6667INST_CMPS = {X86_INS_CMPSB , X86_INS_CMPSW , X86_INS_CMPSD , X86_INS_CMPSQ }
6768INST_SCAS = {X86_INS_SCASB , X86_INS_SCASW , X86_INS_SCASD , X86_INS_SCASQ }
69+ INST_MOV_SSE = {X86_INS_MOVSD , X86_INS_MOVSS , X86_INS_MOVAPD , X86_INS_MOVAPS , X86_INS_MOVUPS , X86_INS_MOVUPD }
6870
6971REP_PREFIX = {X86_PREFIX_REPNE , X86_PREFIX_REP }
7072
73+ def is_sse_movd (i ):
74+ return i .id == X86_INS_MOVSD and i .bytes [0 ] == 0xF2
7175
7276class Output (OutputAbs ):
7377 def _operand (self , i , num_op , hexa = False , show_deref = True ,
@@ -415,9 +419,10 @@ def _sub_asm_inst(self, i, tab=0):
415419 self ._add (" += D ? -{0} : {0}" .format (i .operands [0 ].size ))
416420 return
417421
418- if i .id in INST_MOVS :
422+ # Be sure to differentiate between the SSE instruction MOVSD and the non SSE move string
423+ if i .id in INST_MOVS and not is_sse_movd (i ):
419424 self ._operand (i , 0 )
420- self ._add (" = " )
425+ self ._add ("( = " )
421426 self ._operand (i , 1 )
422427 self ._new_line ()
423428 self ._tabs (tab )
@@ -431,6 +436,12 @@ def _sub_asm_inst(self, i, tab=0):
431436 self ._add (" += D ? -{0} : {0}" .format (i .operands [0 ].size ))
432437 return
433438
439+ if i .id in INST_MOV_SSE :
440+ self ._operand (i , 0 )
441+ self ._add (" = " )
442+ self ._operand (i , 1 )
443+ return
444+
434445 if is_imm :
435446 self ._section ("!" )
436447 self ._add ("mov " )
0 commit comments