

def _translate_pushf(self, tb, instruction):
    tmp0 = tb.temporal(self._sp.size)
    tmp1 = tb.temporal(self._sp.size)
    shr_one = tb.immediate(1, self._sp.size)
    shr_two = tb.immediate(2, self._sp.size)
    shr_three = tb.immediate(3, self._sp.size)
    tb.add(self._builder.gen_str(self._flags['of'], tmp1))
    tb.add(self._builder.gen_bsh(tmp1, shr_one, tmp1))
    tb.add(self._builder.gen_str(self._flags['df'], tmp1))
    tb.add(self._builder.gen_bsh(tmp1, shr_three, tmp1))
    tb.add(self._builder.gen_str(self._flags['sf'], tmp1))
    tb.add(self._builder.gen_bsh(tmp1, shr_one, tmp1))
    tb.add(self._builder.gen_str(self._flags['zf'], tmp1))
    tb.add(self._builder.gen_bsh(tmp1, shr_two, tmp1))
    tb.add(self._builder.gen_str(self._flags['af'], tmp1))
    tb.add(self._builder.gen_bsh(tmp1, shr_two, tmp1))
    tb.add(self._builder.gen_str(self._flags['pf'], tmp1))
    tb.add(self._builder.gen_bsh(tmp1, shr_two, tmp1))
    tb.add(self._builder.gen_str(self._flags['cf'], tmp1))
    tb.add(self._builder.gen_sub(self._sp, self._ws, tmp0))
    tb.add(self._builder.gen_str(tmp0, self._sp))
    tb.add(self._builder.gen_stm(tmp1, self._sp))

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