From c8735b437a9c26ea7279b7df600aaa2c5a773952 Mon Sep 17 00:00:00 2001 From: Andrei Vlad LUTAS Date: Tue, 10 Aug 2021 14:46:39 +0300 Subject: [PATCH] Fixed NEG emulation - make sure flags are set. --- bdshemu/bdshemu.c | 11 ++++++++--- bdshemu_test/bdshemu_test.zip | Bin 74404 -> 75180 bytes inc/version.h | 2 +- pybddisasm/setup.py | 2 +- 4 files changed, 10 insertions(+), 5 deletions(-) diff --git a/bdshemu/bdshemu.c b/bdshemu/bdshemu.c index 4a4e4a6..d2926ca 100644 --- a/bdshemu/bdshemu.c +++ b/bdshemu/bdshemu.c @@ -2226,9 +2226,14 @@ ShemuEmulate( break; case ND_INS_NEG: - GET_OP(Context, 0, &dst); - dst.Value.Qwords[0] = 0 - dst.Value.Qwords[0]; - SET_OP(Context, 0, &dst); + GET_OP(Context, 0, &src); + dst.Size = src.Size; + dst.Value.Qwords[0] = 0; + res.Size = src.Size; + res.Value.Qwords[0] = dst.Value.Qwords[0] - src.Value.Qwords[0]; + SET_OP(Context, 0, &res); + SET_FLAGS(Context, res, dst, src, FM_SUB); + SET_FLAG(Context, NDR_RFLAG_CF, src.Value.Qwords[0] != 0); break; case ND_INS_BT: diff --git a/bdshemu_test/bdshemu_test.zip b/bdshemu_test/bdshemu_test.zip index 973c7aa888adf75e113ab1af0f409725ec12dc84..fcddd80dd3e06471c624b2305bc30834e8360158 100644 GIT binary patch delta 810 zcmZ2-lx59nmJJ%u>zP?Z7?>G281hQEg6|gZ2$W}FU=RReK_E^_EY3{UFG(#fi8nTi z&r3~z_DABg`HJU@C3pSx=xht#I(61I@7l7^>p%PgAKB)r26)3v%K(~I%yVs?C(x8i zAQr`DnqFdYZoO-I$J5J~7Jf*{uD##BDBvBFb^Gbs%lztHEAGu`V86f2Tj)5Cs%+8X z52__!^>d|mIG^(V9dYK<^ut}bStl&Z%H2`|zlC(X+a`#xya;IdtiMOa9T*uHjQJTD zB(Pdulv-SxQ&OLmWV8Rk62?7TVmWoi%10M2*|j|2qRP#DrHocdozm5c6KW^i=J_>u zAA^I~uYWz8on=Em$-b>x<6!*9+@EQAn~@I3^kZ9!j~#wDWAb``*W4dUO>&y@Bcht<>jmx_vK_PU**HuhidoU z$o*UJRcMmAN3m<*jjWCLwrOo!-gdTfaZ z82CV-0K{s~u_UPgZ$>5&21pvjmTEwn8Nu31uxSUSA-EC2z;ui)@)2fyz-k60DFk@4 SvVm021wsQG28OhkARYjDPce@G delta 35 mcmZ2;nq|pRmJJ%uH)p)euohuuV*r9#K$v08z@YXV!~+2C;R;d! diff --git a/inc/version.h b/inc/version.h index 3a2d5a5..4060e9b 100644 --- a/inc/version.h +++ b/inc/version.h @@ -7,6 +7,6 @@ #define DISASM_VERSION_MAJOR 1 #define DISASM_VERSION_MINOR 34 -#define DISASM_VERSION_REVISION 0 +#define DISASM_VERSION_REVISION 1 #endif // DISASM_VER_H diff --git a/pybddisasm/setup.py b/pybddisasm/setup.py index 7cafe38..1a5abd4 100644 --- a/pybddisasm/setup.py +++ b/pybddisasm/setup.py @@ -12,7 +12,7 @@ from setuptools import find_packages, setup, Command, Extension, Distribution from codecs import open VERSION = (0, 1, 3) -LIBRARY_VERSION = (1, 34, 0) +LIBRARY_VERSION = (1, 34, 1) LIBRARY_INSTRUX_SIZE = 864 packages = ['pybddisasm']