@@ -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