Go to the source code of this file.
|
void | JitCpu_dealloc (JitCpu *self) |
|
PyObject * | JitCpu_new (PyTypeObject *type, PyObject *args, PyObject *kwds) |
|
PyObject * | JitCpu_get_vmmngr (JitCpu *self, void *closure) |
|
PyObject * | JitCpu_set_vmmngr (JitCpu *self, PyObject *value, void *closure) |
|
PyObject * | JitCpu_get_jitter (JitCpu *self, void *closure) |
|
PyObject * | JitCpu_set_jitter (JitCpu *self, PyObject *value, void *closure) |
|
void | Resolve_dst (block_id *BlockDst, uint64_t addr, uint64_t is_local) |
|
uint8_t | MEM_LOOKUP_08 (JitCpu *jitcpu, uint64_t addr) |
|
uint16_t | MEM_LOOKUP_16 (JitCpu *jitcpu, uint64_t addr) |
|
uint32_t | MEM_LOOKUP_32 (JitCpu *jitcpu, uint64_t addr) |
|
uint64_t | MEM_LOOKUP_64 (JitCpu *jitcpu, uint64_t addr) |
|
void | MEM_WRITE_08 (JitCpu *jitcpu, uint64_t addr, uint8_t src) |
|
void | MEM_WRITE_16 (JitCpu *jitcpu, uint64_t addr, uint16_t src) |
|
void | MEM_WRITE_32 (JitCpu *jitcpu, uint64_t addr, uint32_t src) |
|
void | MEM_WRITE_64 (JitCpu *jitcpu, uint64_t addr, uint64_t src) |
|
PyObject * | vm_get_mem (JitCpu *self, PyObject *args) |
|
#define CPU_exception_flag (((vm_cpu_t*)jitcpu->cpu)->exception_flags) |
Value:
o = PyLong_FromUnsignedLongLong((uint64_t)((
vm_cpu_t*)(self->cpu))->reg); \
PyDict_SetItemString(dict, #
reg,
o); \
} while(0);
Definition at line 74 of file JitCore.h.
#define get_reg_off |
( |
|
reg | ) |
|
Value:
o = PyLong_FromUnsignedLongLong((uint64_t)offsetof(
vm_cpu_t,
reg)); \
PyDict_SetItemString(dict, #
reg,
o); \
} while(0);
Definition at line 81 of file JitCore.h.
#define getset_reg_u16 |
( |
|
regname | ) |
|
Value:static PyObject *JitCpu_get_ ## regname (
JitCpu *
self,
void *closure) \
{ \
return PyLong_FromUnsignedLongLong((uint16_t)(((
vm_cpu_t*)(self->cpu))-> regname )); \
} \
static
int JitCpu_set_ ## regname (
JitCpu *
self, PyObject *value,
void *closure) \
{ \
((
vm_cpu_t*)(self->cpu))-> regname = val; \
return 0; \
}
#define PyGetInt_ret0(item, value)
Definition at line 60 of file JitCore.h.
#define getset_reg_u32 |
( |
|
regname | ) |
|
Value:static PyObject *JitCpu_get_ ## regname (
JitCpu *
self,
void *closure) \
{ \
return PyLong_FromUnsignedLongLong((uint32_t)(((
vm_cpu_t*)(self->cpu))-> regname )); \
} \
static
int JitCpu_set_ ## regname (
JitCpu *
self, PyObject *value,
void *closure) \
{ \
((
vm_cpu_t*)(self->cpu))-> regname = val; \
return 0; \
}
#define PyGetInt_ret0(item, value)
Definition at line 46 of file JitCore.h.
#define getset_reg_u64 |
( |
|
regname | ) |
|
Value:static PyObject *JitCpu_get_ ## regname (
JitCpu *
self,
void *closure) \
{ \
return PyLong_FromUnsignedLongLong((uint64_t)(((
vm_cpu_t*)(self->cpu))-> regname )); \
} \
static
int JitCpu_set_ ## regname (
JitCpu *
self, PyObject *value,
void *closure) \
{ \
((
vm_cpu_t*)(self->cpu))-> regname = val; \
return 0; \
}
#define PyGetInt_ret0(item, value)
Definition at line 33 of file JitCore.h.
#define JIT_RET_EXCEPTION 1 |
#define JIT_RET_NO_EXCEPTION 0 |
#define PyGetInt |
( |
|
item, |
|
|
|
value |
|
) |
| |
Value:if (PyInt_Check(item)){ \
value = (uint64_t)PyInt_AsLong(item); \
} \
else if (PyLong_Check(item)){ \
value = (uint64_t)PyLong_AsUnsignedLongLong(item); \
} \
RAISE(PyExc_TypeError,
"arg must be int"); \
} \
#define RAISE(errtype, msg)
Definition at line 8 of file JitCore.h.
#define PyGetInt_ret0 |
( |
|
item, |
|
|
|
value |
|
) |
| |
Value:if (PyInt_Check(item)){ \
value = (uint64_t)PyInt_AsLong(item); \
} \
else if (PyLong_Check(item)){ \
value = (uint64_t)PyLong_AsUnsignedLongLong(item); \
} \
else{ \
printf("error\n"); return 0; \
} \
Definition at line 20 of file JitCore.h.
#define RAISE |
( |
|
errtype, |
|
|
|
msg |
|
) |
| {PyObject* p; p = PyErr_Format( errtype, msg ); return p;} |
#define RAISE_ret0 |
( |
|
errtype, |
|
|
|
msg |
|
) |
| {PyObject* p; p = PyErr_Format( errtype, msg ); return 0;} |
#define VM_exception_flag (((VmMngr*)jitcpu->pyvm)->vm_mngr.exception_flags) |
void JitCpu_dealloc |
( |
JitCpu * |
self | ) |
|
Definition at line 11 of file JitCore.c.
13 self->ob_type->tp_free((PyObject*)
self);
PyObject* JitCpu_get_jitter |
( |
JitCpu * |
self, |
|
|
void * |
closure |
|
) |
| |
PyObject* JitCpu_get_vmmngr |
( |
JitCpu * |
self, |
|
|
void * |
closure |
|
) |
| |
Definition at line 25 of file JitCore.c.
28 Py_INCREF(self->
pyvm);
PyObject_HEAD PyObject * pyvm
PyObject* JitCpu_new |
( |
PyTypeObject * |
type, |
|
|
PyObject * |
args, |
|
|
PyObject * |
kwds |
|
) |
| |
Definition at line 17 of file JitCore.c.
22 return (PyObject *)
self;
PyObject* JitCpu_set_jitter |
( |
JitCpu * |
self, |
|
|
PyObject * |
value, |
|
|
void * |
closure |
|
) |
| |
PyObject* JitCpu_set_vmmngr |
( |
JitCpu * |
self, |
|
|
PyObject * |
value, |
|
|
void * |
closure |
|
) |
| |
uint8_t MEM_LOOKUP_08 |
( |
JitCpu * |
jitcpu, |
|
|
uint64_t |
addr |
|
) |
| |
uint16_t MEM_LOOKUP_16 |
( |
JitCpu * |
jitcpu, |
|
|
uint64_t |
addr |
|
) |
| |
uint32_t MEM_LOOKUP_32 |
( |
JitCpu * |
jitcpu, |
|
|
uint64_t |
addr |
|
) |
| |
uint64_t MEM_LOOKUP_64 |
( |
JitCpu * |
jitcpu, |
|
|
uint64_t |
addr |
|
) |
| |
void MEM_WRITE_08 |
( |
JitCpu * |
jitcpu, |
|
|
uint64_t |
addr, |
|
|
uint8_t |
src |
|
) |
| |
Definition at line 226 of file JitCore_aarch64.c.
PyObject_HEAD PyObject * pyvm
void vm_MEM_WRITE_08(vm_mngr_t *vm_mngr, uint64_t addr, unsigned char src)
void check_automod(JitCpu *jitcpu, uint64_t addr, uint64_t size)
void MEM_WRITE_16 |
( |
JitCpu * |
jitcpu, |
|
|
uint64_t |
addr, |
|
|
uint16_t |
src |
|
) |
| |
Definition at line 232 of file JitCore_aarch64.c.
void vm_MEM_WRITE_16(vm_mngr_t *vm_mngr, uint64_t addr, unsigned short src)
PyObject_HEAD PyObject * pyvm
void check_automod(JitCpu *jitcpu, uint64_t addr, uint64_t size)
void MEM_WRITE_32 |
( |
JitCpu * |
jitcpu, |
|
|
uint64_t |
addr, |
|
|
uint32_t |
src |
|
) |
| |
Definition at line 238 of file JitCore_aarch64.c.
PyObject_HEAD PyObject * pyvm
void check_automod(JitCpu *jitcpu, uint64_t addr, uint64_t size)
void vm_MEM_WRITE_32(vm_mngr_t *vm_mngr, uint64_t addr, unsigned int src)
void MEM_WRITE_64 |
( |
JitCpu * |
jitcpu, |
|
|
uint64_t |
addr, |
|
|
uint64_t |
src |
|
) |
| |
Definition at line 244 of file JitCore_aarch64.c.
void vm_MEM_WRITE_64(vm_mngr_t *vm_mngr, uint64_t addr, uint64_t src)
PyObject_HEAD PyObject * pyvm
void check_automod(JitCpu *jitcpu, uint64_t addr, uint64_t size)
void Resolve_dst |
( |
block_id * |
BlockDst, |
|
|
uint64_t |
addr, |
|
|
uint64_t |
is_local |
|
) |
| |
Definition at line 58 of file JitCore.c.
61 b->is_local = is_local;
PyObject* vm_get_mem |
( |
JitCpu * |
self, |
|
|
PyObject * |
args |
|
) |
| |