From 6fe4d603ab50761876ddebf50cbd49ea3edcb62e Mon Sep 17 00:00:00 2001 From: Andrew McDonnell Date: Fri, 26 Dec 2014 12:10:16 +1030 Subject: [PATCH] Fixes other case for #1900: mov ebx, junk --- libr/asm/p/asm_x86_nz.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) 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;