diff --git a/libr/asm/p/asm_x86_nz.c b/libr/asm/p/asm_x86_nz.c index 9e066261b3..ba6115f4b1 100644 --- a/libr/asm/p/asm_x86_nz.c +++ b/libr/asm/p/asm_x86_nz.c @@ -1013,23 +1013,27 @@ SETNP/SETPO - Set if No Parity / Set if Parity Odd (386+) return l; } else { int r0 = getreg (arg); + int r1 = getreg (arg2); + if (r0 == 0xff) { + return 0; + } + if (r1 == 0xff) { + return 0; + } if (a->bits==64) if (*arg=='r') data[l++] = 0x48; data[l++] = 0x89; - if (r0 == 0xff) { - return 0; - } if (delta) { if (isnum (a, delta)){ - data[l++] = 0x40 | r0 | getreg (arg2)<<3; + data[l++] = 0x40 | r0 | r1<<3; data[l++] = getnum (a, delta); } else { - data[l++] = getreg (arg2)<<3 | 0x4; + data[l++] = r1<<3 | 0x4; data[l++] = (getreg (delta)<<3 ) | r0; } } else { - data[l++] = getreg (arg2)<<3 | r0 | pfx; + data[l++] = r1<<3 | r0 | pfx; } } return l;