def get_register_expr(self, register_name, mode="post"):
        reg_info = self._arch_info.alias_mapper.get(register_name, None)

        if reg_info:
            var_base_name, offset = reg_info

            if mode == "pre":
                var_name = self._translator.get_init_name(var_base_name)
            elif mode == "post":
                var_name = self._translator.get_curr_name(var_base_name)
            else:
                raise Exception()

            var_size = self._arch_info.registers_size[var_base_name]

            ret_val = self._translator._solver.mkBitVec(var_size, var_name)
            ret_val = smtlibv2.EXTRACT(
                ret_val,
                offset,
                self._arch_info.registers_size[register_name]
            )
        else:
            if mode == "pre":
                var_name = self._translator.get_init_name(register_name)
            elif mode == "post":
                var_name = self._translator.get_curr_name(register_name)
            else:
                raise Exception()

            var_size = self._arch_info.registers_size[register_name]

            ret_val = self._solver.mkBitVec(var_size, var_name)

        return ret_val
Return a smt bit vector that represents a register.
dataset/ETHPy150Open programa-stic/barf-project/barf/barf/analysis/codeanalyzer/codeanalyzer.py/CodeAnalyzer.get_register_expr