about summary refs log tree commit diff stats
path: root/miasm2/jitter/vm_mngr.h
diff options
context:
space:
mode:
authorAjax <commial@gmail.com>2018-05-15 11:24:54 +0200
committerAjax <commial@gmail.com>2018-05-15 14:44:25 +0200
commit5b5f26d640c592ded711cd382d3d7f4c158f3f08 (patch)
tree237429f08c87348f51f0a9409fc7b049c76f3c38 /miasm2/jitter/vm_mngr.h
parent4dae0d5df51165d2c535f0812761dc6bdadfe88e (diff)
downloadmiasm-5b5f26d640c592ded711cd382d3d7f4c158f3f08.tar.gz
miasm-5b5f26d640c592ded711cd382d3d7f4c158f3f08.zip
Extract operation semantics from 'vm_mngr' to dedicated 'op_semantics'
Diffstat (limited to 'miasm2/jitter/vm_mngr.h')
-rw-r--r--miasm2/jitter/vm_mngr.h144
1 files changed, 2 insertions, 142 deletions
diff --git a/miasm2/jitter/vm_mngr.h b/miasm2/jitter/vm_mngr.h
index b101b6ca..eff5e0da 100644
--- a/miasm2/jitter/vm_mngr.h
+++ b/miasm2/jitter/vm_mngr.h
@@ -167,6 +167,8 @@ int is_mem_mapped(vm_mngr_t* vm_mngr, uint64_t ad);
 uint64_t get_mem_base_addr(vm_mngr_t* vm_mngr, uint64_t addr, uint64_t *addr_base);
 unsigned int MEM_LOOKUP(vm_mngr_t* vm_mngr, unsigned int my_size, uint64_t addr);
 
+int is_mapped(vm_mngr_t* vm_mngr, uint64_t addr, uint64_t size);
+void vm_throw(vm_mngr_t* vm_mngr, unsigned long flags);
 
 void vm_MEM_WRITE_08(vm_mngr_t* vm_mngr, uint64_t addr, unsigned char src);
 void vm_MEM_WRITE_16(vm_mngr_t* vm_mngr, uint64_t addr, unsigned short src);
@@ -192,88 +194,6 @@ uint64_t MEM_LOOKUP_64_PASSTHROUGH(uint64_t addr);
 int vm_read_mem(vm_mngr_t* vm_mngr, uint64_t addr, char** buffer_ptr, uint64_t size);
 int vm_write_mem(vm_mngr_t* vm_mngr, uint64_t addr, char *buffer, uint64_t size);
 
-#define CC_P 1
-
-extern const uint8_t parity_table[256];
-#define parity(a) parity_table[(a) & 0xFF]
-
-unsigned int my_imul08(unsigned int a, unsigned int b);
-
-int is_mapped(vm_mngr_t* vm_mngr, uint64_t addr, uint64_t size);
-void vm_throw(vm_mngr_t* vm_mngr, unsigned long flags);
-
-unsigned int mul_lo_op(unsigned int size, unsigned int a, unsigned int b);
-unsigned int mul_hi_op(unsigned int size, unsigned int a, unsigned int b);
-unsigned int imul_lo_op_08(char a, char b);
-unsigned int imul_lo_op_16(short a, short b);
-unsigned int imul_lo_op_32(int a, int b);
-int imul_hi_op_08(char a, char b);
-int imul_hi_op_16(short a, short b);
-int imul_hi_op_32(int a, int b);
-
-
-unsigned int umul16_lo(unsigned short a, unsigned short b);
-unsigned int umul16_hi(unsigned short a, unsigned short b);
-
-
-uint64_t rot_left(uint64_t size, uint64_t a, uint64_t b);
-uint64_t rot_right(uint64_t size, uint64_t a, uint64_t b);
-
-unsigned int cntleadzeros(uint64_t size, uint64_t src);
-unsigned int cnttrailzeros(uint64_t size, uint64_t src);
-
-#define UDIV(sizeA)						\
-	uint ## sizeA ## _t udiv ## sizeA (vm_cpu_t* vmcpu, uint ## sizeA ## _t a, uint ## sizeA ## _t b) \
-	{								\
-		uint ## sizeA ## _t r;					\
-		if (b == 0) {						\
-			fprintf(stderr, "Should not happen\n");		\
-			exit(EXIT_FAILURE);				\
-		}							\
-		r = a/b;						\
-		return r;						\
-	}
-
-
-#define UMOD(sizeA)						\
-	uint ## sizeA ## _t umod ## sizeA (vm_cpu_t* vmcpu, uint ## sizeA ## _t a, uint ## sizeA ## _t b) \
-	{								\
-		uint ## sizeA ## _t r;					\
-		if (b == 0) {						\
-			fprintf(stderr, "Should not happen\n");		\
-			exit(EXIT_FAILURE);				\
-		}							\
-		r = a%b;						\
-		return r;						\
-	}
-
-
-#define IDIV(sizeA)						\
-	int ## sizeA ## _t idiv ## sizeA (vm_cpu_t* vmcpu, int ## sizeA ## _t a, int ## sizeA ## _t b) \
-	{								\
-		int ## sizeA ## _t r;					\
-		if (b == 0) {						\
-			fprintf(stderr, "Should not happen\n");		\
-			exit(EXIT_FAILURE);				\
-		}							\
-		r = a/b;						\
-		return r;						\
-	}
-
-
-#define IMOD(sizeA)						\
-	int ## sizeA ## _t imod ## sizeA (vm_cpu_t* vmcpu, int ## sizeA ## _t a, int ## sizeA ## _t b) \
-	{								\
-		int ## sizeA ## _t r;					\
-		if (b == 0) {						\
-			fprintf(stderr, "Should not happen\n");		\
-			exit(EXIT_FAILURE);				\
-		}							\
-		r = a%b;						\
-		return r;						\
-	}
-
-
 void memory_access_list_init(struct memory_access_list * access);
 void memory_access_list_reset(struct memory_access_list * access);
 void memory_access_list_add(struct memory_access_list * access, uint64_t start, uint64_t stop);
@@ -351,48 +271,6 @@ void func_virtualfree_memory_page(void);
 void func_loadlib_fake(void);
 void func_getproc_fake(void);
 
-
-unsigned int cpuid(unsigned int a, unsigned int reg_num);
-double int2double(unsigned int m);
-
-double fpu_fadd(double a, double b);
-double fpu_fsub(double a, double b);
-double fpu_fmul(double a, double b);
-double fpu_fdiv(double a, double b);
-double fpu_ftan(double a);
-double fpu_frndint(double a);
-double fpu_fsin(double a);
-double fpu_fcos(double a);
-double fpu_fscale(double a, double b);
-double fpu_f2xm1(double a);
-double fpu_fsqrt(double a);
-double fpu_fabs(double a);
-double fpu_fprem(double a, double b);
-double fpu_fchs(double a);
-double fpu_fyl2x(double a, double b);
-double fpu_fpatan(double a, double b);
-unsigned int fpu_fprem_lsb(double a, double b);
-unsigned int fpu_fcom_c0(double a, double b);
-unsigned int fpu_fcom_c1(double a, double b);
-unsigned int fpu_fcom_c2(double a, double b);
-unsigned int fpu_fcom_c3(double a, double b);
-unsigned int fpu_fxam_c0(double a);
-unsigned int fpu_fxam_c1(double a);
-unsigned int fpu_fxam_c2(double a);
-unsigned int fpu_fxam_c3(double a);
-
-
-double mem_32_to_double(unsigned int m);
-double mem_64_to_double(uint64_t m);
-double int_16_to_double(unsigned int m);
-double int_32_to_double(unsigned int m);
-double int_64_to_double(uint64_t m);
-int16_t double_to_int_16(double d);
-int32_t double_to_int_32(double d);
-int64_t double_to_int_64(double d);
-unsigned int double_to_mem_32(double d);
-uint64_t double_to_mem_64(double d);
-
 unsigned int access_segment(unsigned int d);
 unsigned int access_segment_ok(unsigned int d);
 
@@ -401,22 +279,4 @@ unsigned int load_segment_limit_ok(unsigned int d);
 
 unsigned int load_tr_segment_selector(unsigned int d);
 
-
-#define SHIFT_RIGHT_ARITH(size, value, shift)				\
-	((uint ## size ## _t)((((uint64_t) (shift)) > ((size) - 1))?	\
-			      (((int ## size ## _t) (value)) < 0 ? -1 : 0) : \
-			      (((int ## size ## _t) (value)) >> (shift))))
-
-#define SHIFT_RIGHT_LOGIC(size, value, shift)				\
-	((uint ## size ## _t)((((uint64_t) (shift)) > ((size) - 1))?	\
-			      0 :					\
-			      (((uint ## size ## _t) (value)) >> (shift))))
-
-#define SHIFT_LEFT_LOGIC(size, value, shift)		\
-	((uint ## size ## _t)((((uint64_t) (shift)) > ((size) - 1))?	\
-			      0 :					\
-			      (((uint ## size ## _t) (value)) << (shift))))
-
-
-
 #endif