diff options
| author | serpilliere <devnull@localhost> | 2012-03-09 23:18:43 +0100 |
|---|---|---|
| committer | serpilliere <devnull@localhost> | 2012-03-09 23:18:43 +0100 |
| commit | aac37856f06713db2b9bb8c344732f5a67f28afd (patch) | |
| tree | 3b2b68f60400e92c11fb0a42ea9d2adf529bb2eb | |
| parent | c0cf99efec10e3d80ee81040c6887b7845277ef0 (diff) | |
| download | miasm-aac37856f06713db2b9bb8c344732f5a67f28afd.tar.gz miasm-aac37856f06713db2b9bb8c344732f5a67f28afd.zip | |
arch_arm: missing subcall
Diffstat (limited to '')
| -rw-r--r-- | miasm/arch/arm_arch.py | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/miasm/arch/arm_arch.py b/miasm/arch/arm_arch.py index 94cffbe2..258ad933 100644 --- a/miasm/arch/arm_arch.py +++ b/miasm/arch/arm_arch.py @@ -1089,6 +1089,9 @@ class arm_data(arm_mn): if args: raise ValueError('zarb arg2', args) + def is_subcall(self): + return False + @@ -1140,6 +1143,9 @@ class arm_mul(arm_mn): else: self.rn = 0 #default reg value + def is_subcall(self): + return False + class arm_mull(arm_mn): mask_list = [bm_int00001, bm_sign, bm_accum, bm_scc, bm_rdh, bm_rdl, @@ -1187,6 +1193,9 @@ class arm_mull(arm_mn): self.rm = str2reg(args.pop()) self.rs = str2reg(args.pop()) + def is_subcall(self): + return False + class arm_swp(arm_mn): mask_list = [bm_int00010, bm_size, bm_int00, bm_rn, bm_rd, @@ -1287,7 +1296,7 @@ class arm_brreg(arm_mn): def breakflow(self): return True def splitflow(self): - return self.cond != COND_AL + return self.cond != COND_AL or self.lnk def dstflow(self): return True def getdstflow(self): @@ -1360,7 +1369,8 @@ class arm_hdtreg(arm_mn): return self.cond != COND_AL def dstflow(self): return True - + def is_subcall(self): + return False class arm_hdtimm(arm_mn): mask_list = [bm_int000, bm_ppndx, bm_updown, bm_int1, bm_wback, @@ -1428,6 +1438,8 @@ class arm_hdtimm(arm_mn): return self.cond != COND_AL def dstflow(self): return True + def is_subcall(self): + return False class arm_sdt(arm_mn): |