about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorajax <devnull@localhost>2014-07-30 14:04:35 +0200
committerajax <devnull@localhost>2014-07-30 14:04:35 +0200
commit133d8d591ef4c4c27e98f35e1b55f75a2c2be6fa (patch)
tree42f3125904d2700fe0e3f2fefb84beb3f536bb59
parent0ff4cb2858e8de938d40749faf55a9a31623f97d (diff)
downloadmiasm-133d8d591ef4c4c27e98f35e1b55f75a2c2be6fa.tar.gz
miasm-133d8d591ef4c4c27e98f35e1b55f75a2c2be6fa.zip
JitCore_x86: UDIV & UMOD return value and arguments sizes have to be the same
-rw-r--r--miasm2/jitter/arch/JitCore_x86.c20
-rw-r--r--miasm2/jitter/arch/JitCore_x86.h12
2 files changed, 16 insertions, 16 deletions
diff --git a/miasm2/jitter/arch/JitCore_x86.c b/miasm2/jitter/arch/JitCore_x86.c
index 856923ac..2e846a87 100644
--- a/miasm2/jitter/arch/JitCore_x86.c
+++ b/miasm2/jitter/arch/JitCore_x86.c
@@ -257,8 +257,8 @@ PyObject* vm_get_exception(JitCpu* self, PyObject* args)
 
 
 
-#define UDIV(sizeA, sizeB)						\
-    uint ## sizeA ## _t udiv ## sizeB (vm_cpu_t* vmcpu, uint ## sizeB ## _t a, uint ## sizeB ## _t b) \
+#define UDIV(sizeA)						\
+    uint ## sizeA ## _t udiv ## sizeA (vm_cpu_t* vmcpu, uint ## sizeA ## _t a, uint ## sizeA ## _t b) \
 	    {								\
 	    uint ## sizeA ## _t r;						\
 	    if (b == 0) {						\
@@ -270,8 +270,8 @@ PyObject* vm_get_exception(JitCpu* self, PyObject* args)
 	    }
 
 
-#define UMOD(sizeA, sizeB)						\
-    uint ## sizeA ## _t umod ## sizeB (vm_cpu_t* vmcpu, uint ## sizeB ## _t a, uint ## sizeB ## _t b) \
+#define UMOD(sizeA)						\
+    uint ## sizeA ## _t umod ## sizeA (vm_cpu_t* vmcpu, uint ## sizeA ## _t a, uint ## sizeA ## _t b) \
 	    {								\
 	    uint ## sizeA ## _t r;						\
 	    if (b == 0) {						\
@@ -308,13 +308,13 @@ PyObject* vm_get_exception(JitCpu* self, PyObject* args)
 	    return r;							\
 	    }
 
-UDIV(8, 16)
-UDIV(16, 32)
-UDIV(32, 64)
+UDIV(16)
+UDIV(32)
+UDIV(64)
 
-UMOD(8, 16)
-UMOD(16, 32)
-UMOD(32, 64)
+UMOD(16)
+UMOD(32)
+UMOD(64)
 
 
 IDIV(16)
diff --git a/miasm2/jitter/arch/JitCore_x86.h b/miasm2/jitter/arch/JitCore_x86.h
index 7d4379a8..5ed0feff 100644
--- a/miasm2/jitter/arch/JitCore_x86.h
+++ b/miasm2/jitter/arch/JitCore_x86.h
@@ -275,18 +275,18 @@ void dump_gpregs(vm_cpu_t* vmcpu);
 uint64_t segm2addr(vm_cpu_t* vmcpu, uint64_t segm, uint64_t addr);
 
 
-uint32_t udiv64(vm_cpu_t* vmcpu, uint64_t a, uint64_t b);
-uint32_t umod64(vm_cpu_t* vmcpu, uint64_t a, uint64_t b);
+uint64_t udiv64(vm_cpu_t* vmcpu, uint64_t a, uint64_t b);
+uint64_t umod64(vm_cpu_t* vmcpu, uint64_t a, uint64_t b);
 int64_t idiv64(vm_cpu_t* vmcpu, int64_t a, int64_t b);
 int64_t imod64(vm_cpu_t* vmcpu, int64_t a, int64_t b);
 
-uint16_t udiv32(vm_cpu_t* vmcpu, uint32_t a, uint32_t b);
-uint16_t umod32(vm_cpu_t* vmcpu, uint32_t a, uint32_t b);
+uint32_t udiv32(vm_cpu_t* vmcpu, uint32_t a, uint32_t b);
+uint32_t umod32(vm_cpu_t* vmcpu, uint32_t a, uint32_t b);
 int32_t idiv32(vm_cpu_t* vmcpu, int32_t a, int32_t b);
 int32_t imod32(vm_cpu_t* vmcpu, int32_t a, int32_t b);
 
-uint8_t udiv16(vm_cpu_t* vmcpu, uint16_t a, uint16_t b);
-uint8_t umod16(vm_cpu_t* vmcpu, uint16_t a, uint16_t b);
+uint16_t udiv16(vm_cpu_t* vmcpu, uint16_t a, uint16_t b);
+uint16_t umod16(vm_cpu_t* vmcpu, uint16_t a, uint16_t b);
 int16_t idiv16(vm_cpu_t* vmcpu, int16_t a, int16_t b);
 int16_t imod16(vm_cpu_t* vmcpu, int16_t a, int16_t b);