diff options
| -rw-r--r-- | miasm2/jitter/Jitllvm.c | 8 | ||||
| -rw-r--r-- | miasm2/jitter/Jittcc.c | 16 | ||||
| -rw-r--r-- | miasm2/jitter/vm_mngr.c | 2 | ||||
| -rw-r--r-- | miasm2/jitter/vm_mngr_py.c | 2 |
4 files changed, 16 insertions, 12 deletions
diff --git a/miasm2/jitter/Jitllvm.c b/miasm2/jitter/Jitllvm.c index ab077b05..6622e615 100644 --- a/miasm2/jitter/Jitllvm.c +++ b/miasm2/jitter/Jitllvm.c @@ -6,15 +6,17 @@ PyObject* llvm_exec_bloc(PyObject* self, PyObject* args) { + uint64_t func_addr; uint64_t (*func)(void*, void*); uint64_t vm; uint64_t cpu; uint64_t ret; - if (!PyArg_ParseTuple(args, "KKK", &func, &cpu, &vm)) + if (!PyArg_ParseTuple(args, "KKK", &func_addr, &cpu, &vm)) return NULL; - ret = func((void*)cpu, (void*)vm); - return PyLong_FromUnsignedLongLong( (uint64_t)ret); + func = (void *) (intptr_t) func_addr; + ret = func((void*)(intptr_t) cpu, (void*)(intptr_t) vm); + return PyLong_FromUnsignedLongLong(ret); } diff --git a/miasm2/jitter/Jittcc.c b/miasm2/jitter/Jittcc.c index a162c41b..201f9b7f 100644 --- a/miasm2/jitter/Jittcc.c +++ b/miasm2/jitter/Jittcc.c @@ -59,10 +59,12 @@ TCCState * tcc_init_state(void) PyObject* tcc_end(PyObject* self, PyObject* args) { - TCCState *tcc_state = NULL; - if (!PyArg_ParseTuple(args, "K", &tcc_state)) + unsigned long long tmp = 0; + + if (!PyArg_ParseTuple(args, "K", &tmp)) return NULL; - tcc_delete(tcc_state); + + tcc_delete((TCCState *) (intptr_t) tmp); Py_INCREF(Py_None); return Py_None; @@ -214,8 +216,8 @@ PyObject* tcc_compil(PyObject* self, PyObject* args) exit(1); } - PyTuple_SetItem(ret, 0, PyLong_FromUnsignedLongLong((uint64_t)tcc_state)); - PyTuple_SetItem(ret, 1, PyLong_FromUnsignedLongLong((uint64_t)entry)); + PyTuple_SetItem(ret, 0, PyLong_FromUnsignedLongLong((intptr_t) tcc_state)); + PyTuple_SetItem(ret, 1, PyLong_FromUnsignedLongLong((intptr_t) entry)); return ret; @@ -243,8 +245,8 @@ PyObject* tcc_loop_exec(PyObject* self, PyObject* args) } pArgs = PyTuple_New(2); - PyTuple_SetItem(pArgs, 0, PyLong_FromUnsignedLongLong((uint64_t)cpu)); - PyTuple_SetItem(pArgs, 1, PyLong_FromUnsignedLongLong((uint64_t)vm)); + PyTuple_SetItem(pArgs, 0, PyLong_FromUnsignedLongLong((intptr_t)cpu)); + PyTuple_SetItem(pArgs, 1, PyLong_FromUnsignedLongLong((intptr_t)vm)); ret = PyObject_CallObject(func, pArgs); Py_DECREF(2); diff --git a/miasm2/jitter/vm_mngr.c b/miasm2/jitter/vm_mngr.c index 1a04ba63..3597ae4f 100644 --- a/miasm2/jitter/vm_mngr.c +++ b/miasm2/jitter/vm_mngr.c @@ -79,7 +79,7 @@ uint64_t set_endian64(vm_mngr_t* vm_mngr, uint64_t val) void print_val(uint64_t base, uint64_t addr) { - uint64_t *ptr = (uint64_t *) addr; + uint64_t *ptr = (uint64_t *) (intptr_t) addr; fprintf(stderr, "addr 0x%"PRIX64" val 0x%"PRIX64"\n", addr-base, *ptr); } diff --git a/miasm2/jitter/vm_mngr_py.c b/miasm2/jitter/vm_mngr_py.c index 54511c20..bb0a6207 100644 --- a/miasm2/jitter/vm_mngr_py.c +++ b/miasm2/jitter/vm_mngr_py.c @@ -531,7 +531,7 @@ VmMngr_new(PyTypeObject *type, PyObject *args, PyObject *kwds) static PyObject * VmMngr_get_vmmngr(VmMngr *self, void *closure) { - return PyLong_FromUnsignedLongLong((uint64_t)&(self->vm_mngr)); + return PyLong_FromUnsignedLongLong((uint64_t)(intptr_t)&(self->vm_mngr)); } static int |