Skip to content

Commit fe6bdcb

Browse files
committed
CHB:ARM:add disassembly support for FLDMIAX (arm)
1 parent 5bf2a02 commit fe6bdcb

File tree

2 files changed

+16
-0
lines changed

2 files changed

+16
-0
lines changed

CodeHawk/CHB/bchlibarm32/bCHDisassembleARMInstruction.ml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1703,6 +1703,18 @@ let parse_misc_6_type (instr: doubleword_int) (cond: int) =
17031703
(* VMOV<c> <Dm>, <Rt>, <Rt2> *)
17041704
VectorMoveDDS (c, VfpNone, rt WR, rt2 WR, rtd WR, dm RD)
17051705

1706+
(* FLDMIAX{<c>}{<q>}>Rn>{!},<dreglist> *)
1707+
(* <cc><6>01001DW1<rn><vd>1011<-imm7>1 *)
1708+
| (1, 1, 11) when (bv 22) = 0 && (bv 0) = 1 ->
1709+
let d = prefix_bit (bv 22) (b 15 12) in
1710+
let rnreg = get_arm_reg (b 19 16) in
1711+
let rn = arm_register_op rnreg in
1712+
let regs = (b 7 1) in
1713+
let rl = arm_extension_register_list_op XDouble d regs in
1714+
let mem = mk_arm_mem_multiple_op ~size:8 rnreg regs in
1715+
(* FLXMIAX<c>, <list> *)
1716+
FLoadMultipleIncrementAfter (false, c, rn RD, rl WR, mem RD)
1717+
17061718
(* <cc><6>01D11<13><vd><10><-imm8-> *) (* VPOP - A2 *)
17071719
| (1, 3, 10) when (b 19 16) = 13 ->
17081720
let d = postfix_bit (bv 22) (b 15 12) in

CodeHawk/CHT/CHB_tests/bchlibarm32_tests/txbchlibarm32/bCHDisassembleARMInstructionTest.ml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -197,6 +197,10 @@ let arm_pc_relative () =
197197

198198
let arm_vector () =
199199
let tests = [
200+
("FLDMIAX", "210b90ec",
201+
"FLDMIAX R0, {D0,D1,D2,D3,D4,D5,D6,D7,D8,D9,D10,D11,D12,D13,D14,D15}");
202+
("FSTMIAX", "210b80ec",
203+
"FSTMIAX R0, {D0,D1,D2,D3,D4,D5,D6,D7,D8,D9,D10,D11,D12,D13,D14,D15}");
200204
("VDUP.32", "474cfcf3", "VDUP.32 Q10, D7[1]");
201205
("VDUP.32-scalar", "622cfcf3", "VDUP.32 Q9, D18[1]");
202206
("VEOR-Q", "746106f3", "VEOR Q3, Q3, Q10");

0 commit comments

Comments
 (0)