In the AArch64 model for various non-indexed memory operations, we assume that the offset address fixup does not introduce an offset through:
def write(self):
# For now, assert that no fixup has happened
# Eventually, this instruction should be merged
# into the LDP with increment.
assert self.pre_index is None
return super().write()
We should instead switch to the indexed variants in that case:
def write(self):
if int(self.pre_index) != 0:
self.immediate = simplify(self.pre_index)
self.pattern = str_with_imm.ldrb # or `w_ldrb_imm` when renamed
return super().write()
In the AArch64 model for various non-indexed memory operations, we assume that the offset address fixup does not introduce an offset through:
We should instead switch to the indexed variants in that case: