docs: def get_insns(cls = None):
      """
      Get all Instructions. This is based on all known subclasses of `cls`. If non is given, all Instructions are returned.
      Only such instructions are returned that can be generated, i.e., that have a mnemonic, opcode, etc. So other
      classes in the hierarchy are not matched.
  
      :param cls: Base class to get list
      :type cls: Instruction
      :return: List of instructions
      """
      insns = []
  
      if cls is None:
          cls = Instruction
  
      if "_mnemonic" in cls.__dict__.keys():
          insns = [cls]
  
      for subcls in cls.__subclasses__():
          insns += get_insns(subcls)
  
      return insns