about summary refs log tree commit diff stats
path: root/miasm2/jitter/arch
diff options
context:
space:
mode:
Diffstat (limited to 'miasm2/jitter/arch')
-rw-r--r--miasm2/jitter/arch/JitCore.c10
-rw-r--r--miasm2/jitter/arch/JitCore.h7
-rw-r--r--miasm2/jitter/arch/JitCore_arm.h3
-rw-r--r--miasm2/jitter/arch/JitCore_mips32.h4
-rw-r--r--miasm2/jitter/arch/JitCore_msp430.h3
-rw-r--r--miasm2/jitter/arch/JitCore_x86.h3
6 files changed, 25 insertions, 5 deletions
diff --git a/miasm2/jitter/arch/JitCore.c b/miasm2/jitter/arch/JitCore.c
new file mode 100644
index 00000000..739beb74
--- /dev/null
+++ b/miasm2/jitter/arch/JitCore.c
@@ -0,0 +1,10 @@
+#include <Python.h>
+#include "JitCore.h"
+
+block_id Resolve_dst(uint64_t addr, uint64_t is_local)
+{
+	block_id b;
+	b.address = addr;
+	b.is_local = is_local;
+	return b;
+}
diff --git a/miasm2/jitter/arch/JitCore.h b/miasm2/jitter/arch/JitCore.h
index 2686cb46..723a10cc 100644
--- a/miasm2/jitter/arch/JitCore.h
+++ b/miasm2/jitter/arch/JitCore.h
@@ -64,3 +64,10 @@
 		return 0;						\
 	}
 
+
+typedef struct {
+	uint8_t is_local;
+	uint64_t address;
+} block_id;
+
+block_id Resolve_dst(uint64_t addr, uint64_t is_local);
diff --git a/miasm2/jitter/arch/JitCore_arm.h b/miasm2/jitter/arch/JitCore_arm.h
index e92db860..cf985ea7 100644
--- a/miasm2/jitter/arch/JitCore_arm.h
+++ b/miasm2/jitter/arch/JitCore_arm.h
@@ -144,4 +144,5 @@ typedef struct {
 
 
 
-#define RETURN_PC return PyLong_FromUnsignedLongLong(vmcpu->PC);
+//#define RETURN_PC return PyLong_FromUnsignedLongLong(vmcpu->PC);
+#define RETURN_PC return BlockDst;
diff --git a/miasm2/jitter/arch/JitCore_mips32.h b/miasm2/jitter/arch/JitCore_mips32.h
index 65666d88..ac128250 100644
--- a/miasm2/jitter/arch/JitCore_mips32.h
+++ b/miasm2/jitter/arch/JitCore_mips32.h
@@ -239,5 +239,5 @@ typedef struct {
 }vm_cpu_t;
 
 
-
-#define RETURN_PC return PyLong_FromUnsignedLongLong(vmcpu->PC);
+//#define RETURN_PC return PyLong_FromUnsignedLongLong(vmcpu->PC);
+#define RETURN_PC return BlockDst;
diff --git a/miasm2/jitter/arch/JitCore_msp430.h b/miasm2/jitter/arch/JitCore_msp430.h
index c65989b0..e1c001b7 100644
--- a/miasm2/jitter/arch/JitCore_msp430.h
+++ b/miasm2/jitter/arch/JitCore_msp430.h
@@ -156,7 +156,8 @@ typedef struct {
 
 }vm_cpu_t;
 
-#define RETURN_PC return PyLong_FromUnsignedLongLong(vmcpu->PC);
+//#define RETURN_PC return PyLong_FromUnsignedLongLong(vmcpu->PC);
+#define RETURN_PC return BlockDst;
 
 uint16_t bcdadd_16(uint16_t a, uint16_t b);
 
diff --git a/miasm2/jitter/arch/JitCore_x86.h b/miasm2/jitter/arch/JitCore_x86.h
index 5ed0feff..844c13c0 100644
--- a/miasm2/jitter/arch/JitCore_x86.h
+++ b/miasm2/jitter/arch/JitCore_x86.h
@@ -290,4 +290,5 @@ 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);
 
-#define RETURN_PC return PyLong_FromUnsignedLongLong(vmcpu->RIP);
+//#define RETURN_PC return PyLong_FromUnsignedLongLong(vmcpu->RIP);
+#define RETURN_PC return BlockDst;