diff options
Diffstat (limited to 'miasm2/arch')
| -rw-r--r-- | miasm2/arch/x86/arch.py | 6 | ||||
| -rw-r--r-- | miasm2/arch/x86/regs.py | 5 | ||||
| -rw-r--r-- | miasm2/arch/x86/sem.py | 1 |
3 files changed, 8 insertions, 4 deletions
diff --git a/miasm2/arch/x86/arch.py b/miasm2/arch/x86/arch.py index 916b5428..2b9b3cb1 100644 --- a/miasm2/arch/x86/arch.py +++ b/miasm2/arch/x86/arch.py @@ -1041,8 +1041,10 @@ class x86_imm(imm_noarg): return swap_uint(self.l, v) -class x86_imm_fix(imm_noarg): +class x86_imm_fix_08(imm_noarg): parser = base_expr + intsize = 8 + intmask = (1 << intsize) - 1 def decodeval(self, v): return self.ival @@ -2980,7 +2982,7 @@ u16 = bs(l=16, cls=(x86_16, m_arg)) u32 = bs(l=32, cls=(x86_32, m_arg)) s3264 = bs(l=32, cls=(x86_s32to64, m_arg)) -u08_3 = bs(l=0, cls=(x86_imm_fix, m_arg), ival = 3) +u08_3 = bs(l=0, cls=(x86_imm_fix_08, m_arg), ival = 3) d0 = bs("000", fname='reg') d1 = bs("001", fname='reg') diff --git a/miasm2/arch/x86/regs.py b/miasm2/arch/x86/regs.py index 9c87834f..3bca8fe2 100644 --- a/miasm2/arch/x86/regs.py +++ b/miasm2/arch/x86/regs.py @@ -6,6 +6,7 @@ IP = ExprId('IP', 16) EIP = ExprId('EIP', 32) RIP = ExprId('RIP', 64) exception_flags = ExprId('exception_flags', 32) +interrupt_num = ExprId('interrupt_num', 8) # GP @@ -399,7 +400,7 @@ all_regs_ids = [ XMM8, XMM9, XMM10, XMM11, XMM12, XMM13, XMM14, XMM15, - exception_flags, + exception_flags, interrupt_num, ] + fltregs32_expr all_regs_ids_no_alias = [ @@ -421,7 +422,7 @@ all_regs_ids_no_alias = [ XMM8, XMM9, XMM10, XMM11, XMM12, XMM13, XMM14, XMM15, - exception_flags, + exception_flags, interrupt_num, ] + fltregs32_expr all_regs_ids_byname = dict([(x.name, x) for x in all_regs_ids]) diff --git a/miasm2/arch/x86/sem.py b/miasm2/arch/x86/sem.py index 1dd5bc67..41a2c229 100644 --- a/miasm2/arch/x86/sem.py +++ b/miasm2/arch/x86/sem.py @@ -2799,6 +2799,7 @@ def l_int(ir, instr, a): except_int = EXCEPT_INT_XX e.append(m2_expr.ExprAff(exception_flags, m2_expr.ExprInt32(except_int))) + e.append(m2_expr.ExprAff(interrupt_num, a)) return e, [] |