

def _translate_sbb(self, tb, instruction):
    oprnd0 = tb.read(instruction.operands[0])
    oprnd1 = tb.read(instruction.operands[1])
    tmp0 = tb.temporal((oprnd0.size * 2))
    tmp1 = tb.temporal((oprnd0.size * 2))
    tmp2 = tb.temporal((oprnd0.size * 2))
    tmp3 = tb.temporal(oprnd0.size)
    tmp4 = tb.temporal(oprnd0.size)
    tb.add(self._builder.gen_sub(oprnd0, oprnd1, tmp0))
    tb.add(self._builder.gen_str(self._flags['cf'], tmp1))
    tb.add(self._builder.gen_sub(tmp0, tmp1, tmp2))
    tb.add(self._builder.gen_str(tmp0, tmp3))
    tb.add(self._builder.gen_str(tmp1, tmp4))
    if (self._translation_mode == FULL_TRANSLATION):
        self._update_of_sub(tb, tmp3, tmp4, tmp2)
        self._update_sf(tb, tmp3, tmp4, tmp2)
        self._update_zf(tb, tmp3, tmp4, tmp2)
        self._update_af(tb, tmp3, tmp4, tmp2)
        self._update_pf(tb, tmp3, tmp4, tmp2)
        self._update_cf(tb, tmp3, tmp4, tmp2)
    tb.write(instruction.operands[0], tmp2)

dataset/ETHPy150Open programa-stic/barf-project/barf/barf/arch/x86/x86translator.py X86Translator._translate_sbb/original