Skip to content

Commit 7010e7d

Browse files
committed
CHB:ARM: transmit ldrsh/ldrsb aggregates
1 parent 89421bd commit 7010e7d

File tree

3 files changed

+13
-14
lines changed

3 files changed

+13
-14
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_20250903"
99-
~date:"2025-09-03"
98+
~version:"0.6.0_20251012"
99+
~date:"2025-10-12"
100100
~licensee: None
101101
~maxfilesize: None
102102
()

CodeHawk/CHB/bchlibarm32/bCHARMInstructionAggregate.ml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ object (self)
141141

142142
method is_pseudo_ldrsb =
143143
match self#kind with
144-
| PseudoLDRSH _ -> true
144+
| PseudoLDRSB _ -> true
145145
| _ -> false
146146

147147
method is_predicate_assign =

CodeHawk/CHB/bchlibarm32/bCHFnARMDictionary.ml

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1762,7 +1762,11 @@ object (self)
17621762
~useshigh
17631763
() in
17641764
let (tags, args) = add_optional_instr_condition tagstring args c in
1765-
let tags = add_optional_subsumption tags in
1765+
let tags =
1766+
match instr#is_in_aggregate with
1767+
| Some dw when (get_aggregate dw)#is_pseudo_ldrsb ->
1768+
add_subsumption_dependents (get_aggregate dw) tags
1769+
| _ -> add_optional_subsumption tags in
17661770
let (tags, args) =
17671771
if mem#is_offset_address_writeback then
17681772
let vrn_r = rn#to_variable floc in
@@ -1779,11 +1783,6 @@ object (self)
17791783
(mem#to_updated_offset_address floc)
17801784
else
17811785
(tags, args) in
1782-
let tags =
1783-
match instr#is_in_aggregate with
1784-
| Some dw when (get_aggregate dw)#is_pseudo_ldrsb ->
1785-
add_subsumption_dependents (get_aggregate dw) tags
1786-
| _ -> tags in
17871786
(tags, args)
17881787

17891788
| LoadRegisterDual (c, rt, rt2, rn, rm, mem, mem2) ->
@@ -1948,6 +1947,11 @@ object (self)
19481947
~useshigh
19491948
() in
19501949
let (tags, args) = add_optional_instr_condition tagstring args c in
1950+
let tags =
1951+
match instr#is_in_aggregate with
1952+
| Some dw when (get_aggregate dw)#is_pseudo_ldrsh ->
1953+
add_subsumption_dependents (get_aggregate dw) tags
1954+
| _ -> add_optional_subsumption tags in
19511955
let (tags, args) =
19521956
if mem#is_offset_address_writeback then
19531957
let vrn_r = rn#to_variable floc in
@@ -1962,11 +1966,6 @@ object (self)
19621966
(mem#to_updated_offset_address floc)
19631967
else
19641968
(tags, args) in
1965-
let tags =
1966-
match instr#is_in_aggregate with
1967-
| Some dw when (get_aggregate dw)#is_pseudo_ldrsh ->
1968-
add_subsumption_dependents (get_aggregate dw) tags
1969-
| _ -> tags in
19701969
(tags, args)
19711970

19721971
| LoadRegisterSignedByte (c, rt, rn, rm, mem, _) ->

0 commit comments

Comments
 (0)