The pushtoarraykwsplat instruction was designed to replace newarraykwsplat,
and we now meet the condition for deletion mentioned in
77c1233f79.
This commit is contained in:
Alan Wu 2024-08-13 16:56:35 -04:00 коммит произвёл GitHub
Родитель b80b839926
Коммит 525008cd78
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: B5690EEEBB952194
3 изменённых файлов: 187 добавлений и 212 удалений

Просмотреть файл

@ -452,26 +452,6 @@ newarray
val = rb_ec_ary_new_from_values(ec, num, STACK_ADDR_FROM_TOP(num));
}
/* put new array initialized with num values on the stack. There
should be at least one element on the stack, and the top element
should be a hash. If the top element is empty, it is not
included in the array.
*/
DEFINE_INSN
newarraykwsplat
(rb_num_t num)
(...)
(VALUE val)
// attr rb_snum_t sp_inc = 1 - (rb_snum_t)num;
{
if (RHASH_EMPTY_P(*STACK_ADDR_FROM_TOP(1))) {
val = rb_ary_new4(num-1, STACK_ADDR_FROM_TOP(num));
}
else {
val = rb_ary_new4(num, STACK_ADDR_FROM_TOP(num));
}
}
/* push hash onto array unless the hash is empty (as empty keyword
splats should be ignored).
*/

Просмотреть файл

@ -63,7 +63,6 @@ module RubyVM::RJIT
when :toregexp then toregexp(jit, ctx, asm)
when :intern then intern(jit, ctx, asm)
when :newarray then newarray(jit, ctx, asm)
# newarraykwsplat
when :duparray then duparray(jit, ctx, asm)
# duphash
when :expandarray then expandarray(jit, ctx, asm)
@ -944,8 +943,6 @@ module RubyVM::RJIT
KeepCompiling
end
# newarraykwsplat
# @param jit [RubyVM::RJIT::JITState]
# @param ctx [RubyVM::RJIT::Context]
# @param asm [RubyVM::RJIT::Assembler]

Просмотреть файл

@ -752,195 +752,193 @@ pub const YARVINSN_anytostring: ruby_vminsn_type = 24;
pub const YARVINSN_toregexp: ruby_vminsn_type = 25;
pub const YARVINSN_intern: ruby_vminsn_type = 26;
pub const YARVINSN_newarray: ruby_vminsn_type = 27;
pub const YARVINSN_newarraykwsplat: ruby_vminsn_type = 28;
pub const YARVINSN_pushtoarraykwsplat: ruby_vminsn_type = 29;
pub const YARVINSN_duparray: ruby_vminsn_type = 30;
pub const YARVINSN_duphash: ruby_vminsn_type = 31;
pub const YARVINSN_expandarray: ruby_vminsn_type = 32;
pub const YARVINSN_concatarray: ruby_vminsn_type = 33;
pub const YARVINSN_concattoarray: ruby_vminsn_type = 34;
pub const YARVINSN_pushtoarray: ruby_vminsn_type = 35;
pub const YARVINSN_splatarray: ruby_vminsn_type = 36;
pub const YARVINSN_splatkw: ruby_vminsn_type = 37;
pub const YARVINSN_newhash: ruby_vminsn_type = 38;
pub const YARVINSN_newrange: ruby_vminsn_type = 39;
pub const YARVINSN_pop: ruby_vminsn_type = 40;
pub const YARVINSN_dup: ruby_vminsn_type = 41;
pub const YARVINSN_dupn: ruby_vminsn_type = 42;
pub const YARVINSN_swap: ruby_vminsn_type = 43;
pub const YARVINSN_opt_reverse: ruby_vminsn_type = 44;
pub const YARVINSN_topn: ruby_vminsn_type = 45;
pub const YARVINSN_setn: ruby_vminsn_type = 46;
pub const YARVINSN_adjuststack: ruby_vminsn_type = 47;
pub const YARVINSN_defined: ruby_vminsn_type = 48;
pub const YARVINSN_definedivar: ruby_vminsn_type = 49;
pub const YARVINSN_checkmatch: ruby_vminsn_type = 50;
pub const YARVINSN_checkkeyword: ruby_vminsn_type = 51;
pub const YARVINSN_checktype: ruby_vminsn_type = 52;
pub const YARVINSN_defineclass: ruby_vminsn_type = 53;
pub const YARVINSN_definemethod: ruby_vminsn_type = 54;
pub const YARVINSN_definesmethod: ruby_vminsn_type = 55;
pub const YARVINSN_send: ruby_vminsn_type = 56;
pub const YARVINSN_sendforward: ruby_vminsn_type = 57;
pub const YARVINSN_opt_send_without_block: ruby_vminsn_type = 58;
pub const YARVINSN_objtostring: ruby_vminsn_type = 59;
pub const YARVINSN_opt_str_freeze: ruby_vminsn_type = 60;
pub const YARVINSN_opt_nil_p: ruby_vminsn_type = 61;
pub const YARVINSN_opt_str_uminus: ruby_vminsn_type = 62;
pub const YARVINSN_opt_newarray_send: ruby_vminsn_type = 63;
pub const YARVINSN_invokesuper: ruby_vminsn_type = 64;
pub const YARVINSN_invokesuperforward: ruby_vminsn_type = 65;
pub const YARVINSN_invokeblock: ruby_vminsn_type = 66;
pub const YARVINSN_leave: ruby_vminsn_type = 67;
pub const YARVINSN_throw: ruby_vminsn_type = 68;
pub const YARVINSN_jump: ruby_vminsn_type = 69;
pub const YARVINSN_branchif: ruby_vminsn_type = 70;
pub const YARVINSN_branchunless: ruby_vminsn_type = 71;
pub const YARVINSN_branchnil: ruby_vminsn_type = 72;
pub const YARVINSN_once: ruby_vminsn_type = 73;
pub const YARVINSN_opt_case_dispatch: ruby_vminsn_type = 74;
pub const YARVINSN_opt_plus: ruby_vminsn_type = 75;
pub const YARVINSN_opt_minus: ruby_vminsn_type = 76;
pub const YARVINSN_opt_mult: ruby_vminsn_type = 77;
pub const YARVINSN_opt_div: ruby_vminsn_type = 78;
pub const YARVINSN_opt_mod: ruby_vminsn_type = 79;
pub const YARVINSN_opt_eq: ruby_vminsn_type = 80;
pub const YARVINSN_opt_neq: ruby_vminsn_type = 81;
pub const YARVINSN_opt_lt: ruby_vminsn_type = 82;
pub const YARVINSN_opt_le: ruby_vminsn_type = 83;
pub const YARVINSN_opt_gt: ruby_vminsn_type = 84;
pub const YARVINSN_opt_ge: ruby_vminsn_type = 85;
pub const YARVINSN_opt_ltlt: ruby_vminsn_type = 86;
pub const YARVINSN_opt_and: ruby_vminsn_type = 87;
pub const YARVINSN_opt_or: ruby_vminsn_type = 88;
pub const YARVINSN_opt_aref: ruby_vminsn_type = 89;
pub const YARVINSN_opt_aset: ruby_vminsn_type = 90;
pub const YARVINSN_opt_aset_with: ruby_vminsn_type = 91;
pub const YARVINSN_opt_aref_with: ruby_vminsn_type = 92;
pub const YARVINSN_opt_length: ruby_vminsn_type = 93;
pub const YARVINSN_opt_size: ruby_vminsn_type = 94;
pub const YARVINSN_opt_empty_p: ruby_vminsn_type = 95;
pub const YARVINSN_opt_succ: ruby_vminsn_type = 96;
pub const YARVINSN_opt_not: ruby_vminsn_type = 97;
pub const YARVINSN_opt_regexpmatch2: ruby_vminsn_type = 98;
pub const YARVINSN_invokebuiltin: ruby_vminsn_type = 99;
pub const YARVINSN_opt_invokebuiltin_delegate: ruby_vminsn_type = 100;
pub const YARVINSN_opt_invokebuiltin_delegate_leave: ruby_vminsn_type = 101;
pub const YARVINSN_getlocal_WC_0: ruby_vminsn_type = 102;
pub const YARVINSN_getlocal_WC_1: ruby_vminsn_type = 103;
pub const YARVINSN_setlocal_WC_0: ruby_vminsn_type = 104;
pub const YARVINSN_setlocal_WC_1: ruby_vminsn_type = 105;
pub const YARVINSN_putobject_INT2FIX_0_: ruby_vminsn_type = 106;
pub const YARVINSN_putobject_INT2FIX_1_: ruby_vminsn_type = 107;
pub const YARVINSN_trace_nop: ruby_vminsn_type = 108;
pub const YARVINSN_trace_getlocal: ruby_vminsn_type = 109;
pub const YARVINSN_trace_setlocal: ruby_vminsn_type = 110;
pub const YARVINSN_trace_getblockparam: ruby_vminsn_type = 111;
pub const YARVINSN_trace_setblockparam: ruby_vminsn_type = 112;
pub const YARVINSN_trace_getblockparamproxy: ruby_vminsn_type = 113;
pub const YARVINSN_trace_getspecial: ruby_vminsn_type = 114;
pub const YARVINSN_trace_setspecial: ruby_vminsn_type = 115;
pub const YARVINSN_trace_getinstancevariable: ruby_vminsn_type = 116;
pub const YARVINSN_trace_setinstancevariable: ruby_vminsn_type = 117;
pub const YARVINSN_trace_getclassvariable: ruby_vminsn_type = 118;
pub const YARVINSN_trace_setclassvariable: ruby_vminsn_type = 119;
pub const YARVINSN_trace_opt_getconstant_path: ruby_vminsn_type = 120;
pub const YARVINSN_trace_getconstant: ruby_vminsn_type = 121;
pub const YARVINSN_trace_setconstant: ruby_vminsn_type = 122;
pub const YARVINSN_trace_getglobal: ruby_vminsn_type = 123;
pub const YARVINSN_trace_setglobal: ruby_vminsn_type = 124;
pub const YARVINSN_trace_putnil: ruby_vminsn_type = 125;
pub const YARVINSN_trace_putself: ruby_vminsn_type = 126;
pub const YARVINSN_trace_putobject: ruby_vminsn_type = 127;
pub const YARVINSN_trace_putspecialobject: ruby_vminsn_type = 128;
pub const YARVINSN_trace_putstring: ruby_vminsn_type = 129;
pub const YARVINSN_trace_putchilledstring: ruby_vminsn_type = 130;
pub const YARVINSN_trace_concatstrings: ruby_vminsn_type = 131;
pub const YARVINSN_trace_anytostring: ruby_vminsn_type = 132;
pub const YARVINSN_trace_toregexp: ruby_vminsn_type = 133;
pub const YARVINSN_trace_intern: ruby_vminsn_type = 134;
pub const YARVINSN_trace_newarray: ruby_vminsn_type = 135;
pub const YARVINSN_trace_newarraykwsplat: ruby_vminsn_type = 136;
pub const YARVINSN_trace_pushtoarraykwsplat: ruby_vminsn_type = 137;
pub const YARVINSN_trace_duparray: ruby_vminsn_type = 138;
pub const YARVINSN_trace_duphash: ruby_vminsn_type = 139;
pub const YARVINSN_trace_expandarray: ruby_vminsn_type = 140;
pub const YARVINSN_trace_concatarray: ruby_vminsn_type = 141;
pub const YARVINSN_trace_concattoarray: ruby_vminsn_type = 142;
pub const YARVINSN_trace_pushtoarray: ruby_vminsn_type = 143;
pub const YARVINSN_trace_splatarray: ruby_vminsn_type = 144;
pub const YARVINSN_trace_splatkw: ruby_vminsn_type = 145;
pub const YARVINSN_trace_newhash: ruby_vminsn_type = 146;
pub const YARVINSN_trace_newrange: ruby_vminsn_type = 147;
pub const YARVINSN_trace_pop: ruby_vminsn_type = 148;
pub const YARVINSN_trace_dup: ruby_vminsn_type = 149;
pub const YARVINSN_trace_dupn: ruby_vminsn_type = 150;
pub const YARVINSN_trace_swap: ruby_vminsn_type = 151;
pub const YARVINSN_trace_opt_reverse: ruby_vminsn_type = 152;
pub const YARVINSN_trace_topn: ruby_vminsn_type = 153;
pub const YARVINSN_trace_setn: ruby_vminsn_type = 154;
pub const YARVINSN_trace_adjuststack: ruby_vminsn_type = 155;
pub const YARVINSN_trace_defined: ruby_vminsn_type = 156;
pub const YARVINSN_trace_definedivar: ruby_vminsn_type = 157;
pub const YARVINSN_trace_checkmatch: ruby_vminsn_type = 158;
pub const YARVINSN_trace_checkkeyword: ruby_vminsn_type = 159;
pub const YARVINSN_trace_checktype: ruby_vminsn_type = 160;
pub const YARVINSN_trace_defineclass: ruby_vminsn_type = 161;
pub const YARVINSN_trace_definemethod: ruby_vminsn_type = 162;
pub const YARVINSN_trace_definesmethod: ruby_vminsn_type = 163;
pub const YARVINSN_trace_send: ruby_vminsn_type = 164;
pub const YARVINSN_trace_sendforward: ruby_vminsn_type = 165;
pub const YARVINSN_trace_opt_send_without_block: ruby_vminsn_type = 166;
pub const YARVINSN_trace_objtostring: ruby_vminsn_type = 167;
pub const YARVINSN_trace_opt_str_freeze: ruby_vminsn_type = 168;
pub const YARVINSN_trace_opt_nil_p: ruby_vminsn_type = 169;
pub const YARVINSN_trace_opt_str_uminus: ruby_vminsn_type = 170;
pub const YARVINSN_trace_opt_newarray_send: ruby_vminsn_type = 171;
pub const YARVINSN_trace_invokesuper: ruby_vminsn_type = 172;
pub const YARVINSN_trace_invokesuperforward: ruby_vminsn_type = 173;
pub const YARVINSN_trace_invokeblock: ruby_vminsn_type = 174;
pub const YARVINSN_trace_leave: ruby_vminsn_type = 175;
pub const YARVINSN_trace_throw: ruby_vminsn_type = 176;
pub const YARVINSN_trace_jump: ruby_vminsn_type = 177;
pub const YARVINSN_trace_branchif: ruby_vminsn_type = 178;
pub const YARVINSN_trace_branchunless: ruby_vminsn_type = 179;
pub const YARVINSN_trace_branchnil: ruby_vminsn_type = 180;
pub const YARVINSN_trace_once: ruby_vminsn_type = 181;
pub const YARVINSN_trace_opt_case_dispatch: ruby_vminsn_type = 182;
pub const YARVINSN_trace_opt_plus: ruby_vminsn_type = 183;
pub const YARVINSN_trace_opt_minus: ruby_vminsn_type = 184;
pub const YARVINSN_trace_opt_mult: ruby_vminsn_type = 185;
pub const YARVINSN_trace_opt_div: ruby_vminsn_type = 186;
pub const YARVINSN_trace_opt_mod: ruby_vminsn_type = 187;
pub const YARVINSN_trace_opt_eq: ruby_vminsn_type = 188;
pub const YARVINSN_trace_opt_neq: ruby_vminsn_type = 189;
pub const YARVINSN_trace_opt_lt: ruby_vminsn_type = 190;
pub const YARVINSN_trace_opt_le: ruby_vminsn_type = 191;
pub const YARVINSN_trace_opt_gt: ruby_vminsn_type = 192;
pub const YARVINSN_trace_opt_ge: ruby_vminsn_type = 193;
pub const YARVINSN_trace_opt_ltlt: ruby_vminsn_type = 194;
pub const YARVINSN_trace_opt_and: ruby_vminsn_type = 195;
pub const YARVINSN_trace_opt_or: ruby_vminsn_type = 196;
pub const YARVINSN_trace_opt_aref: ruby_vminsn_type = 197;
pub const YARVINSN_trace_opt_aset: ruby_vminsn_type = 198;
pub const YARVINSN_trace_opt_aset_with: ruby_vminsn_type = 199;
pub const YARVINSN_trace_opt_aref_with: ruby_vminsn_type = 200;
pub const YARVINSN_trace_opt_length: ruby_vminsn_type = 201;
pub const YARVINSN_trace_opt_size: ruby_vminsn_type = 202;
pub const YARVINSN_trace_opt_empty_p: ruby_vminsn_type = 203;
pub const YARVINSN_trace_opt_succ: ruby_vminsn_type = 204;
pub const YARVINSN_trace_opt_not: ruby_vminsn_type = 205;
pub const YARVINSN_trace_opt_regexpmatch2: ruby_vminsn_type = 206;
pub const YARVINSN_trace_invokebuiltin: ruby_vminsn_type = 207;
pub const YARVINSN_trace_opt_invokebuiltin_delegate: ruby_vminsn_type = 208;
pub const YARVINSN_trace_opt_invokebuiltin_delegate_leave: ruby_vminsn_type = 209;
pub const YARVINSN_trace_getlocal_WC_0: ruby_vminsn_type = 210;
pub const YARVINSN_trace_getlocal_WC_1: ruby_vminsn_type = 211;
pub const YARVINSN_trace_setlocal_WC_0: ruby_vminsn_type = 212;
pub const YARVINSN_trace_setlocal_WC_1: ruby_vminsn_type = 213;
pub const YARVINSN_trace_putobject_INT2FIX_0_: ruby_vminsn_type = 214;
pub const YARVINSN_trace_putobject_INT2FIX_1_: ruby_vminsn_type = 215;
pub const VM_INSTRUCTION_SIZE: ruby_vminsn_type = 216;
pub const YARVINSN_pushtoarraykwsplat: ruby_vminsn_type = 28;
pub const YARVINSN_duparray: ruby_vminsn_type = 29;
pub const YARVINSN_duphash: ruby_vminsn_type = 30;
pub const YARVINSN_expandarray: ruby_vminsn_type = 31;
pub const YARVINSN_concatarray: ruby_vminsn_type = 32;
pub const YARVINSN_concattoarray: ruby_vminsn_type = 33;
pub const YARVINSN_pushtoarray: ruby_vminsn_type = 34;
pub const YARVINSN_splatarray: ruby_vminsn_type = 35;
pub const YARVINSN_splatkw: ruby_vminsn_type = 36;
pub const YARVINSN_newhash: ruby_vminsn_type = 37;
pub const YARVINSN_newrange: ruby_vminsn_type = 38;
pub const YARVINSN_pop: ruby_vminsn_type = 39;
pub const YARVINSN_dup: ruby_vminsn_type = 40;
pub const YARVINSN_dupn: ruby_vminsn_type = 41;
pub const YARVINSN_swap: ruby_vminsn_type = 42;
pub const YARVINSN_opt_reverse: ruby_vminsn_type = 43;
pub const YARVINSN_topn: ruby_vminsn_type = 44;
pub const YARVINSN_setn: ruby_vminsn_type = 45;
pub const YARVINSN_adjuststack: ruby_vminsn_type = 46;
pub const YARVINSN_defined: ruby_vminsn_type = 47;
pub const YARVINSN_definedivar: ruby_vminsn_type = 48;
pub const YARVINSN_checkmatch: ruby_vminsn_type = 49;
pub const YARVINSN_checkkeyword: ruby_vminsn_type = 50;
pub const YARVINSN_checktype: ruby_vminsn_type = 51;
pub const YARVINSN_defineclass: ruby_vminsn_type = 52;
pub const YARVINSN_definemethod: ruby_vminsn_type = 53;
pub const YARVINSN_definesmethod: ruby_vminsn_type = 54;
pub const YARVINSN_send: ruby_vminsn_type = 55;
pub const YARVINSN_sendforward: ruby_vminsn_type = 56;
pub const YARVINSN_opt_send_without_block: ruby_vminsn_type = 57;
pub const YARVINSN_objtostring: ruby_vminsn_type = 58;
pub const YARVINSN_opt_str_freeze: ruby_vminsn_type = 59;
pub const YARVINSN_opt_nil_p: ruby_vminsn_type = 60;
pub const YARVINSN_opt_str_uminus: ruby_vminsn_type = 61;
pub const YARVINSN_opt_newarray_send: ruby_vminsn_type = 62;
pub const YARVINSN_invokesuper: ruby_vminsn_type = 63;
pub const YARVINSN_invokesuperforward: ruby_vminsn_type = 64;
pub const YARVINSN_invokeblock: ruby_vminsn_type = 65;
pub const YARVINSN_leave: ruby_vminsn_type = 66;
pub const YARVINSN_throw: ruby_vminsn_type = 67;
pub const YARVINSN_jump: ruby_vminsn_type = 68;
pub const YARVINSN_branchif: ruby_vminsn_type = 69;
pub const YARVINSN_branchunless: ruby_vminsn_type = 70;
pub const YARVINSN_branchnil: ruby_vminsn_type = 71;
pub const YARVINSN_once: ruby_vminsn_type = 72;
pub const YARVINSN_opt_case_dispatch: ruby_vminsn_type = 73;
pub const YARVINSN_opt_plus: ruby_vminsn_type = 74;
pub const YARVINSN_opt_minus: ruby_vminsn_type = 75;
pub const YARVINSN_opt_mult: ruby_vminsn_type = 76;
pub const YARVINSN_opt_div: ruby_vminsn_type = 77;
pub const YARVINSN_opt_mod: ruby_vminsn_type = 78;
pub const YARVINSN_opt_eq: ruby_vminsn_type = 79;
pub const YARVINSN_opt_neq: ruby_vminsn_type = 80;
pub const YARVINSN_opt_lt: ruby_vminsn_type = 81;
pub const YARVINSN_opt_le: ruby_vminsn_type = 82;
pub const YARVINSN_opt_gt: ruby_vminsn_type = 83;
pub const YARVINSN_opt_ge: ruby_vminsn_type = 84;
pub const YARVINSN_opt_ltlt: ruby_vminsn_type = 85;
pub const YARVINSN_opt_and: ruby_vminsn_type = 86;
pub const YARVINSN_opt_or: ruby_vminsn_type = 87;
pub const YARVINSN_opt_aref: ruby_vminsn_type = 88;
pub const YARVINSN_opt_aset: ruby_vminsn_type = 89;
pub const YARVINSN_opt_aset_with: ruby_vminsn_type = 90;
pub const YARVINSN_opt_aref_with: ruby_vminsn_type = 91;
pub const YARVINSN_opt_length: ruby_vminsn_type = 92;
pub const YARVINSN_opt_size: ruby_vminsn_type = 93;
pub const YARVINSN_opt_empty_p: ruby_vminsn_type = 94;
pub const YARVINSN_opt_succ: ruby_vminsn_type = 95;
pub const YARVINSN_opt_not: ruby_vminsn_type = 96;
pub const YARVINSN_opt_regexpmatch2: ruby_vminsn_type = 97;
pub const YARVINSN_invokebuiltin: ruby_vminsn_type = 98;
pub const YARVINSN_opt_invokebuiltin_delegate: ruby_vminsn_type = 99;
pub const YARVINSN_opt_invokebuiltin_delegate_leave: ruby_vminsn_type = 100;
pub const YARVINSN_getlocal_WC_0: ruby_vminsn_type = 101;
pub const YARVINSN_getlocal_WC_1: ruby_vminsn_type = 102;
pub const YARVINSN_setlocal_WC_0: ruby_vminsn_type = 103;
pub const YARVINSN_setlocal_WC_1: ruby_vminsn_type = 104;
pub const YARVINSN_putobject_INT2FIX_0_: ruby_vminsn_type = 105;
pub const YARVINSN_putobject_INT2FIX_1_: ruby_vminsn_type = 106;
pub const YARVINSN_trace_nop: ruby_vminsn_type = 107;
pub const YARVINSN_trace_getlocal: ruby_vminsn_type = 108;
pub const YARVINSN_trace_setlocal: ruby_vminsn_type = 109;
pub const YARVINSN_trace_getblockparam: ruby_vminsn_type = 110;
pub const YARVINSN_trace_setblockparam: ruby_vminsn_type = 111;
pub const YARVINSN_trace_getblockparamproxy: ruby_vminsn_type = 112;
pub const YARVINSN_trace_getspecial: ruby_vminsn_type = 113;
pub const YARVINSN_trace_setspecial: ruby_vminsn_type = 114;
pub const YARVINSN_trace_getinstancevariable: ruby_vminsn_type = 115;
pub const YARVINSN_trace_setinstancevariable: ruby_vminsn_type = 116;
pub const YARVINSN_trace_getclassvariable: ruby_vminsn_type = 117;
pub const YARVINSN_trace_setclassvariable: ruby_vminsn_type = 118;
pub const YARVINSN_trace_opt_getconstant_path: ruby_vminsn_type = 119;
pub const YARVINSN_trace_getconstant: ruby_vminsn_type = 120;
pub const YARVINSN_trace_setconstant: ruby_vminsn_type = 121;
pub const YARVINSN_trace_getglobal: ruby_vminsn_type = 122;
pub const YARVINSN_trace_setglobal: ruby_vminsn_type = 123;
pub const YARVINSN_trace_putnil: ruby_vminsn_type = 124;
pub const YARVINSN_trace_putself: ruby_vminsn_type = 125;
pub const YARVINSN_trace_putobject: ruby_vminsn_type = 126;
pub const YARVINSN_trace_putspecialobject: ruby_vminsn_type = 127;
pub const YARVINSN_trace_putstring: ruby_vminsn_type = 128;
pub const YARVINSN_trace_putchilledstring: ruby_vminsn_type = 129;
pub const YARVINSN_trace_concatstrings: ruby_vminsn_type = 130;
pub const YARVINSN_trace_anytostring: ruby_vminsn_type = 131;
pub const YARVINSN_trace_toregexp: ruby_vminsn_type = 132;
pub const YARVINSN_trace_intern: ruby_vminsn_type = 133;
pub const YARVINSN_trace_newarray: ruby_vminsn_type = 134;
pub const YARVINSN_trace_pushtoarraykwsplat: ruby_vminsn_type = 135;
pub const YARVINSN_trace_duparray: ruby_vminsn_type = 136;
pub const YARVINSN_trace_duphash: ruby_vminsn_type = 137;
pub const YARVINSN_trace_expandarray: ruby_vminsn_type = 138;
pub const YARVINSN_trace_concatarray: ruby_vminsn_type = 139;
pub const YARVINSN_trace_concattoarray: ruby_vminsn_type = 140;
pub const YARVINSN_trace_pushtoarray: ruby_vminsn_type = 141;
pub const YARVINSN_trace_splatarray: ruby_vminsn_type = 142;
pub const YARVINSN_trace_splatkw: ruby_vminsn_type = 143;
pub const YARVINSN_trace_newhash: ruby_vminsn_type = 144;
pub const YARVINSN_trace_newrange: ruby_vminsn_type = 145;
pub const YARVINSN_trace_pop: ruby_vminsn_type = 146;
pub const YARVINSN_trace_dup: ruby_vminsn_type = 147;
pub const YARVINSN_trace_dupn: ruby_vminsn_type = 148;
pub const YARVINSN_trace_swap: ruby_vminsn_type = 149;
pub const YARVINSN_trace_opt_reverse: ruby_vminsn_type = 150;
pub const YARVINSN_trace_topn: ruby_vminsn_type = 151;
pub const YARVINSN_trace_setn: ruby_vminsn_type = 152;
pub const YARVINSN_trace_adjuststack: ruby_vminsn_type = 153;
pub const YARVINSN_trace_defined: ruby_vminsn_type = 154;
pub const YARVINSN_trace_definedivar: ruby_vminsn_type = 155;
pub const YARVINSN_trace_checkmatch: ruby_vminsn_type = 156;
pub const YARVINSN_trace_checkkeyword: ruby_vminsn_type = 157;
pub const YARVINSN_trace_checktype: ruby_vminsn_type = 158;
pub const YARVINSN_trace_defineclass: ruby_vminsn_type = 159;
pub const YARVINSN_trace_definemethod: ruby_vminsn_type = 160;
pub const YARVINSN_trace_definesmethod: ruby_vminsn_type = 161;
pub const YARVINSN_trace_send: ruby_vminsn_type = 162;
pub const YARVINSN_trace_sendforward: ruby_vminsn_type = 163;
pub const YARVINSN_trace_opt_send_without_block: ruby_vminsn_type = 164;
pub const YARVINSN_trace_objtostring: ruby_vminsn_type = 165;
pub const YARVINSN_trace_opt_str_freeze: ruby_vminsn_type = 166;
pub const YARVINSN_trace_opt_nil_p: ruby_vminsn_type = 167;
pub const YARVINSN_trace_opt_str_uminus: ruby_vminsn_type = 168;
pub const YARVINSN_trace_opt_newarray_send: ruby_vminsn_type = 169;
pub const YARVINSN_trace_invokesuper: ruby_vminsn_type = 170;
pub const YARVINSN_trace_invokesuperforward: ruby_vminsn_type = 171;
pub const YARVINSN_trace_invokeblock: ruby_vminsn_type = 172;
pub const YARVINSN_trace_leave: ruby_vminsn_type = 173;
pub const YARVINSN_trace_throw: ruby_vminsn_type = 174;
pub const YARVINSN_trace_jump: ruby_vminsn_type = 175;
pub const YARVINSN_trace_branchif: ruby_vminsn_type = 176;
pub const YARVINSN_trace_branchunless: ruby_vminsn_type = 177;
pub const YARVINSN_trace_branchnil: ruby_vminsn_type = 178;
pub const YARVINSN_trace_once: ruby_vminsn_type = 179;
pub const YARVINSN_trace_opt_case_dispatch: ruby_vminsn_type = 180;
pub const YARVINSN_trace_opt_plus: ruby_vminsn_type = 181;
pub const YARVINSN_trace_opt_minus: ruby_vminsn_type = 182;
pub const YARVINSN_trace_opt_mult: ruby_vminsn_type = 183;
pub const YARVINSN_trace_opt_div: ruby_vminsn_type = 184;
pub const YARVINSN_trace_opt_mod: ruby_vminsn_type = 185;
pub const YARVINSN_trace_opt_eq: ruby_vminsn_type = 186;
pub const YARVINSN_trace_opt_neq: ruby_vminsn_type = 187;
pub const YARVINSN_trace_opt_lt: ruby_vminsn_type = 188;
pub const YARVINSN_trace_opt_le: ruby_vminsn_type = 189;
pub const YARVINSN_trace_opt_gt: ruby_vminsn_type = 190;
pub const YARVINSN_trace_opt_ge: ruby_vminsn_type = 191;
pub const YARVINSN_trace_opt_ltlt: ruby_vminsn_type = 192;
pub const YARVINSN_trace_opt_and: ruby_vminsn_type = 193;
pub const YARVINSN_trace_opt_or: ruby_vminsn_type = 194;
pub const YARVINSN_trace_opt_aref: ruby_vminsn_type = 195;
pub const YARVINSN_trace_opt_aset: ruby_vminsn_type = 196;
pub const YARVINSN_trace_opt_aset_with: ruby_vminsn_type = 197;
pub const YARVINSN_trace_opt_aref_with: ruby_vminsn_type = 198;
pub const YARVINSN_trace_opt_length: ruby_vminsn_type = 199;
pub const YARVINSN_trace_opt_size: ruby_vminsn_type = 200;
pub const YARVINSN_trace_opt_empty_p: ruby_vminsn_type = 201;
pub const YARVINSN_trace_opt_succ: ruby_vminsn_type = 202;
pub const YARVINSN_trace_opt_not: ruby_vminsn_type = 203;
pub const YARVINSN_trace_opt_regexpmatch2: ruby_vminsn_type = 204;
pub const YARVINSN_trace_invokebuiltin: ruby_vminsn_type = 205;
pub const YARVINSN_trace_opt_invokebuiltin_delegate: ruby_vminsn_type = 206;
pub const YARVINSN_trace_opt_invokebuiltin_delegate_leave: ruby_vminsn_type = 207;
pub const YARVINSN_trace_getlocal_WC_0: ruby_vminsn_type = 208;
pub const YARVINSN_trace_getlocal_WC_1: ruby_vminsn_type = 209;
pub const YARVINSN_trace_setlocal_WC_0: ruby_vminsn_type = 210;
pub const YARVINSN_trace_setlocal_WC_1: ruby_vminsn_type = 211;
pub const YARVINSN_trace_putobject_INT2FIX_0_: ruby_vminsn_type = 212;
pub const YARVINSN_trace_putobject_INT2FIX_1_: ruby_vminsn_type = 213;
pub const VM_INSTRUCTION_SIZE: ruby_vminsn_type = 214;
pub type ruby_vminsn_type = u32;
pub type rb_iseq_callback = ::std::option::Option<
unsafe extern "C" fn(arg1: *const rb_iseq_t, arg2: *mut ::std::os::raw::c_void),