diff options
| author | Ajax <commial@gmail.com> | 2015-11-13 11:18:04 +0100 |
|---|---|---|
| committer | Ajax <commial@gmail.com> | 2015-11-13 11:18:04 +0100 |
| commit | 34a23404e492a23d243742e55fd0247a0b7ef592 (patch) | |
| tree | 39b8efc75fbf37de7828e53f53d2ca30b4c1da3b /miasm2/jitter/vm_mngr.c | |
| parent | c45e68462a1f7ab6822a7f723b3aa00c0f14afd6 (diff) | |
| download | miasm-34a23404e492a23d243742e55fd0247a0b7ef592.tar.gz miasm-34a23404e492a23d243742e55fd0247a0b7ef592.zip | |
x86/TCC: fix a loosed bit of rotate left
Diffstat (limited to 'miasm2/jitter/vm_mngr.c')
| -rw-r--r-- | miasm2/jitter/vm_mngr.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/miasm2/jitter/vm_mngr.c b/miasm2/jitter/vm_mngr.c index 3e5c262d..9ba3c227 100644 --- a/miasm2/jitter/vm_mngr.c +++ b/miasm2/jitter/vm_mngr.c @@ -873,13 +873,13 @@ int rcl_rez_op(unsigned int size, unsigned int a, unsigned int b, unsigned int c b -=1; switch(size){ case 8+1: - tmp = (tmp << b) | ((tmp&0x1FF) >> (size-b)); + tmp = (tmp << b) | ((a&0x1FF) >> (size-b-1)); return tmp&0xff; case 16+1: - tmp = (tmp << b) | ((tmp&0x1FFFF) >> (size-b)); + tmp = (tmp << b) | ((a&0x1FFFF) >> (size-b-1)); return tmp&0xffff; case 32+1: - tmp = (tmp << b) | ((tmp&0x1FFFFFFFFULL) >> (size-b)); + tmp = (tmp << b) | ((a&0x1FFFFFFFFULL) >> (size-b-1)); return tmp&0xffffffff; default: fprintf(stderr, "inv size in rclleft %d\n", size); |