def _translate_ldm(self, oprnd1, oprnd2, oprnd3):
        assert oprnd1.size == self._address_size
        assert oprnd3.size

        op1_var = self._translate_src_oprnd(oprnd1)
        op3_var, parent_reg_constrs = self._translate_dst_oprnd(oprnd3)

        size = oprnd3.size
        where = op1_var

        exprs = []

        bytes_exprs = []
        bytes_exprs_2 = []
        for i in reversed(xrange(0, size, 8)):
            bytes_exprs_1 = smtlibv2.ord(self._mem[where + i/8])
            bytes_exprs_2 = smtlibv2.EXTRACT(op3_var, i, 8)

            exprs += [bytes_exprs_1 == bytes_exprs_2]

        rv = exprs

        if parent_reg_constrs:
            rv += parent_reg_constrs

        return exprs
Return a formula representation of a LDM instruction.
dataset/ETHPy150Open programa-stic/barf-project/barf/barf/core/smt/smttranslator.py/SmtTranslator._translate_ldm