about summary refs log tree commit diff stats
path: root/miasm2/jitter/vm_mngr.c
diff options
context:
space:
mode:
authorAjax <commial@gmail.com>2015-11-13 11:18:04 +0100
committerAjax <commial@gmail.com>2015-11-13 11:18:04 +0100
commit34a23404e492a23d243742e55fd0247a0b7ef592 (patch)
tree39b8efc75fbf37de7828e53f53d2ca30b4c1da3b /miasm2/jitter/vm_mngr.c
parentc45e68462a1f7ab6822a7f723b3aa00c0f14afd6 (diff)
downloadmiasm-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.c6
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);