diff options
Diffstat (limited to 'miasm2/jitter/arch')
| -rw-r--r-- | miasm2/jitter/arch/JitCore.c | 10 | ||||
| -rw-r--r-- | miasm2/jitter/arch/JitCore.h | 7 | ||||
| -rw-r--r-- | miasm2/jitter/arch/JitCore_arm.h | 3 | ||||
| -rw-r--r-- | miasm2/jitter/arch/JitCore_mips32.h | 4 | ||||
| -rw-r--r-- | miasm2/jitter/arch/JitCore_msp430.h | 3 | ||||
| -rw-r--r-- | miasm2/jitter/arch/JitCore_x86.h | 3 |
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; |