Ruby  2.7.1p83(2020-03-31revisiona0c7c23c9cec0d0ffcba012279cd652d28ad5bf3)
Data Structures | Public Types | Data Fields
rb_iseq_constant_body Struct Reference

#include <vm_core.h>

Data Structures

struct  iseq_insn_info
 

Public Types

enum  iseq_type {
  ISEQ_TYPE_TOP, ISEQ_TYPE_METHOD, ISEQ_TYPE_BLOCK, ISEQ_TYPE_CLASS,
  ISEQ_TYPE_RESCUE, ISEQ_TYPE_ENSURE, ISEQ_TYPE_EVAL, ISEQ_TYPE_MAIN,
  ISEQ_TYPE_PLAIN, ISEQ_TYPE_TOP, ISEQ_TYPE_METHOD, ISEQ_TYPE_BLOCK,
  ISEQ_TYPE_CLASS, ISEQ_TYPE_RESCUE, ISEQ_TYPE_ENSURE, ISEQ_TYPE_EVAL,
  ISEQ_TYPE_MAIN, ISEQ_TYPE_PLAIN
}
 
enum  iseq_type {
  ISEQ_TYPE_TOP, ISEQ_TYPE_METHOD, ISEQ_TYPE_BLOCK, ISEQ_TYPE_CLASS,
  ISEQ_TYPE_RESCUE, ISEQ_TYPE_ENSURE, ISEQ_TYPE_EVAL, ISEQ_TYPE_MAIN,
  ISEQ_TYPE_PLAIN, ISEQ_TYPE_TOP, ISEQ_TYPE_METHOD, ISEQ_TYPE_BLOCK,
  ISEQ_TYPE_CLASS, ISEQ_TYPE_RESCUE, ISEQ_TYPE_ENSURE, ISEQ_TYPE_EVAL,
  ISEQ_TYPE_MAIN, ISEQ_TYPE_PLAIN
}
 

Data Fields

enum rb_iseq_constant_body::iseq_type type
 
unsigned int iseq_size
 
VALUEiseq_encoded
 
struct {
   struct {
      unsigned int   has_lead: 1
 
      unsigned int   has_opt: 1
 
      unsigned int   has_rest: 1
 
      unsigned int   has_post: 1
 
      unsigned int   has_kw: 1
 
      unsigned int   has_kwrest: 1
 
      unsigned int   has_block: 1
 
      unsigned int   ambiguous_param0: 1
 
      unsigned int   accepts_no_kwarg: 1
 
      unsigned int   ruby2_keywords: 1
 
   }   flags
 
   unsigned int   size
 
   int   lead_num
 
   int   opt_num
 
   int   rest_start
 
   int   post_start
 
   int   post_num
 
   int   block_start
 
   const VALUE *   opt_table
 
   struct rb_iseq_param_keyword {
      int   num
 
      int   required_num
 
      int   bits_start
 
      int   rest_start
 
      const ID *   table
 
      VALUE *   default_values
 
   }   keyword
 
param
 parameter information More...
 
rb_iseq_location_t location
 
struct rb_iseq_constant_body::iseq_insn_info insns_info
 
const IDlocal_table
 
struct iseq_catch_tablecatch_table
 
const struct rb_iseq_structparent_iseq
 
struct rb_iseq_structlocal_iseq
 
union iseq_inline_storage_entryis_entries
 
struct rb_call_datacall_data
 
struct {
   rb_snum_t   flip_count
 
   VALUE   coverage
 
   VALUE   pc2branchindex
 
   VALUE *   original_iseq
 
variable
 
unsigned int local_table_size
 
unsigned int is_size
 
unsigned int ci_size
 
unsigned int ci_kw_size
 
unsigned int stack_max
 
char catch_except_p
 
uintptr_t iseq_unique_id
 
struct {
   struct {
      unsigned int   has_lead: 1
 
      unsigned int   has_opt: 1
 
      unsigned int   has_rest: 1
 
      unsigned int   has_post: 1
 
      unsigned int   has_kw: 1
 
      unsigned int   has_kwrest: 1
 
      unsigned int   has_block: 1
 
      unsigned int   ambiguous_param0: 1
 
      unsigned int   accepts_no_kwarg: 1
 
      unsigned int   ruby2_keywords: 1
 
   }   flags
 
   unsigned int   size
 
   int   lead_num
 
   int   opt_num
 
   int   rest_start
 
   int   post_start
 
   int   post_num
 
   int   block_start
 
   const VALUE *   opt_table
 
   struct rb_iseq_param_keyword {
      int   num
 
      int   required_num
 
      int   bits_start
 
      int   rest_start
 
      const ID *   table
 
      VALUE *   default_values
 
   }   keyword
 
param
 
struct {
   rb_snum_t   flip_count
 
   VALUE   coverage
 
   VALUE   pc2branchindex
 
   VALUE *   original_iseq
 
variable
 
VALUE(* jit_func )(struct rb_execution_context_struct *, struct rb_control_frame_struct *)
 
long unsigned total_calls
 
struct rb_mjit_unitjit_unit
 

Detailed Description

Definition at line 311 of file vm_core.h.

Member Enumeration Documentation

◆ iseq_type [1/2]

Enumerator
ISEQ_TYPE_TOP 
ISEQ_TYPE_METHOD 
ISEQ_TYPE_BLOCK 
ISEQ_TYPE_CLASS 
ISEQ_TYPE_RESCUE 
ISEQ_TYPE_ENSURE 
ISEQ_TYPE_EVAL 
ISEQ_TYPE_MAIN 
ISEQ_TYPE_PLAIN 
ISEQ_TYPE_TOP 
ISEQ_TYPE_METHOD 
ISEQ_TYPE_BLOCK 
ISEQ_TYPE_CLASS 
ISEQ_TYPE_RESCUE 
ISEQ_TYPE_ENSURE 
ISEQ_TYPE_EVAL 
ISEQ_TYPE_MAIN 
ISEQ_TYPE_PLAIN 

Definition at line 312 of file vm_core.h.

◆ iseq_type [2/2]

Enumerator
ISEQ_TYPE_TOP 
ISEQ_TYPE_METHOD 
ISEQ_TYPE_BLOCK 
ISEQ_TYPE_CLASS 
ISEQ_TYPE_RESCUE 
ISEQ_TYPE_ENSURE 
ISEQ_TYPE_EVAL 
ISEQ_TYPE_MAIN 
ISEQ_TYPE_PLAIN 
ISEQ_TYPE_TOP 
ISEQ_TYPE_METHOD 
ISEQ_TYPE_BLOCK 
ISEQ_TYPE_CLASS 
ISEQ_TYPE_RESCUE 
ISEQ_TYPE_ENSURE 
ISEQ_TYPE_EVAL 
ISEQ_TYPE_MAIN 
ISEQ_TYPE_PLAIN 

Definition at line 9529 of file rb_mjit_min_header-2.7.1.h.

Field Documentation

◆ accepts_no_kwarg

unsigned int rb_iseq_constant_body::accepts_no_kwarg

Definition at line 361 of file vm_core.h.

◆ ambiguous_param0

unsigned int rb_iseq_constant_body::ambiguous_param0

Definition at line 360 of file vm_core.h.

◆ bits_start

int rb_iseq_constant_body::bits_start

Definition at line 392 of file vm_core.h.

◆ block_start

int rb_iseq_constant_body::block_start

Definition at line 372 of file vm_core.h.

Referenced by rb_iseq_parameters().

◆ call_data

struct rb_call_data * rb_iseq_constant_body::call_data

Definition at line 421 of file vm_core.h.

Referenced by rb_iseq_free(), and rb_iseq_memsize().

◆ catch_except_p

char rb_iseq_constant_body::catch_except_p

Definition at line 441 of file vm_core.h.

◆ catch_table

struct iseq_catch_table * rb_iseq_constant_body::catch_table

Definition at line 414 of file vm_core.h.

Referenced by rb_iseq_free(), and rb_iseq_memsize().

◆ ci_kw_size

unsigned int rb_iseq_constant_body::ci_kw_size

Definition at line 438 of file vm_core.h.

Referenced by rb_iseq_free().

◆ ci_size

unsigned int rb_iseq_constant_body::ci_size

Definition at line 437 of file vm_core.h.

Referenced by rb_iseq_free(), and rb_iseq_memsize().

◆ coverage

VALUE rb_iseq_constant_body::coverage

Definition at line 430 of file vm_core.h.

Referenced by rb_iseq_new_top(), and rb_iseq_update_references().

◆ default_values

VALUE* rb_iseq_constant_body::default_values

Definition at line 395 of file vm_core.h.

◆ flags [1/2]

struct { ... } rb_iseq_constant_body::flags

◆ flags [2/2]

struct { ... } rb_iseq_constant_body::flags

◆ flip_count

rb_snum_t rb_iseq_constant_body::flip_count

Definition at line 429 of file vm_core.h.

◆ has_block

unsigned int rb_iseq_constant_body::has_block

Definition at line 358 of file vm_core.h.

◆ has_kw

unsigned int rb_iseq_constant_body::has_kw

Definition at line 356 of file vm_core.h.

◆ has_kwrest

unsigned int rb_iseq_constant_body::has_kwrest

Definition at line 357 of file vm_core.h.

◆ has_lead

unsigned int rb_iseq_constant_body::has_lead

Definition at line 352 of file vm_core.h.

◆ has_opt

unsigned int rb_iseq_constant_body::has_opt

Definition at line 353 of file vm_core.h.

◆ has_post

unsigned int rb_iseq_constant_body::has_post

Definition at line 355 of file vm_core.h.

◆ has_rest

unsigned int rb_iseq_constant_body::has_rest

Definition at line 354 of file vm_core.h.

◆ insns_info

struct rb_iseq_constant_body::iseq_insn_info rb_iseq_constant_body::insns_info

◆ is_entries

union iseq_inline_storage_entry * rb_iseq_constant_body::is_entries

Definition at line 420 of file vm_core.h.

Referenced by rb_iseq_free().

◆ is_size

unsigned int rb_iseq_constant_body::is_size

Definition at line 436 of file vm_core.h.

◆ iseq_encoded

VALUE * rb_iseq_constant_body::iseq_encoded

◆ iseq_size

unsigned int rb_iseq_constant_body::iseq_size

◆ iseq_unique_id

uintptr_t rb_iseq_constant_body::iseq_unique_id

Definition at line 451 of file vm_core.h.

Referenced by rb_iseq_constant_body_alloc().

◆ jit_func

VALUE(* rb_iseq_constant_body::jit_func) (struct rb_execution_context_struct *, struct rb_control_frame_struct *)

Definition at line 9597 of file rb_mjit_min_header-2.7.1.h.

◆ jit_unit

struct rb_mjit_unit* rb_iseq_constant_body::jit_unit

Definition at line 9600 of file rb_mjit_min_header-2.7.1.h.

◆ keyword [1/2]

const { ... } ::rb_iseq_param_keyword * rb_iseq_constant_body::keyword

Referenced by rb_iseq_free(), and rb_iseq_parameters().

◆ keyword [2/2]

const { ... } ::rb_iseq_param_keyword * rb_iseq_constant_body::keyword

◆ lead_num

int rb_iseq_constant_body::lead_num

Definition at line 367 of file vm_core.h.

Referenced by rb_iseq_parameters().

◆ local_iseq

struct rb_iseq_struct * rb_iseq_constant_body::local_iseq

◆ local_table

const ID * rb_iseq_constant_body::local_table

Definition at line 411 of file vm_core.h.

Referenced by rb_dvar_defined(), rb_iseq_build_from_ary(), rb_iseq_free(), and rb_local_defined().

◆ local_table_size

unsigned int rb_iseq_constant_body::local_table_size

◆ location

rb_iseq_location_t rb_iseq_constant_body::location

◆ num

int rb_iseq_constant_body::num

Definition at line 390 of file vm_core.h.

◆ opt_num

int rb_iseq_constant_body::opt_num

Definition at line 368 of file vm_core.h.

Referenced by rb_iseq_parameters().

◆ opt_table

const VALUE* rb_iseq_constant_body::opt_table

Definition at line 374 of file vm_core.h.

Referenced by rb_iseq_free().

◆ original_iseq

VALUE* rb_iseq_constant_body::original_iseq

Definition at line 432 of file vm_core.h.

◆ param [1/2]

struct { ... } rb_iseq_constant_body::param

parameter information

def m(a1, a2, ..., aM, # mandatory b1=(...), b2=(...), ..., bN=(...), # optional *c, # rest d1, d2, ..., dO, # post e1:(...), e2:(...), ..., eK:(...), # keyword **f, # keyword_rest &g) # block =>

lead_num = M opt_num = N rest_start = M+N post_start = M+N+(*1) post_num = O keyword_num = K block_start = M+N+(*1)+O+K keyword_bits = M+N+(*1)+O+K+(&1) size = M+N+O+(*1)+K+(&1)+(**1) // parameter size.

Referenced by rb_iseq_build_from_ary(), rb_iseq_free(), rb_iseq_parameters(), and rb_simple_iseq_p().

◆ param [2/2]

struct { ... } rb_iseq_constant_body::param

◆ parent_iseq

const struct rb_iseq_struct * rb_iseq_constant_body::parent_iseq

Definition at line 417 of file vm_core.h.

Referenced by rb_dvar_defined(), rb_iseq_ibf_dump(), and rb_iseq_update_references().

◆ pc2branchindex

VALUE rb_iseq_constant_body::pc2branchindex

Definition at line 431 of file vm_core.h.

Referenced by rb_iseq_update_references().

◆ post_num

int rb_iseq_constant_body::post_num

Definition at line 371 of file vm_core.h.

Referenced by rb_iseq_parameters().

◆ post_start

int rb_iseq_constant_body::post_start

Definition at line 370 of file vm_core.h.

Referenced by rb_iseq_parameters().

◆ required_num

int rb_iseq_constant_body::required_num

Definition at line 391 of file vm_core.h.

◆ rest_start

int rb_iseq_constant_body::rest_start

Definition at line 369 of file vm_core.h.

Referenced by rb_iseq_parameters().

◆ ruby2_keywords

unsigned int rb_iseq_constant_body::ruby2_keywords

Definition at line 362 of file vm_core.h.

◆ size

unsigned int rb_iseq_constant_body::size

Definition at line 365 of file vm_core.h.

Referenced by rb_iseq_parameters().

◆ stack_max

unsigned int rb_iseq_constant_body::stack_max

Definition at line 439 of file vm_core.h.

◆ table

const ID* rb_iseq_constant_body::table

Definition at line 394 of file vm_core.h.

◆ total_calls

long unsigned rb_iseq_constant_body::total_calls

Definition at line 9599 of file rb_mjit_min_header-2.7.1.h.

◆ type

enum rb_iseq_constant_body::iseq_type rb_iseq_constant_body::type

◆ variable [1/2]

struct { ... } rb_iseq_constant_body::variable

◆ variable [2/2]

struct { ... } rb_iseq_constant_body::variable

The documentation for this struct was generated from the following files: