about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorFabrice Desclaux <fabrice.desclaux@cea.fr>2019-01-14 13:14:13 +0100
committerFabrice Desclaux <fabrice.desclaux@cea.fr>2019-01-14 13:14:46 +0100
commitb2c6061fb38d56ca70dad3a83a710475cf77c7ea (patch)
tree68c1c7eb727679335da44774bcaa2c27ad60526a
parent056ef4cd26c98cd8b9c121f2a791c01c5a7052a8 (diff)
downloadmiasm-b2c6061fb38d56ca70dad3a83a710475cf77c7ea.tar.gz
miasm-b2c6061fb38d56ca70dad3a83a710475cf77c7ea.zip
Jitter/python: use correct dump gpregs
-rw-r--r--miasm2/jitter/arch/JitCore_aarch64.c8
-rw-r--r--miasm2/jitter/arch/JitCore_arm.c9
-rw-r--r--miasm2/jitter/arch/JitCore_mep.c9
-rw-r--r--miasm2/jitter/arch/JitCore_msp430.c7
-rw-r--r--miasm2/jitter/arch/JitCore_ppc32.c7
-rw-r--r--miasm2/jitter/arch/JitCore_x86.c28
-rw-r--r--miasm2/jitter/jitcore_python.py2
7 files changed, 65 insertions, 5 deletions
diff --git a/miasm2/jitter/arch/JitCore_aarch64.c b/miasm2/jitter/arch/JitCore_aarch64.c
index fc51848a..d8b6d0f9 100644
--- a/miasm2/jitter/arch/JitCore_aarch64.c
+++ b/miasm2/jitter/arch/JitCore_aarch64.c
@@ -194,6 +194,12 @@ PyObject * cpu_dump_gpregs(JitCpu* self, PyObject* args)
 }
 
 
+PyObject * cpu_dump_gpregs_with_attrib(JitCpu* self, PyObject* args)
+{
+	return cpu_dump_gpregs(self, args);
+}
+
+
 PyObject* cpu_set_exception(JitCpu* self, PyObject* args)
 {
 	PyObject *item1;
@@ -294,6 +300,8 @@ static PyMethodDef JitCpu_methods[] = {
 	 "X"},
 	{"dump_gpregs", (PyCFunction)cpu_dump_gpregs, METH_NOARGS,
 	 "X"},
+	{"dump_gpregs_with_attrib", (PyCFunction)cpu_dump_gpregs_with_attrib, METH_VARARGS,
+	 "X"},
 	{"get_gpreg", (PyCFunction)cpu_get_gpreg, METH_NOARGS,
 	 "X"},
 	{"set_gpreg", (PyCFunction)cpu_set_gpreg, METH_VARARGS,
diff --git a/miasm2/jitter/arch/JitCore_arm.c b/miasm2/jitter/arch/JitCore_arm.c
index 4f1fd254..dca341d3 100644
--- a/miasm2/jitter/arch/JitCore_arm.c
+++ b/miasm2/jitter/arch/JitCore_arm.c
@@ -157,6 +157,13 @@ PyObject * cpu_dump_gpregs(JitCpu* self, PyObject* args)
 }
 
 
+PyObject * cpu_dump_gpregs_with_attrib(JitCpu* self, PyObject* args)
+{
+	return cpu_dump_gpregs(self, args);
+}
+
+
+
 PyObject* cpu_set_exception(JitCpu* self, PyObject* args)
 {
 	PyObject *item1;
@@ -276,6 +283,8 @@ static PyMethodDef JitCpu_methods[] = {
 	 "X"},
 	{"dump_gpregs", (PyCFunction)cpu_dump_gpregs, METH_NOARGS,
 	 "X"},
+	{"dump_gpregs_with_attrib", (PyCFunction)cpu_dump_gpregs_with_attrib, METH_VARARGS,
+	 "X"},
 	{"get_gpreg", (PyCFunction)cpu_get_gpreg, METH_NOARGS,
 	 "X"},
 	{"set_gpreg", (PyCFunction)cpu_set_gpreg, METH_VARARGS,
diff --git a/miasm2/jitter/arch/JitCore_mep.c b/miasm2/jitter/arch/JitCore_mep.c
index 44f36290..a089e84f 100644
--- a/miasm2/jitter/arch/JitCore_mep.c
+++ b/miasm2/jitter/arch/JitCore_mep.c
@@ -223,6 +223,10 @@ PyObject * cpu_dump_gpregs(JitCpu* self, PyObject* args)
     return Py_None;
 }
 
+PyObject * cpu_dump_gpregs_with_attrib(JitCpu* self, PyObject* args)
+{
+	return cpu_dump_gpregs(self, args);
+}
 
 PyObject* cpu_set_exception(JitCpu* self, PyObject* args)
 {
@@ -244,10 +248,6 @@ PyObject* cpu_get_exception(JitCpu* self, PyObject* args)
     return PyLong_FromUnsignedLongLong((uint64_t)(((vm_cpu_t*)self->cpu)->exception_flags));
 }
 
-
-
-
-
 void check_automod(JitCpu* jitcpu, uint64_t addr, uint64_t size)
 {
     PyObject *result;
@@ -322,6 +322,7 @@ static PyMemberDef JitCpu_members[] = {
 static PyMethodDef JitCpu_methods[] = {
     {"init_regs", (PyCFunction)cpu_init_regs, METH_NOARGS, "X"},
     {"dump_gpregs", (PyCFunction)cpu_dump_gpregs, METH_NOARGS, "X"},
+    {"dump_gpregs_with_attrib", (PyCFunction)cpu_dump_gpregs_with_attrib, METH_VARARGS, "X"},
     {"get_gpreg", (PyCFunction)cpu_get_gpreg, METH_NOARGS, "X"},
     {"set_gpreg", (PyCFunction)cpu_set_gpreg, METH_VARARGS, "X"},
     {"get_exception", (PyCFunction)cpu_get_exception, METH_VARARGS, "X"},
diff --git a/miasm2/jitter/arch/JitCore_msp430.c b/miasm2/jitter/arch/JitCore_msp430.c
index 12a42782..69f179a4 100644
--- a/miasm2/jitter/arch/JitCore_msp430.c
+++ b/miasm2/jitter/arch/JitCore_msp430.c
@@ -158,6 +158,11 @@ PyObject * cpu_dump_gpregs(JitCpu* self, PyObject* args)
 	return Py_None;
 }
 
+PyObject * cpu_dump_gpregs_with_attrib(JitCpu* self, PyObject* args)
+{
+	return cpu_dump_gpregs(self, args);
+}
+
 
 PyObject* cpu_set_exception(JitCpu* self, PyObject* args)
 {
@@ -259,6 +264,8 @@ static PyMethodDef JitCpu_methods[] = {
 	 "X"},
 	{"dump_gpregs", (PyCFunction)cpu_dump_gpregs, METH_NOARGS,
 	 "X"},
+	{"dump_gpregs_with_attrib", (PyCFunction)cpu_dump_gpregs_with_attrib, METH_VARARGS,
+	 "X"},
 	{"get_gpreg", (PyCFunction)cpu_get_gpreg, METH_NOARGS,
 	 "X"},
 	{"set_gpreg", (PyCFunction)cpu_set_gpreg, METH_VARARGS,
diff --git a/miasm2/jitter/arch/JitCore_ppc32.c b/miasm2/jitter/arch/JitCore_ppc32.c
index dfc46c91..e1a3fcd5 100644
--- a/miasm2/jitter/arch/JitCore_ppc32.c
+++ b/miasm2/jitter/arch/JitCore_ppc32.c
@@ -109,6 +109,12 @@ cpu_dump_gpregs(JitCpu *self, PyObject *args) {
 }
 
 PyObject *
+cpu_dump_gpregs_with_attrib(JitCpu* self, PyObject* args)
+{
+	return cpu_dump_gpregs(self, args);
+}
+
+PyObject *
 cpu_set_exception(JitCpu *self, PyObject *args) {
     PyObject *item1;
     uint64_t i;
@@ -208,6 +214,7 @@ static PyMemberDef JitCpu_members[] = {
 static PyMethodDef JitCpu_methods[] = {
     {"init_regs", (PyCFunction)cpu_init_regs, METH_NOARGS, "X"},
     {"dump_gpregs", (PyCFunction)cpu_dump_gpregs, METH_NOARGS, "X"},
+    {"dump_gpregs_with_attrib", (PyCFunction)cpu_dump_gpregs_with_attrib, METH_VARARGS, "X"},
     {"get_gpreg", (PyCFunction)cpu_get_gpreg, METH_NOARGS, "X"},
     {"set_gpreg", (PyCFunction)cpu_set_gpreg, METH_VARARGS, "X"},
     {"get_exception", (PyCFunction)cpu_get_exception, METH_VARARGS, "X"},
diff --git a/miasm2/jitter/arch/JitCore_x86.c b/miasm2/jitter/arch/JitCore_x86.c
index b711f40b..fa47b324 100644
--- a/miasm2/jitter/arch/JitCore_x86.c
+++ b/miasm2/jitter/arch/JitCore_x86.c
@@ -349,6 +349,32 @@ PyObject * cpu_dump_gpregs(JitCpu* self, PyObject* args)
 }
 
 
+PyObject * cpu_dump_gpregs_with_attrib(JitCpu* self, PyObject* args)
+{
+	vm_cpu_t* vmcpu;
+	PyObject *item1;
+	uint64_t attrib;
+
+	if (!PyArg_ParseTuple(args, "O", &item1))
+		RAISE(PyExc_TypeError,"Cannot parse arguments");
+
+	PyGetInt(item1, attrib);
+
+	vmcpu = self->cpu;
+	if (attrib == 16 || attrib == 32)
+		dump_gpregs_32(vmcpu);
+	else if (attrib == 64)
+		dump_gpregs_64(vmcpu);
+	else {
+		RAISE(PyExc_TypeError,"Bad attrib");
+	}
+
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+
+
 PyObject* cpu_set_exception(JitCpu* self, PyObject* args)
 {
 	PyObject *item1;
@@ -484,6 +510,8 @@ static PyMethodDef JitCpu_methods[] = {
 	 "X"},
 	{"dump_gpregs", (PyCFunction)cpu_dump_gpregs, METH_NOARGS,
 	 "X"},
+	{"dump_gpregs_with_attrib", (PyCFunction)cpu_dump_gpregs_with_attrib, METH_VARARGS,
+	 "X"},
 	{"get_gpreg", (PyCFunction)cpu_get_gpreg, METH_NOARGS,
 	 "X"},
 	{"set_gpreg", (PyCFunction)cpu_set_gpreg, METH_VARARGS,
diff --git a/miasm2/jitter/jitcore_python.py b/miasm2/jitter/jitcore_python.py
index dd4c543e..0b1f5809 100644
--- a/miasm2/jitter/jitcore_python.py
+++ b/miasm2/jitter/jitcore_python.py
@@ -90,7 +90,7 @@ class JitCore_Python(jitcore.JitCore):
                         # Log registers values
                         if self.log_regs:
                             exec_engine.update_cpu_from_engine()
-                            exec_engine.cpu.dump_gpregs()
+                            exec_engine.cpu.dump_gpregs_with_attrib(self.ir_arch.attrib)
 
                         # Log instruction
                         if self.log_mn: