diff options
| -rw-r--r-- | miasm2/jitter/arch/JitCore_aarch64.c | 131 | ||||
| -rw-r--r-- | miasm2/jitter/arch/JitCore_aarch64.h | 131 | ||||
| -rw-r--r-- | miasm2/jitter/arch/JitCore_arm.c | 112 | ||||
| -rw-r--r-- | miasm2/jitter/arch/JitCore_arm.h | 111 | ||||
| -rw-r--r-- | miasm2/jitter/arch/JitCore_mips32.c | 127 | ||||
| -rw-r--r-- | miasm2/jitter/arch/JitCore_mips32.h | 418 | ||||
| -rw-r--r-- | miasm2/jitter/arch/JitCore_msp430.c | 110 | ||||
| -rw-r--r-- | miasm2/jitter/arch/JitCore_msp430.h | 120 | ||||
| -rw-r--r-- | miasm2/jitter/arch/JitCore_x86.c | 140 | ||||
| -rw-r--r-- | miasm2/jitter/arch/JitCore_x86.h | 171 | ||||
| -rw-r--r-- | miasm2/jitter/codegen.py | 78 |
11 files changed, 45 insertions, 1604 deletions
diff --git a/miasm2/jitter/arch/JitCore_aarch64.c b/miasm2/jitter/arch/JitCore_aarch64.c index 28661bfe..46b5b25c 100644 --- a/miasm2/jitter/arch/JitCore_aarch64.c +++ b/miasm2/jitter/arch/JitCore_aarch64.c @@ -386,7 +386,6 @@ PyObject* get_gpreg_offset_all(void) PyObject *o; get_reg_off(exception_flags); - get_reg_off(exception_flags_new); get_reg_off(X0); get_reg_off(X1); @@ -422,142 +421,12 @@ PyObject* get_gpreg_offset_all(void) get_reg_off(SP); get_reg_off(PC); - - get_reg_off(X0_new); - get_reg_off(X1_new); - get_reg_off(X2_new); - get_reg_off(X3_new); - get_reg_off(X4_new); - get_reg_off(X5_new); - get_reg_off(X6_new); - get_reg_off(X7_new); - get_reg_off(X8_new); - get_reg_off(X9_new); - get_reg_off(X10_new); - get_reg_off(X11_new); - get_reg_off(X12_new); - get_reg_off(X13_new); - get_reg_off(X14_new); - get_reg_off(X15_new); - get_reg_off(X16_new); - get_reg_off(X17_new); - get_reg_off(X18_new); - get_reg_off(X19_new); - get_reg_off(X20_new); - get_reg_off(X21_new); - get_reg_off(X22_new); - get_reg_off(X23_new); - get_reg_off(X24_new); - get_reg_off(X25_new); - get_reg_off(X26_new); - get_reg_off(X27_new); - get_reg_off(X28_new); - get_reg_off(X29_new); - get_reg_off(LR_new); - get_reg_off(SP_new); - get_reg_off(PC_new); - - - /* eflag */ get_reg_off(zf); get_reg_off(nf); get_reg_off(of); get_reg_off(cf); - get_reg_off(zf_new); - get_reg_off(nf_new); - get_reg_off(of_new); - get_reg_off(cf_new); - - - get_reg_off(pfmem08_0); - get_reg_off(pfmem08_1); - get_reg_off(pfmem08_2); - get_reg_off(pfmem08_3); - get_reg_off(pfmem08_4); - get_reg_off(pfmem08_5); - get_reg_off(pfmem08_6); - get_reg_off(pfmem08_7); - get_reg_off(pfmem08_8); - get_reg_off(pfmem08_9); - get_reg_off(pfmem08_10); - get_reg_off(pfmem08_11); - get_reg_off(pfmem08_12); - get_reg_off(pfmem08_13); - get_reg_off(pfmem08_14); - get_reg_off(pfmem08_15); - get_reg_off(pfmem08_16); - get_reg_off(pfmem08_17); - get_reg_off(pfmem08_18); - get_reg_off(pfmem08_19); - - - get_reg_off(pfmem16_0); - get_reg_off(pfmem16_1); - get_reg_off(pfmem16_2); - get_reg_off(pfmem16_3); - get_reg_off(pfmem16_4); - get_reg_off(pfmem16_5); - get_reg_off(pfmem16_6); - get_reg_off(pfmem16_7); - get_reg_off(pfmem16_8); - get_reg_off(pfmem16_9); - get_reg_off(pfmem16_10); - get_reg_off(pfmem16_11); - get_reg_off(pfmem16_12); - get_reg_off(pfmem16_13); - get_reg_off(pfmem16_14); - get_reg_off(pfmem16_15); - get_reg_off(pfmem16_16); - get_reg_off(pfmem16_17); - get_reg_off(pfmem16_18); - get_reg_off(pfmem16_19); - - - get_reg_off(pfmem32_0); - get_reg_off(pfmem32_1); - get_reg_off(pfmem32_2); - get_reg_off(pfmem32_3); - get_reg_off(pfmem32_4); - get_reg_off(pfmem32_5); - get_reg_off(pfmem32_6); - get_reg_off(pfmem32_7); - get_reg_off(pfmem32_8); - get_reg_off(pfmem32_9); - get_reg_off(pfmem32_10); - get_reg_off(pfmem32_11); - get_reg_off(pfmem32_12); - get_reg_off(pfmem32_13); - get_reg_off(pfmem32_14); - get_reg_off(pfmem32_15); - get_reg_off(pfmem32_16); - get_reg_off(pfmem32_17); - get_reg_off(pfmem32_18); - get_reg_off(pfmem32_19); - - - get_reg_off(pfmem64_0); - get_reg_off(pfmem64_1); - get_reg_off(pfmem64_2); - get_reg_off(pfmem64_3); - get_reg_off(pfmem64_4); - get_reg_off(pfmem64_5); - get_reg_off(pfmem64_6); - get_reg_off(pfmem64_7); - get_reg_off(pfmem64_8); - get_reg_off(pfmem64_9); - get_reg_off(pfmem64_10); - get_reg_off(pfmem64_11); - get_reg_off(pfmem64_12); - get_reg_off(pfmem64_13); - get_reg_off(pfmem64_14); - get_reg_off(pfmem64_15); - get_reg_off(pfmem64_16); - get_reg_off(pfmem64_17); - get_reg_off(pfmem64_18); - get_reg_off(pfmem64_19); - return dict; } diff --git a/miasm2/jitter/arch/JitCore_aarch64.h b/miasm2/jitter/arch/JitCore_aarch64.h index e1708541..2203e037 100644 --- a/miasm2/jitter/arch/JitCore_aarch64.h +++ b/miasm2/jitter/arch/JitCore_aarch64.h @@ -1,7 +1,6 @@ typedef struct { uint32_t exception_flags; - uint32_t exception_flags_new; /* gpregs */ @@ -40,141 +39,11 @@ typedef struct { uint64_t PC; - - uint64_t X0_new; - uint64_t X1_new; - uint64_t X2_new; - uint64_t X3_new; - uint64_t X4_new; - uint64_t X5_new; - uint64_t X6_new; - uint64_t X7_new; - uint64_t X8_new; - uint64_t X9_new; - uint64_t X10_new; - uint64_t X11_new; - uint64_t X12_new; - uint64_t X13_new; - uint64_t X14_new; - uint64_t X15_new; - uint64_t X16_new; - uint64_t X17_new; - uint64_t X18_new; - uint64_t X19_new; - uint64_t X20_new; - uint64_t X21_new; - uint64_t X22_new; - uint64_t X23_new; - uint64_t X24_new; - uint64_t X25_new; - uint64_t X26_new; - uint64_t X27_new; - uint64_t X28_new; - uint64_t X29_new; - uint64_t LR_new; - uint64_t SP_new; - - uint64_t PC_new; - /* eflag */ uint32_t zf; uint32_t nf; uint32_t of; uint32_t cf; - - uint32_t zf_new; - uint32_t nf_new; - uint32_t of_new; - uint32_t cf_new; - - - uint8_t pfmem08_0; - uint8_t pfmem08_1; - uint8_t pfmem08_2; - uint8_t pfmem08_3; - uint8_t pfmem08_4; - uint8_t pfmem08_5; - uint8_t pfmem08_6; - uint8_t pfmem08_7; - uint8_t pfmem08_8; - uint8_t pfmem08_9; - uint8_t pfmem08_10; - uint8_t pfmem08_11; - uint8_t pfmem08_12; - uint8_t pfmem08_13; - uint8_t pfmem08_14; - uint8_t pfmem08_15; - uint8_t pfmem08_16; - uint8_t pfmem08_17; - uint8_t pfmem08_18; - uint8_t pfmem08_19; - - - uint16_t pfmem16_0; - uint16_t pfmem16_1; - uint16_t pfmem16_2; - uint16_t pfmem16_3; - uint16_t pfmem16_4; - uint16_t pfmem16_5; - uint16_t pfmem16_6; - uint16_t pfmem16_7; - uint16_t pfmem16_8; - uint16_t pfmem16_9; - uint16_t pfmem16_10; - uint16_t pfmem16_11; - uint16_t pfmem16_12; - uint16_t pfmem16_13; - uint16_t pfmem16_14; - uint16_t pfmem16_15; - uint16_t pfmem16_16; - uint16_t pfmem16_17; - uint16_t pfmem16_18; - uint16_t pfmem16_19; - - - uint32_t pfmem32_0; - uint32_t pfmem32_1; - uint32_t pfmem32_2; - uint32_t pfmem32_3; - uint32_t pfmem32_4; - uint32_t pfmem32_5; - uint32_t pfmem32_6; - uint32_t pfmem32_7; - uint32_t pfmem32_8; - uint32_t pfmem32_9; - uint32_t pfmem32_10; - uint32_t pfmem32_11; - uint32_t pfmem32_12; - uint32_t pfmem32_13; - uint32_t pfmem32_14; - uint32_t pfmem32_15; - uint32_t pfmem32_16; - uint32_t pfmem32_17; - uint32_t pfmem32_18; - uint32_t pfmem32_19; - - - uint64_t pfmem64_0; - uint64_t pfmem64_1; - uint64_t pfmem64_2; - uint64_t pfmem64_3; - uint64_t pfmem64_4; - uint64_t pfmem64_5; - uint64_t pfmem64_6; - uint64_t pfmem64_7; - uint64_t pfmem64_8; - uint64_t pfmem64_9; - uint64_t pfmem64_10; - uint64_t pfmem64_11; - uint64_t pfmem64_12; - uint64_t pfmem64_13; - uint64_t pfmem64_14; - uint64_t pfmem64_15; - uint64_t pfmem64_16; - uint64_t pfmem64_17; - uint64_t pfmem64_18; - uint64_t pfmem64_19; - }vm_cpu_t; diff --git a/miasm2/jitter/arch/JitCore_arm.c b/miasm2/jitter/arch/JitCore_arm.c index b2550194..b3a93aca 100644 --- a/miasm2/jitter/arch/JitCore_arm.c +++ b/miasm2/jitter/arch/JitCore_arm.c @@ -300,8 +300,6 @@ PyObject* get_gpreg_offset_all(void) PyObject *o; get_reg_off(exception_flags); - get_reg_off(exception_flags_new); - get_reg_off(R0); get_reg_off(R1); @@ -320,122 +318,12 @@ PyObject* get_gpreg_offset_all(void) get_reg_off(LR); get_reg_off(PC); - get_reg_off(R0_new); - get_reg_off(R1_new); - get_reg_off(R2_new); - get_reg_off(R3_new); - get_reg_off(R4_new); - get_reg_off(R5_new); - get_reg_off(R6_new); - get_reg_off(R7_new); - get_reg_off(R8_new); - get_reg_off(R9_new); - get_reg_off(R10_new); - get_reg_off(R11_new); - get_reg_off(R12_new); - get_reg_off(SP_new); - get_reg_off(LR_new); - get_reg_off(PC_new); - /* eflag */ get_reg_off(zf); get_reg_off(nf); get_reg_off(of); get_reg_off(cf); - get_reg_off(zf_new); - get_reg_off(nf_new); - get_reg_off(of_new); - get_reg_off(cf_new); - - - get_reg_off(pfmem08_0); - get_reg_off(pfmem08_1); - get_reg_off(pfmem08_2); - get_reg_off(pfmem08_3); - get_reg_off(pfmem08_4); - get_reg_off(pfmem08_5); - get_reg_off(pfmem08_6); - get_reg_off(pfmem08_7); - get_reg_off(pfmem08_8); - get_reg_off(pfmem08_9); - get_reg_off(pfmem08_10); - get_reg_off(pfmem08_11); - get_reg_off(pfmem08_12); - get_reg_off(pfmem08_13); - get_reg_off(pfmem08_14); - get_reg_off(pfmem08_15); - get_reg_off(pfmem08_16); - get_reg_off(pfmem08_17); - get_reg_off(pfmem08_18); - get_reg_off(pfmem08_19); - - - get_reg_off(pfmem16_0); - get_reg_off(pfmem16_1); - get_reg_off(pfmem16_2); - get_reg_off(pfmem16_3); - get_reg_off(pfmem16_4); - get_reg_off(pfmem16_5); - get_reg_off(pfmem16_6); - get_reg_off(pfmem16_7); - get_reg_off(pfmem16_8); - get_reg_off(pfmem16_9); - get_reg_off(pfmem16_10); - get_reg_off(pfmem16_11); - get_reg_off(pfmem16_12); - get_reg_off(pfmem16_13); - get_reg_off(pfmem16_14); - get_reg_off(pfmem16_15); - get_reg_off(pfmem16_16); - get_reg_off(pfmem16_17); - get_reg_off(pfmem16_18); - get_reg_off(pfmem16_19); - - - get_reg_off(pfmem32_0); - get_reg_off(pfmem32_1); - get_reg_off(pfmem32_2); - get_reg_off(pfmem32_3); - get_reg_off(pfmem32_4); - get_reg_off(pfmem32_5); - get_reg_off(pfmem32_6); - get_reg_off(pfmem32_7); - get_reg_off(pfmem32_8); - get_reg_off(pfmem32_9); - get_reg_off(pfmem32_10); - get_reg_off(pfmem32_11); - get_reg_off(pfmem32_12); - get_reg_off(pfmem32_13); - get_reg_off(pfmem32_14); - get_reg_off(pfmem32_15); - get_reg_off(pfmem32_16); - get_reg_off(pfmem32_17); - get_reg_off(pfmem32_18); - get_reg_off(pfmem32_19); - - - get_reg_off(pfmem64_0); - get_reg_off(pfmem64_1); - get_reg_off(pfmem64_2); - get_reg_off(pfmem64_3); - get_reg_off(pfmem64_4); - get_reg_off(pfmem64_5); - get_reg_off(pfmem64_6); - get_reg_off(pfmem64_7); - get_reg_off(pfmem64_8); - get_reg_off(pfmem64_9); - get_reg_off(pfmem64_10); - get_reg_off(pfmem64_11); - get_reg_off(pfmem64_12); - get_reg_off(pfmem64_13); - get_reg_off(pfmem64_14); - get_reg_off(pfmem64_15); - get_reg_off(pfmem64_16); - get_reg_off(pfmem64_17); - get_reg_off(pfmem64_18); - get_reg_off(pfmem64_19); - return dict; } diff --git a/miasm2/jitter/arch/JitCore_arm.h b/miasm2/jitter/arch/JitCore_arm.h index dde112ef..976ff124 100644 --- a/miasm2/jitter/arch/JitCore_arm.h +++ b/miasm2/jitter/arch/JitCore_arm.h @@ -1,7 +1,6 @@ typedef struct { uint32_t exception_flags; - uint32_t exception_flags_new; /* gpregs */ uint32_t R0; @@ -21,122 +20,12 @@ typedef struct { uint32_t LR; uint32_t PC; - uint32_t R0_new; - uint32_t R1_new; - uint32_t R2_new; - uint32_t R3_new; - uint32_t R4_new; - uint32_t R5_new; - uint32_t R6_new; - uint32_t R7_new; - uint32_t R8_new; - uint32_t R9_new; - uint32_t R10_new; - uint32_t R11_new; - uint32_t R12_new; - uint32_t SP_new; - uint32_t LR_new; - uint32_t PC_new; - /* eflag */ uint32_t zf; uint32_t nf; uint32_t of; uint32_t cf; - uint32_t zf_new; - uint32_t nf_new; - uint32_t of_new; - uint32_t cf_new; - - - uint8_t pfmem08_0; - uint8_t pfmem08_1; - uint8_t pfmem08_2; - uint8_t pfmem08_3; - uint8_t pfmem08_4; - uint8_t pfmem08_5; - uint8_t pfmem08_6; - uint8_t pfmem08_7; - uint8_t pfmem08_8; - uint8_t pfmem08_9; - uint8_t pfmem08_10; - uint8_t pfmem08_11; - uint8_t pfmem08_12; - uint8_t pfmem08_13; - uint8_t pfmem08_14; - uint8_t pfmem08_15; - uint8_t pfmem08_16; - uint8_t pfmem08_17; - uint8_t pfmem08_18; - uint8_t pfmem08_19; - - - uint16_t pfmem16_0; - uint16_t pfmem16_1; - uint16_t pfmem16_2; - uint16_t pfmem16_3; - uint16_t pfmem16_4; - uint16_t pfmem16_5; - uint16_t pfmem16_6; - uint16_t pfmem16_7; - uint16_t pfmem16_8; - uint16_t pfmem16_9; - uint16_t pfmem16_10; - uint16_t pfmem16_11; - uint16_t pfmem16_12; - uint16_t pfmem16_13; - uint16_t pfmem16_14; - uint16_t pfmem16_15; - uint16_t pfmem16_16; - uint16_t pfmem16_17; - uint16_t pfmem16_18; - uint16_t pfmem16_19; - - - uint32_t pfmem32_0; - uint32_t pfmem32_1; - uint32_t pfmem32_2; - uint32_t pfmem32_3; - uint32_t pfmem32_4; - uint32_t pfmem32_5; - uint32_t pfmem32_6; - uint32_t pfmem32_7; - uint32_t pfmem32_8; - uint32_t pfmem32_9; - uint32_t pfmem32_10; - uint32_t pfmem32_11; - uint32_t pfmem32_12; - uint32_t pfmem32_13; - uint32_t pfmem32_14; - uint32_t pfmem32_15; - uint32_t pfmem32_16; - uint32_t pfmem32_17; - uint32_t pfmem32_18; - uint32_t pfmem32_19; - - - uint64_t pfmem64_0; - uint64_t pfmem64_1; - uint64_t pfmem64_2; - uint64_t pfmem64_3; - uint64_t pfmem64_4; - uint64_t pfmem64_5; - uint64_t pfmem64_6; - uint64_t pfmem64_7; - uint64_t pfmem64_8; - uint64_t pfmem64_9; - uint64_t pfmem64_10; - uint64_t pfmem64_11; - uint64_t pfmem64_12; - uint64_t pfmem64_13; - uint64_t pfmem64_14; - uint64_t pfmem64_15; - uint64_t pfmem64_16; - uint64_t pfmem64_17; - uint64_t pfmem64_18; - uint64_t pfmem64_19; - }vm_cpu_t; diff --git a/miasm2/jitter/arch/JitCore_mips32.c b/miasm2/jitter/arch/JitCore_mips32.c index c8f8fb81..86624b76 100644 --- a/miasm2/jitter/arch/JitCore_mips32.c +++ b/miasm2/jitter/arch/JitCore_mips32.c @@ -356,7 +356,6 @@ PyObject* get_gpreg_offset_all(void) PyObject *o; get_reg_off(exception_flags); - get_reg_off(exception_flags_new); get_reg_off(ZERO); @@ -396,132 +395,6 @@ PyObject* get_gpreg_offset_all(void) get_reg_off(R_LO); get_reg_off(R_HI); - get_reg_off(ZERO_new); - get_reg_off(AT_new); - get_reg_off(V0_new); - get_reg_off(V1_new); - get_reg_off(A0_new); - get_reg_off(A1_new); - get_reg_off(A2_new); - get_reg_off(A3_new); - get_reg_off(T0_new); - get_reg_off(T1_new); - get_reg_off(T2_new); - get_reg_off(T3_new); - get_reg_off(T4_new); - get_reg_off(T5_new); - get_reg_off(T6_new); - get_reg_off(T7_new); - get_reg_off(S0_new); - get_reg_off(S1_new); - get_reg_off(S2_new); - get_reg_off(S3_new); - get_reg_off(S4_new); - get_reg_off(S5_new); - get_reg_off(S6_new); - get_reg_off(S7_new); - get_reg_off(T8_new); - get_reg_off(T9_new); - get_reg_off(K0_new); - get_reg_off(K1_new); - get_reg_off(GP_new); - get_reg_off(SP_new); - get_reg_off(FP_new); - get_reg_off(RA_new); - get_reg_off(PC_new); - get_reg_off(PC_FETCH_new); - get_reg_off(R_LO_new); - get_reg_off(R_HI_new); - - - - get_reg_off(pfmem08_0); - get_reg_off(pfmem08_1); - get_reg_off(pfmem08_2); - get_reg_off(pfmem08_3); - get_reg_off(pfmem08_4); - get_reg_off(pfmem08_5); - get_reg_off(pfmem08_6); - get_reg_off(pfmem08_7); - get_reg_off(pfmem08_8); - get_reg_off(pfmem08_9); - get_reg_off(pfmem08_10); - get_reg_off(pfmem08_11); - get_reg_off(pfmem08_12); - get_reg_off(pfmem08_13); - get_reg_off(pfmem08_14); - get_reg_off(pfmem08_15); - get_reg_off(pfmem08_16); - get_reg_off(pfmem08_17); - get_reg_off(pfmem08_18); - get_reg_off(pfmem08_19); - - - get_reg_off(pfmem16_0); - get_reg_off(pfmem16_1); - get_reg_off(pfmem16_2); - get_reg_off(pfmem16_3); - get_reg_off(pfmem16_4); - get_reg_off(pfmem16_5); - get_reg_off(pfmem16_6); - get_reg_off(pfmem16_7); - get_reg_off(pfmem16_8); - get_reg_off(pfmem16_9); - get_reg_off(pfmem16_10); - get_reg_off(pfmem16_11); - get_reg_off(pfmem16_12); - get_reg_off(pfmem16_13); - get_reg_off(pfmem16_14); - get_reg_off(pfmem16_15); - get_reg_off(pfmem16_16); - get_reg_off(pfmem16_17); - get_reg_off(pfmem16_18); - get_reg_off(pfmem16_19); - - - get_reg_off(pfmem32_0); - get_reg_off(pfmem32_1); - get_reg_off(pfmem32_2); - get_reg_off(pfmem32_3); - get_reg_off(pfmem32_4); - get_reg_off(pfmem32_5); - get_reg_off(pfmem32_6); - get_reg_off(pfmem32_7); - get_reg_off(pfmem32_8); - get_reg_off(pfmem32_9); - get_reg_off(pfmem32_10); - get_reg_off(pfmem32_11); - get_reg_off(pfmem32_12); - get_reg_off(pfmem32_13); - get_reg_off(pfmem32_14); - get_reg_off(pfmem32_15); - get_reg_off(pfmem32_16); - get_reg_off(pfmem32_17); - get_reg_off(pfmem32_18); - get_reg_off(pfmem32_19); - - - get_reg_off(pfmem64_0); - get_reg_off(pfmem64_1); - get_reg_off(pfmem64_2); - get_reg_off(pfmem64_3); - get_reg_off(pfmem64_4); - get_reg_off(pfmem64_5); - get_reg_off(pfmem64_6); - get_reg_off(pfmem64_7); - get_reg_off(pfmem64_8); - get_reg_off(pfmem64_9); - get_reg_off(pfmem64_10); - get_reg_off(pfmem64_11); - get_reg_off(pfmem64_12); - get_reg_off(pfmem64_13); - get_reg_off(pfmem64_14); - get_reg_off(pfmem64_15); - get_reg_off(pfmem64_16); - get_reg_off(pfmem64_17); - get_reg_off(pfmem64_18); - get_reg_off(pfmem64_19); - return dict; } diff --git a/miasm2/jitter/arch/JitCore_mips32.h b/miasm2/jitter/arch/JitCore_mips32.h index c257b63c..55c63d3b 100644 --- a/miasm2/jitter/arch/JitCore_mips32.h +++ b/miasm2/jitter/arch/JitCore_mips32.h @@ -1,7 +1,6 @@ typedef struct { uint32_t exception_flags; - uint32_t exception_flags_new; /* gpregs */ @@ -42,132 +41,6 @@ typedef struct { uint32_t R_LO; uint32_t R_HI; - uint32_t ZERO_new; - uint32_t AT_new; - uint32_t V0_new; - uint32_t V1_new; - uint32_t A0_new; - uint32_t A1_new; - uint32_t A2_new; - uint32_t A3_new; - uint32_t T0_new; - uint32_t T1_new; - uint32_t T2_new; - uint32_t T3_new; - uint32_t T4_new; - uint32_t T5_new; - uint32_t T6_new; - uint32_t T7_new; - uint32_t S0_new; - uint32_t S1_new; - uint32_t S2_new; - uint32_t S3_new; - uint32_t S4_new; - uint32_t S5_new; - uint32_t S6_new; - uint32_t S7_new; - uint32_t T8_new; - uint32_t T9_new; - uint32_t K0_new; - uint32_t K1_new; - uint32_t GP_new; - uint32_t SP_new; - uint32_t FP_new; - uint32_t RA_new; - uint32_t PC_new; - uint32_t PC_FETCH_new; - uint32_t R_LO_new; - uint32_t R_HI_new; - - - - uint8_t pfmem08_0; - uint8_t pfmem08_1; - uint8_t pfmem08_2; - uint8_t pfmem08_3; - uint8_t pfmem08_4; - uint8_t pfmem08_5; - uint8_t pfmem08_6; - uint8_t pfmem08_7; - uint8_t pfmem08_8; - uint8_t pfmem08_9; - uint8_t pfmem08_10; - uint8_t pfmem08_11; - uint8_t pfmem08_12; - uint8_t pfmem08_13; - uint8_t pfmem08_14; - uint8_t pfmem08_15; - uint8_t pfmem08_16; - uint8_t pfmem08_17; - uint8_t pfmem08_18; - uint8_t pfmem08_19; - - - uint16_t pfmem16_0; - uint16_t pfmem16_1; - uint16_t pfmem16_2; - uint16_t pfmem16_3; - uint16_t pfmem16_4; - uint16_t pfmem16_5; - uint16_t pfmem16_6; - uint16_t pfmem16_7; - uint16_t pfmem16_8; - uint16_t pfmem16_9; - uint16_t pfmem16_10; - uint16_t pfmem16_11; - uint16_t pfmem16_12; - uint16_t pfmem16_13; - uint16_t pfmem16_14; - uint16_t pfmem16_15; - uint16_t pfmem16_16; - uint16_t pfmem16_17; - uint16_t pfmem16_18; - uint16_t pfmem16_19; - - - uint32_t pfmem32_0; - uint32_t pfmem32_1; - uint32_t pfmem32_2; - uint32_t pfmem32_3; - uint32_t pfmem32_4; - uint32_t pfmem32_5; - uint32_t pfmem32_6; - uint32_t pfmem32_7; - uint32_t pfmem32_8; - uint32_t pfmem32_9; - uint32_t pfmem32_10; - uint32_t pfmem32_11; - uint32_t pfmem32_12; - uint32_t pfmem32_13; - uint32_t pfmem32_14; - uint32_t pfmem32_15; - uint32_t pfmem32_16; - uint32_t pfmem32_17; - uint32_t pfmem32_18; - uint32_t pfmem32_19; - - - uint64_t pfmem64_0; - uint64_t pfmem64_1; - uint64_t pfmem64_2; - uint64_t pfmem64_3; - uint64_t pfmem64_4; - uint64_t pfmem64_5; - uint64_t pfmem64_6; - uint64_t pfmem64_7; - uint64_t pfmem64_8; - uint64_t pfmem64_9; - uint64_t pfmem64_10; - uint64_t pfmem64_11; - uint64_t pfmem64_12; - uint64_t pfmem64_13; - uint64_t pfmem64_14; - uint64_t pfmem64_15; - uint64_t pfmem64_16; - uint64_t pfmem64_17; - uint64_t pfmem64_18; - uint64_t pfmem64_19; - double F0; double F1; @@ -202,39 +75,6 @@ typedef struct { double F30; double F31; - double F0_new; - double F1_new; - double F2_new; - double F3_new; - double F4_new; - double F5_new; - double F6_new; - double F7_new; - double F8_new; - double F9_new; - double F10_new; - double F11_new; - double F12_new; - double F13_new; - double F14_new; - double F15_new; - double F16_new; - double F17_new; - double F18_new; - double F19_new; - double F20_new; - double F21_new; - double F22_new; - double F23_new; - double F24_new; - double F25_new; - double F26_new; - double F27_new; - double F28_new; - double F29_new; - double F30_new; - double F31_new; - uint32_t INDEX; uint32_t CPR0_1; uint32_t CPR0_2; @@ -491,264 +331,6 @@ typedef struct { uint32_t CPR0_253; uint32_t CPR0_254; uint32_t CPR0_255; - - uint32_t INDEX_new; - uint32_t CPR0_1_new; - uint32_t CPR0_2_new; - uint32_t CPR0_3_new; - uint32_t CPR0_4_new; - uint32_t CPR0_5_new; - uint32_t CPR0_6_new; - uint32_t CPR0_7_new; - uint32_t CPR0_8_new; - uint32_t CPR0_9_new; - uint32_t CPR0_10_new; - uint32_t CPR0_11_new; - uint32_t CPR0_12_new; - uint32_t CPR0_13_new; - uint32_t CPR0_14_new; - uint32_t CPR0_15_new; - uint32_t ENTRYLO0_new; - uint32_t CPR0_17_new; - uint32_t CPR0_18_new; - uint32_t CPR0_19_new; - uint32_t CPR0_20_new; - uint32_t CPR0_21_new; - uint32_t CPR0_22_new; - uint32_t CPR0_23_new; - uint32_t ENTRYLO1_new; - uint32_t CPR0_25_new; - uint32_t CPR0_26_new; - uint32_t CPR0_27_new; - uint32_t CPR0_28_new; - uint32_t CPR0_29_new; - uint32_t CPR0_30_new; - uint32_t CPR0_31_new; - uint32_t CPR0_32_new; - uint32_t CPR0_33_new; - uint32_t CPR0_34_new; - uint32_t CPR0_35_new; - uint32_t CPR0_36_new; - uint32_t CPR0_37_new; - uint32_t CPR0_38_new; - uint32_t CPR0_39_new; - uint32_t PAGEMASK_new; - uint32_t CPR0_41_new; - uint32_t CPR0_42_new; - uint32_t CPR0_43_new; - uint32_t CPR0_44_new; - uint32_t CPR0_45_new; - uint32_t CPR0_46_new; - uint32_t CPR0_47_new; - uint32_t CPR0_48_new; - uint32_t CPR0_49_new; - uint32_t CPR0_50_new; - uint32_t CPR0_51_new; - uint32_t CPR0_52_new; - uint32_t CPR0_53_new; - uint32_t CPR0_54_new; - uint32_t CPR0_55_new; - uint32_t CPR0_56_new; - uint32_t CPR0_57_new; - uint32_t CPR0_58_new; - uint32_t CPR0_59_new; - uint32_t CPR0_60_new; - uint32_t CPR0_61_new; - uint32_t CPR0_62_new; - uint32_t CPR0_63_new; - uint32_t CPR0_64_new; - uint32_t CPR0_65_new; - uint32_t CPR0_66_new; - uint32_t CPR0_67_new; - uint32_t CPR0_68_new; - uint32_t CPR0_69_new; - uint32_t CPR0_70_new; - uint32_t CPR0_71_new; - uint32_t COUNT_new; - uint32_t CPR0_73_new; - uint32_t CPR0_74_new; - uint32_t CPR0_75_new; - uint32_t CPR0_76_new; - uint32_t CPR0_77_new; - uint32_t CPR0_78_new; - uint32_t CPR0_79_new; - uint32_t ENTRYHI_new; - uint32_t CPR0_81_new; - uint32_t CPR0_82_new; - uint32_t CPR0_83_new; - uint32_t CPR0_84_new; - uint32_t CPR0_85_new; - uint32_t CPR0_86_new; - uint32_t CPR0_87_new; - uint32_t CPR0_88_new; - uint32_t CPR0_89_new; - uint32_t CPR0_90_new; - uint32_t CPR0_91_new; - uint32_t CPR0_92_new; - uint32_t CPR0_93_new; - uint32_t CPR0_94_new; - uint32_t CPR0_95_new; - uint32_t CPR0_96_new; - uint32_t CPR0_97_new; - uint32_t CPR0_98_new; - uint32_t CPR0_99_new; - uint32_t CPR0_100_new; - uint32_t CPR0_101_new; - uint32_t CPR0_102_new; - uint32_t CPR0_103_new; - uint32_t CAUSE_new; - uint32_t CPR0_105_new; - uint32_t CPR0_106_new; - uint32_t CPR0_107_new; - uint32_t CPR0_108_new; - uint32_t CPR0_109_new; - uint32_t CPR0_110_new; - uint32_t CPR0_111_new; - uint32_t EPC_new; - uint32_t CPR0_113_new; - uint32_t CPR0_114_new; - uint32_t CPR0_115_new; - uint32_t CPR0_116_new; - uint32_t CPR0_117_new; - uint32_t CPR0_118_new; - uint32_t CPR0_119_new; - uint32_t CPR0_120_new; - uint32_t CPR0_121_new; - uint32_t CPR0_122_new; - uint32_t CPR0_123_new; - uint32_t CPR0_124_new; - uint32_t CPR0_125_new; - uint32_t CPR0_126_new; - uint32_t CPR0_127_new; - uint32_t CONFIG_new; - uint32_t CPR0_129_new; - uint32_t CPR0_130_new; - uint32_t CPR0_131_new; - uint32_t CPR0_132_new; - uint32_t CPR0_133_new; - uint32_t CPR0_134_new; - uint32_t CPR0_135_new; - uint32_t CPR0_136_new; - uint32_t CPR0_137_new; - uint32_t CPR0_138_new; - uint32_t CPR0_139_new; - uint32_t CPR0_140_new; - uint32_t CPR0_141_new; - uint32_t CPR0_142_new; - uint32_t CPR0_143_new; - uint32_t CPR0_144_new; - uint32_t CPR0_145_new; - uint32_t CPR0_146_new; - uint32_t CPR0_147_new; - uint32_t CPR0_148_new; - uint32_t CPR0_149_new; - uint32_t CPR0_150_new; - uint32_t CPR0_151_new; - uint32_t WATCHHI_new; - uint32_t CPR0_153_new; - uint32_t CPR0_154_new; - uint32_t CPR0_155_new; - uint32_t CPR0_156_new; - uint32_t CPR0_157_new; - uint32_t CPR0_158_new; - uint32_t CPR0_159_new; - uint32_t CPR0_160_new; - uint32_t CPR0_161_new; - uint32_t CPR0_162_new; - uint32_t CPR0_163_new; - uint32_t CPR0_164_new; - uint32_t CPR0_165_new; - uint32_t CPR0_166_new; - uint32_t CPR0_167_new; - uint32_t CPR0_168_new; - uint32_t CPR0_169_new; - uint32_t CPR0_170_new; - uint32_t CPR0_171_new; - uint32_t CPR0_172_new; - uint32_t CPR0_173_new; - uint32_t CPR0_174_new; - uint32_t CPR0_175_new; - uint32_t CPR0_176_new; - uint32_t CPR0_177_new; - uint32_t CPR0_178_new; - uint32_t CPR0_179_new; - uint32_t CPR0_180_new; - uint32_t CPR0_181_new; - uint32_t CPR0_182_new; - uint32_t CPR0_183_new; - uint32_t CPR0_184_new; - uint32_t CPR0_185_new; - uint32_t CPR0_186_new; - uint32_t CPR0_187_new; - uint32_t CPR0_188_new; - uint32_t CPR0_189_new; - uint32_t CPR0_190_new; - uint32_t CPR0_191_new; - uint32_t CPR0_192_new; - uint32_t CPR0_193_new; - uint32_t CPR0_194_new; - uint32_t CPR0_195_new; - uint32_t CPR0_196_new; - uint32_t CPR0_197_new; - uint32_t CPR0_198_new; - uint32_t CPR0_199_new; - uint32_t CPR0_200_new; - uint32_t CPR0_201_new; - uint32_t CPR0_202_new; - uint32_t CPR0_203_new; - uint32_t CPR0_204_new; - uint32_t CPR0_205_new; - uint32_t CPR0_206_new; - uint32_t CPR0_207_new; - uint32_t CPR0_208_new; - uint32_t CPR0_209_new; - uint32_t CPR0_210_new; - uint32_t CPR0_211_new; - uint32_t CPR0_212_new; - uint32_t CPR0_213_new; - uint32_t CPR0_214_new; - uint32_t CPR0_215_new; - uint32_t CPR0_216_new; - uint32_t CPR0_217_new; - uint32_t CPR0_218_new; - uint32_t CPR0_219_new; - uint32_t CPR0_220_new; - uint32_t CPR0_221_new; - uint32_t CPR0_222_new; - uint32_t CPR0_223_new; - uint32_t CPR0_224_new; - uint32_t CPR0_225_new; - uint32_t CPR0_226_new; - uint32_t CPR0_227_new; - uint32_t CPR0_228_new; - uint32_t CPR0_229_new; - uint32_t CPR0_230_new; - uint32_t CPR0_231_new; - uint32_t CPR0_232_new; - uint32_t CPR0_233_new; - uint32_t CPR0_234_new; - uint32_t CPR0_235_new; - uint32_t CPR0_236_new; - uint32_t CPR0_237_new; - uint32_t CPR0_238_new; - uint32_t CPR0_239_new; - uint32_t CPR0_240_new; - uint32_t CPR0_241_new; - uint32_t CPR0_242_new; - uint32_t CPR0_243_new; - uint32_t CPR0_244_new; - uint32_t CPR0_245_new; - uint32_t CPR0_246_new; - uint32_t CPR0_247_new; - uint32_t CPR0_248_new; - uint32_t CPR0_249_new; - uint32_t CPR0_250_new; - uint32_t CPR0_251_new; - uint32_t CPR0_252_new; - uint32_t CPR0_253_new; - uint32_t CPR0_254_new; - uint32_t CPR0_255_new; - }vm_cpu_t; void dump_gpregs(vm_cpu_t* vmcpu); diff --git a/miasm2/jitter/arch/JitCore_msp430.c b/miasm2/jitter/arch/JitCore_msp430.c index 3a34248a..c6f6aa92 100644 --- a/miasm2/jitter/arch/JitCore_msp430.c +++ b/miasm2/jitter/arch/JitCore_msp430.c @@ -317,7 +317,7 @@ PyObject* get_gpreg_offset_all(void) PyObject *dict = PyDict_New(); PyObject *o; get_reg_off(exception_flags); - get_reg_off(exception_flags_new); + get_reg_off(PC); get_reg_off(SP); get_reg_off(R3); @@ -333,22 +333,7 @@ PyObject* get_gpreg_offset_all(void) get_reg_off(R13); get_reg_off(R14); get_reg_off(R15); - get_reg_off(PC_new); - get_reg_off(SP_new); - get_reg_off(SR_new); - get_reg_off(R3_new); - get_reg_off(R4_new); - get_reg_off(R5_new); - get_reg_off(R6_new); - get_reg_off(R7_new); - get_reg_off(R8_new); - get_reg_off(R9_new); - get_reg_off(R10_new); - get_reg_off(R11_new); - get_reg_off(R12_new); - get_reg_off(R13_new); - get_reg_off(R14_new); - get_reg_off(R15_new); + get_reg_off(zf); get_reg_off(nf); get_reg_off(of); @@ -359,96 +344,7 @@ PyObject* get_gpreg_offset_all(void) get_reg_off(scg0); get_reg_off(scg1); get_reg_off(res); - get_reg_off(zf_new); - get_reg_off(nf_new); - get_reg_off(of_new); - get_reg_off(cf_new); - get_reg_off(cpuoff_new); - get_reg_off(gie_new); - get_reg_off(osc_new); - get_reg_off(scg0_new); - get_reg_off(scg1_new); - get_reg_off(res_new); - get_reg_off(pfmem08_0); - get_reg_off(pfmem08_1); - get_reg_off(pfmem08_2); - get_reg_off(pfmem08_3); - get_reg_off(pfmem08_4); - get_reg_off(pfmem08_5); - get_reg_off(pfmem08_6); - get_reg_off(pfmem08_7); - get_reg_off(pfmem08_8); - get_reg_off(pfmem08_9); - get_reg_off(pfmem08_10); - get_reg_off(pfmem08_11); - get_reg_off(pfmem08_12); - get_reg_off(pfmem08_13); - get_reg_off(pfmem08_14); - get_reg_off(pfmem08_15); - get_reg_off(pfmem08_16); - get_reg_off(pfmem08_17); - get_reg_off(pfmem08_18); - get_reg_off(pfmem08_19); - get_reg_off(pfmem16_0); - get_reg_off(pfmem16_1); - get_reg_off(pfmem16_2); - get_reg_off(pfmem16_3); - get_reg_off(pfmem16_4); - get_reg_off(pfmem16_5); - get_reg_off(pfmem16_6); - get_reg_off(pfmem16_7); - get_reg_off(pfmem16_8); - get_reg_off(pfmem16_9); - get_reg_off(pfmem16_10); - get_reg_off(pfmem16_11); - get_reg_off(pfmem16_12); - get_reg_off(pfmem16_13); - get_reg_off(pfmem16_14); - get_reg_off(pfmem16_15); - get_reg_off(pfmem16_16); - get_reg_off(pfmem16_17); - get_reg_off(pfmem16_18); - get_reg_off(pfmem16_19); - get_reg_off(pfmem32_0); - get_reg_off(pfmem32_1); - get_reg_off(pfmem32_2); - get_reg_off(pfmem32_3); - get_reg_off(pfmem32_4); - get_reg_off(pfmem32_5); - get_reg_off(pfmem32_6); - get_reg_off(pfmem32_7); - get_reg_off(pfmem32_8); - get_reg_off(pfmem32_9); - get_reg_off(pfmem32_10); - get_reg_off(pfmem32_11); - get_reg_off(pfmem32_12); - get_reg_off(pfmem32_13); - get_reg_off(pfmem32_14); - get_reg_off(pfmem32_15); - get_reg_off(pfmem32_16); - get_reg_off(pfmem32_17); - get_reg_off(pfmem32_18); - get_reg_off(pfmem32_19); - get_reg_off(pfmem64_0); - get_reg_off(pfmem64_1); - get_reg_off(pfmem64_2); - get_reg_off(pfmem64_3); - get_reg_off(pfmem64_4); - get_reg_off(pfmem64_5); - get_reg_off(pfmem64_6); - get_reg_off(pfmem64_7); - get_reg_off(pfmem64_8); - get_reg_off(pfmem64_9); - get_reg_off(pfmem64_10); - get_reg_off(pfmem64_11); - get_reg_off(pfmem64_12); - get_reg_off(pfmem64_13); - get_reg_off(pfmem64_14); - get_reg_off(pfmem64_15); - get_reg_off(pfmem64_16); - get_reg_off(pfmem64_17); - get_reg_off(pfmem64_18); - get_reg_off(pfmem64_19); + return dict; } diff --git a/miasm2/jitter/arch/JitCore_msp430.h b/miasm2/jitter/arch/JitCore_msp430.h index 179554ad..03b0bb25 100644 --- a/miasm2/jitter/arch/JitCore_msp430.h +++ b/miasm2/jitter/arch/JitCore_msp430.h @@ -1,7 +1,6 @@ typedef struct { uint32_t exception_flags; - uint32_t exception_flags_new; /* gpregs */ uint32_t PC; @@ -20,23 +19,6 @@ typedef struct { uint32_t R14; uint32_t R15; - uint32_t PC_new; - uint32_t SP_new; - uint32_t SR_new; - uint32_t R3_new; - uint32_t R4_new; - uint32_t R5_new; - uint32_t R6_new; - uint32_t R7_new; - uint32_t R8_new; - uint32_t R9_new; - uint32_t R10_new; - uint32_t R11_new; - uint32_t R12_new; - uint32_t R13_new; - uint32_t R14_new; - uint32_t R15_new; - /* eflag */ uint32_t zf; uint32_t nf; @@ -50,108 +32,6 @@ typedef struct { uint32_t scg1; uint32_t res; - - uint32_t zf_new; - uint32_t nf_new; - uint32_t of_new; - uint32_t cf_new; - - uint32_t cpuoff_new; - uint32_t gie_new; - uint32_t osc_new; - uint32_t scg0_new; - uint32_t scg1_new; - uint32_t res_new; - - - uint8_t pfmem08_0; - uint8_t pfmem08_1; - uint8_t pfmem08_2; - uint8_t pfmem08_3; - uint8_t pfmem08_4; - uint8_t pfmem08_5; - uint8_t pfmem08_6; - uint8_t pfmem08_7; - uint8_t pfmem08_8; - uint8_t pfmem08_9; - uint8_t pfmem08_10; - uint8_t pfmem08_11; - uint8_t pfmem08_12; - uint8_t pfmem08_13; - uint8_t pfmem08_14; - uint8_t pfmem08_15; - uint8_t pfmem08_16; - uint8_t pfmem08_17; - uint8_t pfmem08_18; - uint8_t pfmem08_19; - - - uint16_t pfmem16_0; - uint16_t pfmem16_1; - uint16_t pfmem16_2; - uint16_t pfmem16_3; - uint16_t pfmem16_4; - uint16_t pfmem16_5; - uint16_t pfmem16_6; - uint16_t pfmem16_7; - uint16_t pfmem16_8; - uint16_t pfmem16_9; - uint16_t pfmem16_10; - uint16_t pfmem16_11; - uint16_t pfmem16_12; - uint16_t pfmem16_13; - uint16_t pfmem16_14; - uint16_t pfmem16_15; - uint16_t pfmem16_16; - uint16_t pfmem16_17; - uint16_t pfmem16_18; - uint16_t pfmem16_19; - - - uint32_t pfmem32_0; - uint32_t pfmem32_1; - uint32_t pfmem32_2; - uint32_t pfmem32_3; - uint32_t pfmem32_4; - uint32_t pfmem32_5; - uint32_t pfmem32_6; - uint32_t pfmem32_7; - uint32_t pfmem32_8; - uint32_t pfmem32_9; - uint32_t pfmem32_10; - uint32_t pfmem32_11; - uint32_t pfmem32_12; - uint32_t pfmem32_13; - uint32_t pfmem32_14; - uint32_t pfmem32_15; - uint32_t pfmem32_16; - uint32_t pfmem32_17; - uint32_t pfmem32_18; - uint32_t pfmem32_19; - - - uint64_t pfmem64_0; - uint64_t pfmem64_1; - uint64_t pfmem64_2; - uint64_t pfmem64_3; - uint64_t pfmem64_4; - uint64_t pfmem64_5; - uint64_t pfmem64_6; - uint64_t pfmem64_7; - uint64_t pfmem64_8; - uint64_t pfmem64_9; - uint64_t pfmem64_10; - uint64_t pfmem64_11; - uint64_t pfmem64_12; - uint64_t pfmem64_13; - uint64_t pfmem64_14; - uint64_t pfmem64_15; - uint64_t pfmem64_16; - uint64_t pfmem64_17; - uint64_t pfmem64_18; - uint64_t pfmem64_19; - - }vm_cpu_t; //#define RETURN_PC return PyLong_FromUnsignedLongLong(vmcpu->PC); diff --git a/miasm2/jitter/arch/JitCore_x86.c b/miasm2/jitter/arch/JitCore_x86.c index ba80fec1..cd24522d 100644 --- a/miasm2/jitter/arch/JitCore_x86.c +++ b/miasm2/jitter/arch/JitCore_x86.c @@ -547,7 +547,6 @@ PyObject* get_gpreg_offset_all(void) PyObject *o; get_reg_off(exception_flags); - get_reg_off(exception_flags_new); get_reg_off(RAX); get_reg_off(RBX); @@ -566,23 +565,6 @@ PyObject* get_gpreg_offset_all(void) get_reg_off(R14); get_reg_off(R15); get_reg_off(RIP); - get_reg_off(RAX_new); - get_reg_off(RBX_new); - get_reg_off(RCX_new); - get_reg_off(RDX_new); - get_reg_off(RSI_new); - get_reg_off(RDI_new); - get_reg_off(RSP_new); - get_reg_off(RBP_new); - get_reg_off(R8_new); - get_reg_off(R9_new); - get_reg_off(R10_new); - get_reg_off(R11_new); - get_reg_off(R12_new); - get_reg_off(R13_new); - get_reg_off(R14_new); - get_reg_off(R15_new); - get_reg_off(RIP_new); get_reg_off(zf); get_reg_off(nf); get_reg_off(pf); @@ -590,13 +572,6 @@ PyObject* get_gpreg_offset_all(void) get_reg_off(cf); get_reg_off(af); get_reg_off(df); - get_reg_off(zf_new); - get_reg_off(nf_new); - get_reg_off(pf_new); - get_reg_off(of_new); - get_reg_off(cf_new); - get_reg_off(af_new); - get_reg_off(df_new); get_reg_off(tf); get_reg_off(i_f); get_reg_off(iopl_f); @@ -607,16 +582,6 @@ PyObject* get_gpreg_offset_all(void) get_reg_off(vif); get_reg_off(vip); get_reg_off(i_d); - get_reg_off(tf_new); - get_reg_off(i_f_new); - get_reg_off(iopl_f_new); - get_reg_off(nt_new); - get_reg_off(rf_new); - get_reg_off(vm_new); - get_reg_off(ac_new); - get_reg_off(vif_new); - get_reg_off(vip_new); - get_reg_off(i_d_new); get_reg_off(my_tick); get_reg_off(cond); @@ -628,14 +593,6 @@ PyObject* get_gpreg_offset_all(void) get_reg_off(float_st5); get_reg_off(float_st6); get_reg_off(float_st7); - get_reg_off(float_st0_new); - get_reg_off(float_st1_new); - get_reg_off(float_st2_new); - get_reg_off(float_st3_new); - get_reg_off(float_st4_new); - get_reg_off(float_st5_new); - get_reg_off(float_st6_new); - get_reg_off(float_st7_new); get_reg_off(ES); get_reg_off(CS); @@ -643,93 +600,6 @@ PyObject* get_gpreg_offset_all(void) get_reg_off(DS); get_reg_off(FS); get_reg_off(GS); - get_reg_off(ES_new); - get_reg_off(CS_new); - get_reg_off(SS_new); - get_reg_off(DS_new); - get_reg_off(FS_new); - get_reg_off(GS_new); - - get_reg_off(pfmem08_0); - get_reg_off(pfmem08_1); - get_reg_off(pfmem08_2); - get_reg_off(pfmem08_3); - get_reg_off(pfmem08_4); - get_reg_off(pfmem08_5); - get_reg_off(pfmem08_6); - get_reg_off(pfmem08_7); - get_reg_off(pfmem08_8); - get_reg_off(pfmem08_9); - get_reg_off(pfmem08_10); - get_reg_off(pfmem08_11); - get_reg_off(pfmem08_12); - get_reg_off(pfmem08_13); - get_reg_off(pfmem08_14); - get_reg_off(pfmem08_15); - get_reg_off(pfmem08_16); - get_reg_off(pfmem08_17); - get_reg_off(pfmem08_18); - get_reg_off(pfmem08_19); - get_reg_off(pfmem16_0); - get_reg_off(pfmem16_1); - get_reg_off(pfmem16_2); - get_reg_off(pfmem16_3); - get_reg_off(pfmem16_4); - get_reg_off(pfmem16_5); - get_reg_off(pfmem16_6); - get_reg_off(pfmem16_7); - get_reg_off(pfmem16_8); - get_reg_off(pfmem16_9); - get_reg_off(pfmem16_10); - get_reg_off(pfmem16_11); - get_reg_off(pfmem16_12); - get_reg_off(pfmem16_13); - get_reg_off(pfmem16_14); - get_reg_off(pfmem16_15); - get_reg_off(pfmem16_16); - get_reg_off(pfmem16_17); - get_reg_off(pfmem16_18); - get_reg_off(pfmem16_19); - get_reg_off(pfmem32_0); - get_reg_off(pfmem32_1); - get_reg_off(pfmem32_2); - get_reg_off(pfmem32_3); - get_reg_off(pfmem32_4); - get_reg_off(pfmem32_5); - get_reg_off(pfmem32_6); - get_reg_off(pfmem32_7); - get_reg_off(pfmem32_8); - get_reg_off(pfmem32_9); - get_reg_off(pfmem32_10); - get_reg_off(pfmem32_11); - get_reg_off(pfmem32_12); - get_reg_off(pfmem32_13); - get_reg_off(pfmem32_14); - get_reg_off(pfmem32_15); - get_reg_off(pfmem32_16); - get_reg_off(pfmem32_17); - get_reg_off(pfmem32_18); - get_reg_off(pfmem32_19); - get_reg_off(pfmem64_0); - get_reg_off(pfmem64_1); - get_reg_off(pfmem64_2); - get_reg_off(pfmem64_3); - get_reg_off(pfmem64_4); - get_reg_off(pfmem64_5); - get_reg_off(pfmem64_6); - get_reg_off(pfmem64_7); - get_reg_off(pfmem64_8); - get_reg_off(pfmem64_9); - get_reg_off(pfmem64_10); - get_reg_off(pfmem64_11); - get_reg_off(pfmem64_12); - get_reg_off(pfmem64_13); - get_reg_off(pfmem64_14); - get_reg_off(pfmem64_15); - get_reg_off(pfmem64_16); - get_reg_off(pfmem64_17); - get_reg_off(pfmem64_18); - get_reg_off(pfmem64_19); get_reg_off(MM0); get_reg_off(MM1); @@ -739,19 +609,9 @@ PyObject* get_gpreg_offset_all(void) get_reg_off(MM5); get_reg_off(MM6); get_reg_off(MM7); - get_reg_off(MM0_new); - get_reg_off(MM1_new); - get_reg_off(MM2_new); - get_reg_off(MM3_new); - get_reg_off(MM4_new); - get_reg_off(MM5_new); - get_reg_off(MM6_new); - get_reg_off(MM7_new); get_reg_off(tsc1); get_reg_off(tsc2); - get_reg_off(tsc1_new); - get_reg_off(tsc2_new); return dict; } diff --git a/miasm2/jitter/arch/JitCore_x86.h b/miasm2/jitter/arch/JitCore_x86.h index 1e58d536..d4282640 100644 --- a/miasm2/jitter/arch/JitCore_x86.h +++ b/miasm2/jitter/arch/JitCore_x86.h @@ -1,9 +1,7 @@ typedef struct { uint32_t exception_flags; - uint32_t exception_flags_new; uint32_t interrupt_num; - uint32_t interrupt_num_new; /* gpregs */ @@ -26,25 +24,6 @@ typedef struct { uint64_t RIP; - uint64_t RAX_new; - uint64_t RBX_new; - uint64_t RCX_new; - uint64_t RDX_new; - uint64_t RSI_new; - uint64_t RDI_new; - uint64_t RSP_new; - uint64_t RBP_new; - uint64_t R8_new; - uint64_t R9_new; - uint64_t R10_new; - uint64_t R11_new; - uint64_t R12_new; - uint64_t R13_new; - uint64_t R14_new; - uint64_t R15_new; - - uint64_t RIP_new; - /* eflag */ uint64_t zf; uint64_t nf; @@ -54,14 +33,6 @@ typedef struct { uint64_t af; uint64_t df; - uint64_t zf_new; - uint64_t nf_new; - uint64_t pf_new; - uint64_t of_new; - uint64_t cf_new; - uint64_t af_new; - uint64_t df_new; - uint64_t tf; uint64_t i_f; uint64_t iopl_f; @@ -73,17 +44,6 @@ typedef struct { uint64_t vip; uint64_t i_d; - uint64_t tf_new; - uint64_t i_f_new; - uint64_t iopl_f_new; - uint64_t nt_new; - uint64_t rf_new; - uint64_t vm_new; - uint64_t ac_new; - uint64_t vif_new; - uint64_t vip_new; - uint64_t i_d_new; - uint64_t my_tick; uint64_t cond; @@ -97,47 +57,25 @@ typedef struct { double float_st6; double float_st7; - double float_st0_new; - double float_st1_new; - double float_st2_new; - double float_st3_new; - double float_st4_new; - double float_st5_new; - double float_st6_new; - double float_st7_new; - unsigned int float_c0; unsigned int float_c1; unsigned int float_c2; unsigned int float_c3; - unsigned int float_c0_new; - unsigned int float_c1_new; - unsigned int float_c2_new; - unsigned int float_c3_new; unsigned int float_stack_ptr; - unsigned int float_stack_ptr_new; unsigned int reg_float_control; - unsigned int reg_float_control_new; unsigned int reg_float_eip; - unsigned int reg_float_eip_new; unsigned int reg_float_cs; - unsigned int reg_float_cs_new; unsigned int reg_float_address; - unsigned int reg_float_address_new; unsigned int reg_float_ds; - unsigned int reg_float_ds_new; uint64_t tsc1; uint64_t tsc2; - uint64_t tsc1_new; - uint64_t tsc2_new; - uint64_t ES; uint64_t CS; @@ -146,108 +84,8 @@ typedef struct { uint64_t FS; uint64_t GS; - uint64_t ES_new; - uint64_t CS_new; - uint64_t SS_new; - uint64_t DS_new; - uint64_t FS_new; - uint64_t GS_new; - unsigned int cr0; - unsigned int cr0_new; - unsigned int cr3; - unsigned int cr3_new; - - - - uint8_t pfmem08_0; - uint8_t pfmem08_1; - uint8_t pfmem08_2; - uint8_t pfmem08_3; - uint8_t pfmem08_4; - uint8_t pfmem08_5; - uint8_t pfmem08_6; - uint8_t pfmem08_7; - uint8_t pfmem08_8; - uint8_t pfmem08_9; - uint8_t pfmem08_10; - uint8_t pfmem08_11; - uint8_t pfmem08_12; - uint8_t pfmem08_13; - uint8_t pfmem08_14; - uint8_t pfmem08_15; - uint8_t pfmem08_16; - uint8_t pfmem08_17; - uint8_t pfmem08_18; - uint8_t pfmem08_19; - - - uint16_t pfmem16_0; - uint16_t pfmem16_1; - uint16_t pfmem16_2; - uint16_t pfmem16_3; - uint16_t pfmem16_4; - uint16_t pfmem16_5; - uint16_t pfmem16_6; - uint16_t pfmem16_7; - uint16_t pfmem16_8; - uint16_t pfmem16_9; - uint16_t pfmem16_10; - uint16_t pfmem16_11; - uint16_t pfmem16_12; - uint16_t pfmem16_13; - uint16_t pfmem16_14; - uint16_t pfmem16_15; - uint16_t pfmem16_16; - uint16_t pfmem16_17; - uint16_t pfmem16_18; - uint16_t pfmem16_19; - - - uint32_t pfmem32_0; - uint32_t pfmem32_1; - uint32_t pfmem32_2; - uint32_t pfmem32_3; - uint32_t pfmem32_4; - uint32_t pfmem32_5; - uint32_t pfmem32_6; - uint32_t pfmem32_7; - uint32_t pfmem32_8; - uint32_t pfmem32_9; - uint32_t pfmem32_10; - uint32_t pfmem32_11; - uint32_t pfmem32_12; - uint32_t pfmem32_13; - uint32_t pfmem32_14; - uint32_t pfmem32_15; - uint32_t pfmem32_16; - uint32_t pfmem32_17; - uint32_t pfmem32_18; - uint32_t pfmem32_19; - - - uint64_t pfmem64_0; - uint64_t pfmem64_1; - uint64_t pfmem64_2; - uint64_t pfmem64_3; - uint64_t pfmem64_4; - uint64_t pfmem64_5; - uint64_t pfmem64_6; - uint64_t pfmem64_7; - uint64_t pfmem64_8; - uint64_t pfmem64_9; - uint64_t pfmem64_10; - uint64_t pfmem64_11; - uint64_t pfmem64_12; - uint64_t pfmem64_13; - uint64_t pfmem64_14; - uint64_t pfmem64_15; - uint64_t pfmem64_16; - uint64_t pfmem64_17; - uint64_t pfmem64_18; - uint64_t pfmem64_19; - uint64_t MM0; uint64_t MM1; @@ -258,15 +96,6 @@ typedef struct { uint64_t MM6; uint64_t MM7; - uint64_t MM0_new; - uint64_t MM1_new; - uint64_t MM2_new; - uint64_t MM3_new; - uint64_t MM4_new; - uint64_t MM5_new; - uint64_t MM6_new; - uint64_t MM7_new; - uint32_t segm_base[0x10000]; }vm_cpu_t; diff --git a/miasm2/jitter/codegen.py b/miasm2/jitter/codegen.py index c1f1e392..7bdbf890 100644 --- a/miasm2/jitter/codegen.py +++ b/miasm2/jitter/codegen.py @@ -6,17 +6,6 @@ from miasm2.core.asmbloc import expr_is_label, asm_block_bad, asm_label # Miasm to C translator translator = Translator.to_language("C") -PREFETCH_ID = [] -PREFETCH_ID_SIZE = {} -for size in [8, 16, 32, 64]: - PREFETCH_ID_SIZE[size] = [] - for i in xrange(20): - name = 'pfmem%.2d_%d' % (size, i) - c = m2_expr.ExprId(name, size) - # globals()[name] = c - PREFETCH_ID.append(c) - PREFETCH_ID_SIZE[size].append(c) - SIZE_TO_MASK = {x: 2**x - 1 for x in (1, 2, 3, 7, 8, 16, 32, 64)} MASK_INT = 0xffffffffffffffff @@ -127,15 +116,9 @@ class CGen(object): def init_arch_C(self): self.id_to_c_id = {} - for reg in self.ir_arch.arch.regs.all_regs_ids + PREFETCH_ID: + for reg in self.ir_arch.arch.regs.all_regs_ids: self.id_to_c_id[reg] = m2_expr.ExprId('mycpu->%s' % reg, reg.size) - self.id_to_new_c_id = {} - - for reg in self.ir_arch.arch.regs.all_regs_ids + PREFETCH_ID: - self.id_to_new_c_id[reg] = m2_expr.ExprId( - 'mycpu->%s_new' % reg, reg.size) - self.C_PC = self.id_to_c(self.PC) def dst_to_c(self, src): @@ -146,15 +129,9 @@ class CGen(object): def patch_c_id(self, expr): return expr.replace_expr(self.id_to_c_id) - def patch_c_new_id(self, expr): - return expr.replace_expr(self.id_to_new_c_id) - def id_to_c(self, expr): return translator.from_expr(self.patch_c_id(expr)) - def id_to_cnew(self, expr): - return translator.from_expr(self.patch_c_new_id(expr)) - def get_post_instr_label(self, offset): return self.ir_arch.symbol_pool.getby_name_create("lbl_gen_post_instr_%.8X" % (offset)) @@ -197,25 +174,44 @@ class CGen(object): assignblk.C_prefetch = out return out + def add_local_var(self, dst_var, dst_index, expr): + size = expr.size + if size < 8: + size = 8 + if size not in dst_index: + raise RuntimeError("Unsupported operand size %s", size) + var_num = dst_index[size] + dst = m2_expr.ExprId("var_%.2d_%.2d" % (size, var_num), size) + dst_index[size] += 1 + dst_var[expr] = dst + return dst + def gen_assignments(self, assignblk, prefetchers): + out_var = [] out_main = [] out_mem = [] out_updt = [] - id_to_update = set() + + dst_index = {8: 0, 16: 0, 32: 0, 64: 0} + dst_var = {} + + for var in prefetchers.itervalues(): + out_var.append("uint%d_t %s;" % (var.size, var)) for dst, src in sorted(assignblk.iteritems()): src = src.replace_expr(prefetchers) if dst is self.ir_arch.IRDst: pass elif isinstance(dst, m2_expr.ExprId): - id_to_update.add(dst) - str_dst = self.id_to_cnew(dst) + new_dst = self.add_local_var(dst_var, dst_index, dst) if dst in self.ir_arch.arch.regs.regs_flt_expr: # Dont mask float affectation - out_main.append('%s = (%s);' % (str_dst, self.id_to_c(src))) + out_main.append( + '%s = (%s);' % (self.id_to_c(new_dst), self.id_to_c(src))) else: out_main.append( - '%s = (%s)&0x%X;' % (str_dst, self.id_to_c(src), + '%s = (%s)&0x%X;' % (self.id_to_c(new_dst), + self.id_to_c(src), SIZE_TO_MASK[src.size])) elif isinstance(dst, m2_expr.ExprMem): ptr = dst.arg.replace_expr(prefetchers) @@ -228,15 +224,19 @@ class CGen(object): for dst, new_dst in dst_var.iteritems(): if dst is self.ir_arch.IRDst: continue - out_updt.append('%s = %s;' % (self.id_to_c(expr), self.id_to_cnew(expr))) + out_updt.append('%s = %s;' % (self.id_to_c(dst), self.id_to_c(new_dst))) + out_var.append("uint%d_t %s;" % (new_dst.size, new_dst)) + assignblk.C_var = out_var assignblk.C_main = out_main assignblk.C_mem = out_mem assignblk.C_updt = out_updt def gen_c_assignblk(self, assignblk): mem_read, mem_write = False, False - local_prefetch = {} + + mem_index = {8: 0, 16: 0, 32: 0, 64: 0} + mem_var = {} prefetch_index = {8: 0, 16: 0, 32: 0, 64: 0} # Prefetch memory read @@ -244,9 +244,11 @@ class CGen(object): if not isinstance(expr, m2_expr.ExprMem): continue mem_read = True - index = prefetch_index[expr.size] - prefetch_index[expr.size] += 1 - local_prefetch[expr] = PREFETCH_ID_SIZE[expr.size][index] + var_num = mem_index[expr.size] + mem_index[expr.size] += 1 + var = m2_expr.ExprId( + "prefetch_%.2d_%.2d" % (expr.size, var_num), expr.size) + mem_var[expr] = var # Check if assignblk can write mem mem_write = any(isinstance(expr, m2_expr.ExprMem) @@ -256,7 +258,7 @@ class CGen(object): assignblk.mem_read = mem_read # Generate memory prefetch - return local_prefetch + return mem_var def gen_check_memory_exception(self, address): dst = self.dst_to_c(address) @@ -388,7 +390,9 @@ class CGen(object): @c_dst: irdst C code """ out = [] - + out.append("{") + out.append("// var") + out += assignblk.C_var out.append("// Prefetch") out += assignblk.C_prefetch out.append("// Dst") @@ -423,6 +427,8 @@ class CGen(object): if assignblk.set_exception: out += self.gen_check_cpu_exception(assignblk.instr_addr) + out.append("}") + return out def is_exception_operator(self, operator): |