def _translate_xor(self, oprnd1, oprnd2, oprnd3):
        assert oprnd1.size and oprnd2.size and oprnd3.size
        assert oprnd1.size == oprnd2.size

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

        if oprnd1.size < oprnd3.size:
            xor_zx = smtlibv2.ZEXTEND(op1_var ^ op2_var, oprnd3.size)

            expr = (op3_var == xor_zx)
        elif oprnd1.size > oprnd3.size:
            xor_extract = smtlibv2.EXTRACT(op1_var ^ op2_var, 0, oprnd3.size)

            expr = (op3_var == xor_extract)
        else:
            expr = (op3_var == (op1_var ^ op2_var))

        rv = [expr]

        if parent_reg_constrs:
            rv += parent_reg_constrs

        return rv

    # Data transfer Instructions
    # ======================================================================== #
We don't store the timestamp when pickling, to avoid the hash
dataset/ETHPy150Open programa-stic/barf-project/barf/barf/core/smt/smttranslator.py/SmtTranslator._translate_xor--crossover with--dataset/ETHPy150Open scikit-learn/scikit-learn/sklearn/externals/joblib/memory.py/MemorizedFunc.__reduce__