Skip to content

Commit fa6dc35

Browse files
committed
CHB:ARM: limited support for rotate operand
1 parent f2e2341 commit fa6dc35

File tree

2 files changed

+13
-2
lines changed

2 files changed

+13
-2
lines changed

CodeHawk/CHB/bchlib/bCHVersion.ml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -95,8 +95,8 @@ end
9595

9696

9797
let version = new version_info_t
98-
~version:"0.6.0_20250810"
99-
~date:"2025-08-10"
98+
~version:"0.6.0_20250811"
99+
~date:"2025-08-11"
100100
~licensee: None
101101
~maxfilesize: None
102102
()

CodeHawk/CHB/bchlibarm32/bCHARMOperand.ml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -624,6 +624,9 @@ object (self:'a)
624624
| ARMShiftedReg (r, ARMImmSRT (SRType_LSL, n)) ->
625625
let vreg = floc#env#mk_arm_register_variable r in
626626
Ok (XOp (XLsl, [XVar vreg; int_constant_expr n]))
627+
| ARMShiftedReg (r, ARMImmSRT (SRType_ROR, n)) ->
628+
let vreg = floc#env#mk_arm_register_variable r in
629+
Ok (XOp ((Xf "ror"), [XVar vreg; int_constant_expr n]))
627630
| ARMShiftedReg (r, ARMRegSRT (SRType_LSL, sr)) ->
628631
let vsreg = floc#env#mk_arm_register_variable sr in
629632
let vreg = floc#env#mk_arm_register_variable r in
@@ -633,6 +636,14 @@ object (self:'a)
633636
let vsreg = floc#env#mk_arm_register_variable sr in
634637
let vreg = floc#env#mk_arm_register_variable r in
635638
Ok (XOp (XLsr, [XVar vreg; XVar vsreg]))
639+
| ARMShiftedReg (r, ARMRegSRT (SRType_ASR, sr)) ->
640+
let vsreg = floc#env#mk_arm_register_variable sr in
641+
let vreg = floc#env#mk_arm_register_variable r in
642+
Ok (XOp (XAsr, [XVar vreg; XVar vsreg]))
643+
| ARMShiftedReg (r, ARMRegSRT (SRType_ROR, sr)) ->
644+
let vsreg = floc#env#mk_arm_register_variable sr in
645+
let vreg = floc#env#mk_arm_register_variable r in
646+
Ok (XOp ((Xf "ror"), [XVar vreg; XVar vsreg]))
636647
| ARMShiftedReg (_, srt) ->
637648
Error [__FILE__ ^ ":" ^ (string_of_int __LINE__) ^ ": "
638649
^ "Shifted reg: " ^ (register_shift_to_string srt)

0 commit comments

Comments
 (0)