def _get_irsb(self, v):
        """
        Get the IRSB object from an address, a simuvex.SimProcedure, a simuvex.SimIRSB, or a CFGNode.
        :param v: Can be one of the following: an address, a simuvex.SimProcedure, a simuvex.SimIRSB, or a CFGNode.
        :return: The IRSB instance.
        :rtype: pyvex.IRSB
        """

        if isinstance(v, simuvex.SimProcedure):
            raise AngrBladeSimProcError()

        elif isinstance(v, simuvex.SimIRSB):
            v = v.addr

        elif isinstance(v, CFGNode):
            v = v.addr

        if (int, long) in type(v):
            # Generate an IRSB from self._project

            if v in self._run_cache:
                return self._run_cache[v]

            if self.project:
                irsb = self.project.factory.block(v).vex
                self._run_cache[v] = irsb
                return irsb
            else:
                raise AngrBladeError("Project must be specified if you give me all addresses for SimRuns")

        else:
            raise AngrBladeError('Unsupported SimRun argument type %s', type(v))
dataset/ETHPy150Open angr/angr/angr/blade.py/Blade._get_irsb/swapped operands of `in`