diff options
| author | ajax <devnull@localhost> | 2014-07-30 14:04:35 +0200 |
|---|---|---|
| committer | ajax <devnull@localhost> | 2014-07-30 14:04:35 +0200 |
| commit | 133d8d591ef4c4c27e98f35e1b55f75a2c2be6fa (patch) | |
| tree | 42f3125904d2700fe0e3f2fefb84beb3f536bb59 | |
| parent | 0ff4cb2858e8de938d40749faf55a9a31623f97d (diff) | |
| download | miasm-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.c | 20 | ||||
| -rw-r--r-- | miasm2/jitter/arch/JitCore_x86.h | 12 |
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); |