Jitter: split VmMngr from JitCpu

This commit is contained in:
serpilliere
2015-03-08 21:32:34 +01:00
parent d1c270b845
commit 644893c46e
8 changed files with 37 additions and 54 deletions
-4
View File
@@ -515,7 +515,6 @@ static PyMethodDef JitCore_arm_Methods[] = {
static PyObject *JitCore_arm_Error;
extern int init_vm_mngr(PyObject* m);
PyMODINIT_FUNC
initJitCore_arm(void)
{
@@ -535,8 +534,5 @@ initJitCore_arm(void)
Py_INCREF(&JitCpuType);
PyModule_AddObject(m, "JitCpu", (PyObject *)&JitCpuType);
/* init vm */
init_vm_mngr(m);
}
-4
View File
@@ -616,7 +616,6 @@ static PyMethodDef JitCore_mips32_Methods[] = {
static PyObject *JitCore_mips32_Error;
extern int init_vm_mngr(PyObject* m);
PyMODINIT_FUNC
initJitCore_mips32(void)
{
@@ -636,8 +635,5 @@ initJitCore_mips32(void)
Py_INCREF(&JitCpuType);
PyModule_AddObject(m, "JitCpu", (PyObject *)&JitCpuType);
/* init vm */
init_vm_mngr(m);
}
-4
View File
@@ -667,7 +667,6 @@ static PyMethodDef JitCore_msp430_Methods[] = {
static PyObject *JitCore_msp430_Error;
extern int init_vm_mngr(PyObject* m);
PyMODINIT_FUNC
initJitCore_msp430(void)
{
@@ -687,8 +686,5 @@ initJitCore_msp430(void)
Py_INCREF(&JitCpuType);
PyModule_AddObject(m, "JitCpu", (PyObject *)&JitCpuType);
/* init vm */
init_vm_mngr(m);
}
-4
View File
@@ -815,7 +815,6 @@ static PyMethodDef JitCore_x86_Methods[] = {
static PyObject *JitCore_x86_Error;
extern int init_vm_mngr(PyObject* m);
PyMODINIT_FUNC
initJitCore_x86(void)
{
@@ -835,9 +834,6 @@ initJitCore_x86(void)
Py_INCREF(&JitCpuType);
PyModule_AddObject(m, "JitCpu", (PyObject *)&JitCpuType);
/* init vm */
init_vm_mngr(m);
}
+1
View File
@@ -109,6 +109,7 @@ class JitCore_Tcc(jitcore.JitCore):
# os.path.join(os.path.dirname(os.path.realpath(__file__)), "jitter")
lib_dir = os.path.dirname(os.path.realpath(__file__))
libs = []
libs.append(os.path.join(lib_dir, 'VmMngr.so'))
libs.append(os.path.join(lib_dir, 'arch/JitCore_%s.so' % (self.ir_arch.arch.name)))
libs = ';'.join(libs)
jittcc_path = Jittcc.__file__
+3 -1
View File
@@ -8,6 +8,7 @@ from miasm2.jitter.csts import *
from miasm2.core.utils import *
from miasm2.core.bin_stream import bin_stream_vm
from miasm2.ir.ir2C import init_arch_C
from miasm2.jitter import VmMngr
hnd = logging.StreamHandler()
hnd.setFormatter(logging.Formatter("[%(levelname)s]: %(message)s"))
@@ -187,8 +188,9 @@ class jitter:
else:
raise ValueError("unsupported jit arch!")
self.vm = VmMngr.Vm()
self.cpu = jcore.JitCpu()
self.vm = jcore.VmMngr()
self.bs = bin_stream_vm(self.vm)
self.ir_arch = ir_arch
init_arch_C(self.arch)
+19 -13
View File
@@ -868,7 +868,7 @@ static PyGetSetDef VmMngr_getseters[] = {
static PyTypeObject VmMngrType = {
PyObject_HEAD_INIT(NULL)
0, /*ob_size*/
"JitCore_x86_32.VmMngr", /*tp_name*/
"VmMngr", /*tp_name*/
sizeof(VmMngr), /*tp_basicsize*/
0, /*tp_itemsize*/
(destructor)VmMngr_dealloc,/*tp_dealloc*/
@@ -907,24 +907,30 @@ static PyTypeObject VmMngrType = {
VmMngr_new, /* tp_new */
};
static PyMethodDef VmMngr_Methods[] = {
{NULL, NULL, 0, NULL} /* Sentinel */
};
static PyObject *Vm_Mngr_Error;
/*
return
0 on success
-1 on error
*/
int init_vm_mngr(PyObject* m)
PyMODINIT_FUNC
initVmMngr(void)
{
if (PyType_Ready(&VmMngrType) < 0)
return -1;
PyObject *m;
Vm_Mngr_Error = PyErr_NewException("vm_mngr_.error", NULL, NULL);
if (PyType_Ready(&VmMngrType) < 0)
return;
m = Py_InitModule("VmMngr", VmMngr_Methods);
if (m == NULL)
return;
Vm_Mngr_Error = PyErr_NewException("VmMngr.error", NULL, NULL);
Py_INCREF(Vm_Mngr_Error);
PyModule_AddObject(m, "error", Vm_Mngr_Error);
Py_INCREF(&VmMngrType);
PyModule_AddObject(m, "VmMngr", (PyObject *)&VmMngrType);
return 0;
PyModule_AddObject(m, "Vm", (PyObject *)&VmMngrType);
}
+14 -24
View File
@@ -24,50 +24,40 @@ def buil_all():
'miasm2/jitter/loader',
]
ext_modules_no_tcc = [
Extension("miasm2.jitter.arch.JitCore_x86",
Extension("miasm2.jitter.VmMngr",
["miasm2/jitter/vm_mngr.c",
"miasm2/jitter/vm_mngr_py.c",
"miasm2/jitter/arch/JitCore.c",
"miasm2/jitter/vm_mngr_py.c"]),
Extension("miasm2.jitter.arch.JitCore_x86",
["miasm2/jitter/arch/JitCore.c",
"miasm2/jitter/arch/JitCore_x86.c"]),
Extension("miasm2.jitter.arch.JitCore_arm",
["miasm2/jitter/vm_mngr.c",
"miasm2/jitter/vm_mngr_py.c",
"miasm2/jitter/arch/JitCore.c",
["miasm2/jitter/arch/JitCore.c",
"miasm2/jitter/arch/JitCore_arm.c"]),
Extension("miasm2.jitter.arch.JitCore_msp430",
["miasm2/jitter/vm_mngr.c",
"miasm2/jitter/vm_mngr_py.c",
"miasm2/jitter/arch/JitCore.c",
["miasm2/jitter/arch/JitCore.c",
"miasm2/jitter/arch/JitCore_msp430.c"]),
Extension("miasm2.jitter.arch.JitCore_mips32",
["miasm2/jitter/vm_mngr.c",
"miasm2/jitter/vm_mngr_py.c",
"miasm2/jitter/arch/JitCore.c",
["miasm2/jitter/arch/JitCore.c",
"miasm2/jitter/arch/JitCore_mips32.c"]),
Extension("miasm2.jitter.Jitllvm",
["miasm2/jitter/Jitllvm.c"]),
]
ext_modules_all = [
Extension("miasm2.jitter.arch.JitCore_x86",
Extension("miasm2.jitter.VmMngr",
["miasm2/jitter/vm_mngr.c",
"miasm2/jitter/vm_mngr_py.c",
"miasm2/jitter/arch/JitCore.c",
"miasm2/jitter/vm_mngr_py.c"]),
Extension("miasm2.jitter.arch.JitCore_x86",
["miasm2/jitter/arch/JitCore.c",
"miasm2/jitter/arch/JitCore_x86.c"]),
Extension("miasm2.jitter.arch.JitCore_arm",
["miasm2/jitter/vm_mngr.c",
"miasm2/jitter/vm_mngr_py.c",
"miasm2/jitter/arch/JitCore.c",
["miasm2/jitter/arch/JitCore.c",
"miasm2/jitter/arch/JitCore_arm.c"]),
Extension("miasm2.jitter.arch.JitCore_msp430",
["miasm2/jitter/vm_mngr.c",
"miasm2/jitter/vm_mngr_py.c",
"miasm2/jitter/arch/JitCore.c",
["miasm2/jitter/arch/JitCore.c",
"miasm2/jitter/arch/JitCore_msp430.c"]),
Extension("miasm2.jitter.arch.JitCore_mips32",
["miasm2/jitter/vm_mngr.c",
"miasm2/jitter/vm_mngr_py.c",
"miasm2/jitter/arch/JitCore.c",
["miasm2/jitter/arch/JitCore.c",
"miasm2/jitter/arch/JitCore_mips32.c"]),
Extension("miasm2.jitter.Jitllvm",
["miasm2/jitter/Jitllvm.c"]),