ZJIT: Drop trace_zjit_* instructions (#13189)
This commit is contained in:
parent
926411171d
commit
58e3aa0224
Notes:
git
2025-04-28 16:26:11 +00:00
Merged-By: k0kubun <takashikkbn@gmail.com>
57
iseq.c
57
iseq.c
@ -3283,7 +3283,7 @@ iseq_data_to_ary(const rb_iseq_t *iseq)
|
||||
VALUE exception = rb_ary_new(); /* [[....]] */
|
||||
VALUE misc = rb_hash_new();
|
||||
|
||||
static ID insn_syms[VM_INSTRUCTION_SIZE/2]; /* w/o-trace only */
|
||||
static ID insn_syms[VM_BARE_INSTRUCTION_SIZE]; /* w/o-trace only */
|
||||
struct st_table *labels_table = st_init_numtable();
|
||||
VALUE labels_wrapper = TypedData_Wrap_Struct(0, &label_wrapper, labels_table);
|
||||
|
||||
@ -3745,17 +3745,21 @@ rb_iseq_defined_string(enum defined_type type)
|
||||
return rb_fstring_cstr(estr);
|
||||
}
|
||||
|
||||
/* A map from encoded_insn to insn_data: decoded insn number, its len,
|
||||
* non-trace version of encoded insn, and trace version. */
|
||||
|
||||
// A map from encoded_insn to insn_data: decoded insn number, its len,
|
||||
// decoded ZJIT insn number, non-trace version of encoded insn,
|
||||
// trace version, and zjit version.
|
||||
static st_table *encoded_insn_data;
|
||||
typedef struct insn_data_struct {
|
||||
int insn;
|
||||
int insn_len;
|
||||
void *notrace_encoded_insn;
|
||||
void *trace_encoded_insn;
|
||||
#if USE_ZJIT
|
||||
int zjit_insn;
|
||||
void *zjit_encoded_insn;
|
||||
#endif
|
||||
} insn_data_t;
|
||||
static insn_data_t insn_data[VM_INSTRUCTION_SIZE/2];
|
||||
static insn_data_t insn_data[VM_BARE_INSTRUCTION_SIZE];
|
||||
|
||||
void
|
||||
rb_free_encoded_insn_data(void)
|
||||
@ -3772,27 +3776,33 @@ rb_vm_encoded_insn_data_table_init(void)
|
||||
#else
|
||||
#define INSN_CODE(insn) (insn)
|
||||
#endif
|
||||
st_data_t insn;
|
||||
encoded_insn_data = st_init_numtable_with_size(VM_INSTRUCTION_SIZE / 2);
|
||||
encoded_insn_data = st_init_numtable_with_size(VM_BARE_INSTRUCTION_SIZE);
|
||||
|
||||
for (insn = 0; insn < VM_INSTRUCTION_SIZE/2; insn++) {
|
||||
st_data_t key1 = (st_data_t)INSN_CODE(insn);
|
||||
st_data_t key2 = (st_data_t)INSN_CODE(insn + VM_INSTRUCTION_SIZE/2);
|
||||
|
||||
insn_data[insn].insn = (int)insn;
|
||||
for (int insn = 0; insn < VM_BARE_INSTRUCTION_SIZE; insn++) {
|
||||
insn_data[insn].insn = insn;
|
||||
insn_data[insn].insn_len = insn_len(insn);
|
||||
|
||||
if (insn != BIN(opt_invokebuiltin_delegate_leave)) {
|
||||
insn_data[insn].notrace_encoded_insn = (void *) key1;
|
||||
insn_data[insn].trace_encoded_insn = (void *) key2;
|
||||
}
|
||||
else {
|
||||
insn_data[insn].notrace_encoded_insn = (void *) INSN_CODE(BIN(opt_invokebuiltin_delegate));
|
||||
insn_data[insn].trace_encoded_insn = (void *) INSN_CODE(BIN(opt_invokebuiltin_delegate) + VM_INSTRUCTION_SIZE/2);
|
||||
}
|
||||
// When tracing :return events, we convert opt_invokebuiltin_delegate_leave + leave into
|
||||
// opt_invokebuiltin_delegate + trace_leave. https://github.com/ruby/ruby/pull/3256
|
||||
int notrace_insn = (insn != BIN(opt_invokebuiltin_delegate_leave)) ? insn : BIN(opt_invokebuiltin_delegate);
|
||||
insn_data[insn].notrace_encoded_insn = (void *)INSN_CODE(notrace_insn);
|
||||
insn_data[insn].trace_encoded_insn = (void *)INSN_CODE(notrace_insn + VM_BARE_INSTRUCTION_SIZE);
|
||||
|
||||
st_data_t key1 = (st_data_t)INSN_CODE(insn);
|
||||
st_data_t key2 = (st_data_t)INSN_CODE(insn + VM_BARE_INSTRUCTION_SIZE);
|
||||
st_add_direct(encoded_insn_data, key1, (st_data_t)&insn_data[insn]);
|
||||
st_add_direct(encoded_insn_data, key2, (st_data_t)&insn_data[insn]);
|
||||
|
||||
#if USE_ZJIT
|
||||
int zjit_insn = vm_bare_insn_to_zjit_insn(insn);
|
||||
insn_data[insn].zjit_insn = zjit_insn;
|
||||
insn_data[insn].zjit_encoded_insn = (insn != zjit_insn) ? (void *)INSN_CODE(zjit_insn) : 0;
|
||||
|
||||
if (insn != zjit_insn) {
|
||||
st_data_t key3 = (st_data_t)INSN_CODE(zjit_insn);
|
||||
st_add_direct(encoded_insn_data, key3, (st_data_t)&insn_data[insn]);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
@ -3821,8 +3831,13 @@ rb_vm_insn_addr2opcode(const void *addr)
|
||||
insn_data_t *e = (insn_data_t *)val;
|
||||
int opcode = e->insn;
|
||||
if (addr == e->trace_encoded_insn) {
|
||||
opcode += VM_INSTRUCTION_SIZE/2;
|
||||
opcode += VM_BARE_INSTRUCTION_SIZE;
|
||||
}
|
||||
#if USE_ZJIT
|
||||
else if (addr == e->zjit_encoded_insn) {
|
||||
opcode = e->zjit_insn;
|
||||
}
|
||||
#endif
|
||||
return opcode;
|
||||
}
|
||||
|
||||
|
@ -17,6 +17,6 @@ RubyVM::Instructions = RubyVM::BareInstructions.to_a + \
|
||||
RubyVM::OperandsUnifications.to_a + \
|
||||
RubyVM::InstructionsUnifications.to_a
|
||||
|
||||
require_relative 'zjit_instructions'
|
||||
require_relative 'trace_instructions'
|
||||
require_relative 'zjit_instructions'
|
||||
RubyVM::Instructions.freeze
|
||||
|
@ -58,6 +58,10 @@ class RubyVM::TraceInstructions
|
||||
return false
|
||||
end
|
||||
|
||||
def zjit_profile?
|
||||
return false
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
@instances = RubyVM::Instructions.map {|i| new i }
|
||||
|
@ -25,6 +25,8 @@ enum ruby_vminsn_type {
|
||||
VM_INSTRUCTION_SIZE
|
||||
};
|
||||
|
||||
#define VM_BARE_INSTRUCTION_SIZE <%= RubyVM::Instructions.count { |i| i.name !~ /\A(trace|zjit)_/ } %>
|
||||
|
||||
#define ASSERT_VM_INSTRUCTION_SIZE(array) \
|
||||
STATIC_ASSERT(numberof_##array, numberof(array) == VM_INSTRUCTION_SIZE)
|
||||
|
||||
|
260
yjit/src/cruby_bindings.inc.rs
generated
260
yjit/src/cruby_bindings.inc.rs
generated
@ -838,142 +838,130 @@ pub const YARVINSN_setlocal_WC_0: ruby_vminsn_type = 107;
|
||||
pub const YARVINSN_setlocal_WC_1: ruby_vminsn_type = 108;
|
||||
pub const YARVINSN_putobject_INT2FIX_0_: ruby_vminsn_type = 109;
|
||||
pub const YARVINSN_putobject_INT2FIX_1_: ruby_vminsn_type = 110;
|
||||
pub const YARVINSN_zjit_opt_send_without_block: ruby_vminsn_type = 111;
|
||||
pub const YARVINSN_zjit_opt_plus: ruby_vminsn_type = 112;
|
||||
pub const YARVINSN_zjit_opt_minus: ruby_vminsn_type = 113;
|
||||
pub const YARVINSN_zjit_opt_mult: ruby_vminsn_type = 114;
|
||||
pub const YARVINSN_zjit_opt_div: ruby_vminsn_type = 115;
|
||||
pub const YARVINSN_zjit_opt_mod: ruby_vminsn_type = 116;
|
||||
pub const YARVINSN_zjit_opt_eq: ruby_vminsn_type = 117;
|
||||
pub const YARVINSN_zjit_opt_neq: ruby_vminsn_type = 118;
|
||||
pub const YARVINSN_zjit_opt_lt: ruby_vminsn_type = 119;
|
||||
pub const YARVINSN_zjit_opt_le: ruby_vminsn_type = 120;
|
||||
pub const YARVINSN_zjit_opt_gt: ruby_vminsn_type = 121;
|
||||
pub const YARVINSN_zjit_opt_ge: ruby_vminsn_type = 122;
|
||||
pub const YARVINSN_trace_nop: ruby_vminsn_type = 123;
|
||||
pub const YARVINSN_trace_getlocal: ruby_vminsn_type = 124;
|
||||
pub const YARVINSN_trace_setlocal: ruby_vminsn_type = 125;
|
||||
pub const YARVINSN_trace_getblockparam: ruby_vminsn_type = 126;
|
||||
pub const YARVINSN_trace_setblockparam: ruby_vminsn_type = 127;
|
||||
pub const YARVINSN_trace_getblockparamproxy: ruby_vminsn_type = 128;
|
||||
pub const YARVINSN_trace_getspecial: ruby_vminsn_type = 129;
|
||||
pub const YARVINSN_trace_setspecial: ruby_vminsn_type = 130;
|
||||
pub const YARVINSN_trace_getinstancevariable: ruby_vminsn_type = 131;
|
||||
pub const YARVINSN_trace_setinstancevariable: ruby_vminsn_type = 132;
|
||||
pub const YARVINSN_trace_getclassvariable: ruby_vminsn_type = 133;
|
||||
pub const YARVINSN_trace_setclassvariable: ruby_vminsn_type = 134;
|
||||
pub const YARVINSN_trace_opt_getconstant_path: ruby_vminsn_type = 135;
|
||||
pub const YARVINSN_trace_getconstant: ruby_vminsn_type = 136;
|
||||
pub const YARVINSN_trace_setconstant: ruby_vminsn_type = 137;
|
||||
pub const YARVINSN_trace_getglobal: ruby_vminsn_type = 138;
|
||||
pub const YARVINSN_trace_setglobal: ruby_vminsn_type = 139;
|
||||
pub const YARVINSN_trace_putnil: ruby_vminsn_type = 140;
|
||||
pub const YARVINSN_trace_putself: ruby_vminsn_type = 141;
|
||||
pub const YARVINSN_trace_putobject: ruby_vminsn_type = 142;
|
||||
pub const YARVINSN_trace_putspecialobject: ruby_vminsn_type = 143;
|
||||
pub const YARVINSN_trace_putstring: ruby_vminsn_type = 144;
|
||||
pub const YARVINSN_trace_putchilledstring: ruby_vminsn_type = 145;
|
||||
pub const YARVINSN_trace_concatstrings: ruby_vminsn_type = 146;
|
||||
pub const YARVINSN_trace_anytostring: ruby_vminsn_type = 147;
|
||||
pub const YARVINSN_trace_toregexp: ruby_vminsn_type = 148;
|
||||
pub const YARVINSN_trace_intern: ruby_vminsn_type = 149;
|
||||
pub const YARVINSN_trace_newarray: ruby_vminsn_type = 150;
|
||||
pub const YARVINSN_trace_pushtoarraykwsplat: ruby_vminsn_type = 151;
|
||||
pub const YARVINSN_trace_duparray: ruby_vminsn_type = 152;
|
||||
pub const YARVINSN_trace_duphash: ruby_vminsn_type = 153;
|
||||
pub const YARVINSN_trace_expandarray: ruby_vminsn_type = 154;
|
||||
pub const YARVINSN_trace_concatarray: ruby_vminsn_type = 155;
|
||||
pub const YARVINSN_trace_concattoarray: ruby_vminsn_type = 156;
|
||||
pub const YARVINSN_trace_pushtoarray: ruby_vminsn_type = 157;
|
||||
pub const YARVINSN_trace_splatarray: ruby_vminsn_type = 158;
|
||||
pub const YARVINSN_trace_splatkw: ruby_vminsn_type = 159;
|
||||
pub const YARVINSN_trace_newhash: ruby_vminsn_type = 160;
|
||||
pub const YARVINSN_trace_newrange: ruby_vminsn_type = 161;
|
||||
pub const YARVINSN_trace_pop: ruby_vminsn_type = 162;
|
||||
pub const YARVINSN_trace_dup: ruby_vminsn_type = 163;
|
||||
pub const YARVINSN_trace_dupn: ruby_vminsn_type = 164;
|
||||
pub const YARVINSN_trace_swap: ruby_vminsn_type = 165;
|
||||
pub const YARVINSN_trace_opt_reverse: ruby_vminsn_type = 166;
|
||||
pub const YARVINSN_trace_topn: ruby_vminsn_type = 167;
|
||||
pub const YARVINSN_trace_setn: ruby_vminsn_type = 168;
|
||||
pub const YARVINSN_trace_adjuststack: ruby_vminsn_type = 169;
|
||||
pub const YARVINSN_trace_defined: ruby_vminsn_type = 170;
|
||||
pub const YARVINSN_trace_definedivar: ruby_vminsn_type = 171;
|
||||
pub const YARVINSN_trace_checkmatch: ruby_vminsn_type = 172;
|
||||
pub const YARVINSN_trace_checkkeyword: ruby_vminsn_type = 173;
|
||||
pub const YARVINSN_trace_checktype: ruby_vminsn_type = 174;
|
||||
pub const YARVINSN_trace_defineclass: ruby_vminsn_type = 175;
|
||||
pub const YARVINSN_trace_definemethod: ruby_vminsn_type = 176;
|
||||
pub const YARVINSN_trace_definesmethod: ruby_vminsn_type = 177;
|
||||
pub const YARVINSN_trace_send: ruby_vminsn_type = 178;
|
||||
pub const YARVINSN_trace_sendforward: ruby_vminsn_type = 179;
|
||||
pub const YARVINSN_trace_opt_send_without_block: ruby_vminsn_type = 180;
|
||||
pub const YARVINSN_trace_opt_new: ruby_vminsn_type = 181;
|
||||
pub const YARVINSN_trace_objtostring: ruby_vminsn_type = 182;
|
||||
pub const YARVINSN_trace_opt_ary_freeze: ruby_vminsn_type = 183;
|
||||
pub const YARVINSN_trace_opt_hash_freeze: ruby_vminsn_type = 184;
|
||||
pub const YARVINSN_trace_opt_str_freeze: ruby_vminsn_type = 185;
|
||||
pub const YARVINSN_trace_opt_nil_p: ruby_vminsn_type = 186;
|
||||
pub const YARVINSN_trace_opt_str_uminus: ruby_vminsn_type = 187;
|
||||
pub const YARVINSN_trace_opt_duparray_send: ruby_vminsn_type = 188;
|
||||
pub const YARVINSN_trace_opt_newarray_send: ruby_vminsn_type = 189;
|
||||
pub const YARVINSN_trace_invokesuper: ruby_vminsn_type = 190;
|
||||
pub const YARVINSN_trace_invokesuperforward: ruby_vminsn_type = 191;
|
||||
pub const YARVINSN_trace_invokeblock: ruby_vminsn_type = 192;
|
||||
pub const YARVINSN_trace_leave: ruby_vminsn_type = 193;
|
||||
pub const YARVINSN_trace_throw: ruby_vminsn_type = 194;
|
||||
pub const YARVINSN_trace_jump: ruby_vminsn_type = 195;
|
||||
pub const YARVINSN_trace_branchif: ruby_vminsn_type = 196;
|
||||
pub const YARVINSN_trace_branchunless: ruby_vminsn_type = 197;
|
||||
pub const YARVINSN_trace_branchnil: ruby_vminsn_type = 198;
|
||||
pub const YARVINSN_trace_once: ruby_vminsn_type = 199;
|
||||
pub const YARVINSN_trace_opt_case_dispatch: ruby_vminsn_type = 200;
|
||||
pub const YARVINSN_trace_opt_plus: ruby_vminsn_type = 201;
|
||||
pub const YARVINSN_trace_opt_minus: ruby_vminsn_type = 202;
|
||||
pub const YARVINSN_trace_opt_mult: ruby_vminsn_type = 203;
|
||||
pub const YARVINSN_trace_opt_div: ruby_vminsn_type = 204;
|
||||
pub const YARVINSN_trace_opt_mod: ruby_vminsn_type = 205;
|
||||
pub const YARVINSN_trace_opt_eq: ruby_vminsn_type = 206;
|
||||
pub const YARVINSN_trace_opt_neq: ruby_vminsn_type = 207;
|
||||
pub const YARVINSN_trace_opt_lt: ruby_vminsn_type = 208;
|
||||
pub const YARVINSN_trace_opt_le: ruby_vminsn_type = 209;
|
||||
pub const YARVINSN_trace_opt_gt: ruby_vminsn_type = 210;
|
||||
pub const YARVINSN_trace_opt_ge: ruby_vminsn_type = 211;
|
||||
pub const YARVINSN_trace_opt_ltlt: ruby_vminsn_type = 212;
|
||||
pub const YARVINSN_trace_opt_and: ruby_vminsn_type = 213;
|
||||
pub const YARVINSN_trace_opt_or: ruby_vminsn_type = 214;
|
||||
pub const YARVINSN_trace_opt_aref: ruby_vminsn_type = 215;
|
||||
pub const YARVINSN_trace_opt_aset: ruby_vminsn_type = 216;
|
||||
pub const YARVINSN_trace_opt_aset_with: ruby_vminsn_type = 217;
|
||||
pub const YARVINSN_trace_opt_aref_with: ruby_vminsn_type = 218;
|
||||
pub const YARVINSN_trace_opt_length: ruby_vminsn_type = 219;
|
||||
pub const YARVINSN_trace_opt_size: ruby_vminsn_type = 220;
|
||||
pub const YARVINSN_trace_opt_empty_p: ruby_vminsn_type = 221;
|
||||
pub const YARVINSN_trace_opt_succ: ruby_vminsn_type = 222;
|
||||
pub const YARVINSN_trace_opt_not: ruby_vminsn_type = 223;
|
||||
pub const YARVINSN_trace_opt_regexpmatch2: ruby_vminsn_type = 224;
|
||||
pub const YARVINSN_trace_invokebuiltin: ruby_vminsn_type = 225;
|
||||
pub const YARVINSN_trace_opt_invokebuiltin_delegate: ruby_vminsn_type = 226;
|
||||
pub const YARVINSN_trace_opt_invokebuiltin_delegate_leave: ruby_vminsn_type = 227;
|
||||
pub const YARVINSN_trace_getlocal_WC_0: ruby_vminsn_type = 228;
|
||||
pub const YARVINSN_trace_getlocal_WC_1: ruby_vminsn_type = 229;
|
||||
pub const YARVINSN_trace_setlocal_WC_0: ruby_vminsn_type = 230;
|
||||
pub const YARVINSN_trace_setlocal_WC_1: ruby_vminsn_type = 231;
|
||||
pub const YARVINSN_trace_putobject_INT2FIX_0_: ruby_vminsn_type = 232;
|
||||
pub const YARVINSN_trace_putobject_INT2FIX_1_: ruby_vminsn_type = 233;
|
||||
pub const YARVINSN_trace_zjit_opt_send_without_block: ruby_vminsn_type = 234;
|
||||
pub const YARVINSN_trace_zjit_opt_plus: ruby_vminsn_type = 235;
|
||||
pub const YARVINSN_trace_zjit_opt_minus: ruby_vminsn_type = 236;
|
||||
pub const YARVINSN_trace_zjit_opt_mult: ruby_vminsn_type = 237;
|
||||
pub const YARVINSN_trace_zjit_opt_div: ruby_vminsn_type = 238;
|
||||
pub const YARVINSN_trace_zjit_opt_mod: ruby_vminsn_type = 239;
|
||||
pub const YARVINSN_trace_zjit_opt_eq: ruby_vminsn_type = 240;
|
||||
pub const YARVINSN_trace_zjit_opt_neq: ruby_vminsn_type = 241;
|
||||
pub const YARVINSN_trace_zjit_opt_lt: ruby_vminsn_type = 242;
|
||||
pub const YARVINSN_trace_zjit_opt_le: ruby_vminsn_type = 243;
|
||||
pub const YARVINSN_trace_zjit_opt_gt: ruby_vminsn_type = 244;
|
||||
pub const YARVINSN_trace_zjit_opt_ge: ruby_vminsn_type = 245;
|
||||
pub const VM_INSTRUCTION_SIZE: ruby_vminsn_type = 246;
|
||||
pub const YARVINSN_trace_nop: ruby_vminsn_type = 111;
|
||||
pub const YARVINSN_trace_getlocal: ruby_vminsn_type = 112;
|
||||
pub const YARVINSN_trace_setlocal: ruby_vminsn_type = 113;
|
||||
pub const YARVINSN_trace_getblockparam: ruby_vminsn_type = 114;
|
||||
pub const YARVINSN_trace_setblockparam: ruby_vminsn_type = 115;
|
||||
pub const YARVINSN_trace_getblockparamproxy: ruby_vminsn_type = 116;
|
||||
pub const YARVINSN_trace_getspecial: ruby_vminsn_type = 117;
|
||||
pub const YARVINSN_trace_setspecial: ruby_vminsn_type = 118;
|
||||
pub const YARVINSN_trace_getinstancevariable: ruby_vminsn_type = 119;
|
||||
pub const YARVINSN_trace_setinstancevariable: ruby_vminsn_type = 120;
|
||||
pub const YARVINSN_trace_getclassvariable: ruby_vminsn_type = 121;
|
||||
pub const YARVINSN_trace_setclassvariable: ruby_vminsn_type = 122;
|
||||
pub const YARVINSN_trace_opt_getconstant_path: ruby_vminsn_type = 123;
|
||||
pub const YARVINSN_trace_getconstant: ruby_vminsn_type = 124;
|
||||
pub const YARVINSN_trace_setconstant: ruby_vminsn_type = 125;
|
||||
pub const YARVINSN_trace_getglobal: ruby_vminsn_type = 126;
|
||||
pub const YARVINSN_trace_setglobal: ruby_vminsn_type = 127;
|
||||
pub const YARVINSN_trace_putnil: ruby_vminsn_type = 128;
|
||||
pub const YARVINSN_trace_putself: ruby_vminsn_type = 129;
|
||||
pub const YARVINSN_trace_putobject: ruby_vminsn_type = 130;
|
||||
pub const YARVINSN_trace_putspecialobject: ruby_vminsn_type = 131;
|
||||
pub const YARVINSN_trace_putstring: ruby_vminsn_type = 132;
|
||||
pub const YARVINSN_trace_putchilledstring: ruby_vminsn_type = 133;
|
||||
pub const YARVINSN_trace_concatstrings: ruby_vminsn_type = 134;
|
||||
pub const YARVINSN_trace_anytostring: ruby_vminsn_type = 135;
|
||||
pub const YARVINSN_trace_toregexp: ruby_vminsn_type = 136;
|
||||
pub const YARVINSN_trace_intern: ruby_vminsn_type = 137;
|
||||
pub const YARVINSN_trace_newarray: ruby_vminsn_type = 138;
|
||||
pub const YARVINSN_trace_pushtoarraykwsplat: ruby_vminsn_type = 139;
|
||||
pub const YARVINSN_trace_duparray: ruby_vminsn_type = 140;
|
||||
pub const YARVINSN_trace_duphash: ruby_vminsn_type = 141;
|
||||
pub const YARVINSN_trace_expandarray: ruby_vminsn_type = 142;
|
||||
pub const YARVINSN_trace_concatarray: ruby_vminsn_type = 143;
|
||||
pub const YARVINSN_trace_concattoarray: ruby_vminsn_type = 144;
|
||||
pub const YARVINSN_trace_pushtoarray: ruby_vminsn_type = 145;
|
||||
pub const YARVINSN_trace_splatarray: ruby_vminsn_type = 146;
|
||||
pub const YARVINSN_trace_splatkw: ruby_vminsn_type = 147;
|
||||
pub const YARVINSN_trace_newhash: ruby_vminsn_type = 148;
|
||||
pub const YARVINSN_trace_newrange: ruby_vminsn_type = 149;
|
||||
pub const YARVINSN_trace_pop: ruby_vminsn_type = 150;
|
||||
pub const YARVINSN_trace_dup: ruby_vminsn_type = 151;
|
||||
pub const YARVINSN_trace_dupn: ruby_vminsn_type = 152;
|
||||
pub const YARVINSN_trace_swap: ruby_vminsn_type = 153;
|
||||
pub const YARVINSN_trace_opt_reverse: ruby_vminsn_type = 154;
|
||||
pub const YARVINSN_trace_topn: ruby_vminsn_type = 155;
|
||||
pub const YARVINSN_trace_setn: ruby_vminsn_type = 156;
|
||||
pub const YARVINSN_trace_adjuststack: ruby_vminsn_type = 157;
|
||||
pub const YARVINSN_trace_defined: ruby_vminsn_type = 158;
|
||||
pub const YARVINSN_trace_definedivar: ruby_vminsn_type = 159;
|
||||
pub const YARVINSN_trace_checkmatch: ruby_vminsn_type = 160;
|
||||
pub const YARVINSN_trace_checkkeyword: ruby_vminsn_type = 161;
|
||||
pub const YARVINSN_trace_checktype: ruby_vminsn_type = 162;
|
||||
pub const YARVINSN_trace_defineclass: ruby_vminsn_type = 163;
|
||||
pub const YARVINSN_trace_definemethod: ruby_vminsn_type = 164;
|
||||
pub const YARVINSN_trace_definesmethod: ruby_vminsn_type = 165;
|
||||
pub const YARVINSN_trace_send: ruby_vminsn_type = 166;
|
||||
pub const YARVINSN_trace_sendforward: ruby_vminsn_type = 167;
|
||||
pub const YARVINSN_trace_opt_send_without_block: ruby_vminsn_type = 168;
|
||||
pub const YARVINSN_trace_opt_new: ruby_vminsn_type = 169;
|
||||
pub const YARVINSN_trace_objtostring: ruby_vminsn_type = 170;
|
||||
pub const YARVINSN_trace_opt_ary_freeze: ruby_vminsn_type = 171;
|
||||
pub const YARVINSN_trace_opt_hash_freeze: ruby_vminsn_type = 172;
|
||||
pub const YARVINSN_trace_opt_str_freeze: ruby_vminsn_type = 173;
|
||||
pub const YARVINSN_trace_opt_nil_p: ruby_vminsn_type = 174;
|
||||
pub const YARVINSN_trace_opt_str_uminus: ruby_vminsn_type = 175;
|
||||
pub const YARVINSN_trace_opt_duparray_send: ruby_vminsn_type = 176;
|
||||
pub const YARVINSN_trace_opt_newarray_send: ruby_vminsn_type = 177;
|
||||
pub const YARVINSN_trace_invokesuper: ruby_vminsn_type = 178;
|
||||
pub const YARVINSN_trace_invokesuperforward: ruby_vminsn_type = 179;
|
||||
pub const YARVINSN_trace_invokeblock: ruby_vminsn_type = 180;
|
||||
pub const YARVINSN_trace_leave: ruby_vminsn_type = 181;
|
||||
pub const YARVINSN_trace_throw: ruby_vminsn_type = 182;
|
||||
pub const YARVINSN_trace_jump: ruby_vminsn_type = 183;
|
||||
pub const YARVINSN_trace_branchif: ruby_vminsn_type = 184;
|
||||
pub const YARVINSN_trace_branchunless: ruby_vminsn_type = 185;
|
||||
pub const YARVINSN_trace_branchnil: ruby_vminsn_type = 186;
|
||||
pub const YARVINSN_trace_once: ruby_vminsn_type = 187;
|
||||
pub const YARVINSN_trace_opt_case_dispatch: ruby_vminsn_type = 188;
|
||||
pub const YARVINSN_trace_opt_plus: ruby_vminsn_type = 189;
|
||||
pub const YARVINSN_trace_opt_minus: ruby_vminsn_type = 190;
|
||||
pub const YARVINSN_trace_opt_mult: ruby_vminsn_type = 191;
|
||||
pub const YARVINSN_trace_opt_div: ruby_vminsn_type = 192;
|
||||
pub const YARVINSN_trace_opt_mod: ruby_vminsn_type = 193;
|
||||
pub const YARVINSN_trace_opt_eq: ruby_vminsn_type = 194;
|
||||
pub const YARVINSN_trace_opt_neq: ruby_vminsn_type = 195;
|
||||
pub const YARVINSN_trace_opt_lt: ruby_vminsn_type = 196;
|
||||
pub const YARVINSN_trace_opt_le: ruby_vminsn_type = 197;
|
||||
pub const YARVINSN_trace_opt_gt: ruby_vminsn_type = 198;
|
||||
pub const YARVINSN_trace_opt_ge: ruby_vminsn_type = 199;
|
||||
pub const YARVINSN_trace_opt_ltlt: ruby_vminsn_type = 200;
|
||||
pub const YARVINSN_trace_opt_and: ruby_vminsn_type = 201;
|
||||
pub const YARVINSN_trace_opt_or: ruby_vminsn_type = 202;
|
||||
pub const YARVINSN_trace_opt_aref: ruby_vminsn_type = 203;
|
||||
pub const YARVINSN_trace_opt_aset: ruby_vminsn_type = 204;
|
||||
pub const YARVINSN_trace_opt_aset_with: ruby_vminsn_type = 205;
|
||||
pub const YARVINSN_trace_opt_aref_with: ruby_vminsn_type = 206;
|
||||
pub const YARVINSN_trace_opt_length: ruby_vminsn_type = 207;
|
||||
pub const YARVINSN_trace_opt_size: ruby_vminsn_type = 208;
|
||||
pub const YARVINSN_trace_opt_empty_p: ruby_vminsn_type = 209;
|
||||
pub const YARVINSN_trace_opt_succ: ruby_vminsn_type = 210;
|
||||
pub const YARVINSN_trace_opt_not: ruby_vminsn_type = 211;
|
||||
pub const YARVINSN_trace_opt_regexpmatch2: ruby_vminsn_type = 212;
|
||||
pub const YARVINSN_trace_invokebuiltin: ruby_vminsn_type = 213;
|
||||
pub const YARVINSN_trace_opt_invokebuiltin_delegate: ruby_vminsn_type = 214;
|
||||
pub const YARVINSN_trace_opt_invokebuiltin_delegate_leave: ruby_vminsn_type = 215;
|
||||
pub const YARVINSN_trace_getlocal_WC_0: ruby_vminsn_type = 216;
|
||||
pub const YARVINSN_trace_getlocal_WC_1: ruby_vminsn_type = 217;
|
||||
pub const YARVINSN_trace_setlocal_WC_0: ruby_vminsn_type = 218;
|
||||
pub const YARVINSN_trace_setlocal_WC_1: ruby_vminsn_type = 219;
|
||||
pub const YARVINSN_trace_putobject_INT2FIX_0_: ruby_vminsn_type = 220;
|
||||
pub const YARVINSN_trace_putobject_INT2FIX_1_: ruby_vminsn_type = 221;
|
||||
pub const YARVINSN_zjit_opt_send_without_block: ruby_vminsn_type = 222;
|
||||
pub const YARVINSN_zjit_opt_plus: ruby_vminsn_type = 223;
|
||||
pub const YARVINSN_zjit_opt_minus: ruby_vminsn_type = 224;
|
||||
pub const YARVINSN_zjit_opt_mult: ruby_vminsn_type = 225;
|
||||
pub const YARVINSN_zjit_opt_div: ruby_vminsn_type = 226;
|
||||
pub const YARVINSN_zjit_opt_mod: ruby_vminsn_type = 227;
|
||||
pub const YARVINSN_zjit_opt_eq: ruby_vminsn_type = 228;
|
||||
pub const YARVINSN_zjit_opt_neq: ruby_vminsn_type = 229;
|
||||
pub const YARVINSN_zjit_opt_lt: ruby_vminsn_type = 230;
|
||||
pub const YARVINSN_zjit_opt_le: ruby_vminsn_type = 231;
|
||||
pub const YARVINSN_zjit_opt_gt: ruby_vminsn_type = 232;
|
||||
pub const YARVINSN_zjit_opt_ge: ruby_vminsn_type = 233;
|
||||
pub const VM_INSTRUCTION_SIZE: ruby_vminsn_type = 234;
|
||||
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),
|
||||
|
4
zjit.c
4
zjit.c
@ -664,7 +664,7 @@ rb_zjit_profile_enable(const rb_iseq_t *iseq)
|
||||
|
||||
unsigned int insn_idx = 0;
|
||||
while (insn_idx < iseq->body->iseq_size) {
|
||||
int insn = rb_vm_insn_decode(iseq->body->iseq_encoded[insn_idx]);
|
||||
int insn = rb_vm_insn_addr2opcode((void *)iseq->body->iseq_encoded[insn_idx]);
|
||||
int zjit_insn = vm_bare_insn_to_zjit_insn(insn);
|
||||
if (insn != zjit_insn) {
|
||||
iseq->body->iseq_encoded[insn_idx] = (VALUE)insn_table[zjit_insn];
|
||||
@ -682,7 +682,7 @@ rb_zjit_profile_disable(const rb_iseq_t *iseq)
|
||||
|
||||
unsigned int insn_idx = 0;
|
||||
while (insn_idx < iseq->body->iseq_size) {
|
||||
int insn = rb_vm_insn_decode(iseq->body->iseq_encoded[insn_idx]);
|
||||
int insn = rb_vm_insn_addr2opcode((void *)iseq->body->iseq_encoded[insn_idx]);
|
||||
int bare_insn = vm_zjit_insn_to_bare_insn(insn);
|
||||
if (insn != bare_insn) {
|
||||
iseq->body->iseq_encoded[insn_idx] = (VALUE)insn_table[bare_insn];
|
||||
|
260
zjit/src/cruby_bindings.inc.rs
generated
260
zjit/src/cruby_bindings.inc.rs
generated
@ -594,142 +594,130 @@ pub const YARVINSN_setlocal_WC_0: ruby_vminsn_type = 107;
|
||||
pub const YARVINSN_setlocal_WC_1: ruby_vminsn_type = 108;
|
||||
pub const YARVINSN_putobject_INT2FIX_0_: ruby_vminsn_type = 109;
|
||||
pub const YARVINSN_putobject_INT2FIX_1_: ruby_vminsn_type = 110;
|
||||
pub const YARVINSN_zjit_opt_send_without_block: ruby_vminsn_type = 111;
|
||||
pub const YARVINSN_zjit_opt_plus: ruby_vminsn_type = 112;
|
||||
pub const YARVINSN_zjit_opt_minus: ruby_vminsn_type = 113;
|
||||
pub const YARVINSN_zjit_opt_mult: ruby_vminsn_type = 114;
|
||||
pub const YARVINSN_zjit_opt_div: ruby_vminsn_type = 115;
|
||||
pub const YARVINSN_zjit_opt_mod: ruby_vminsn_type = 116;
|
||||
pub const YARVINSN_zjit_opt_eq: ruby_vminsn_type = 117;
|
||||
pub const YARVINSN_zjit_opt_neq: ruby_vminsn_type = 118;
|
||||
pub const YARVINSN_zjit_opt_lt: ruby_vminsn_type = 119;
|
||||
pub const YARVINSN_zjit_opt_le: ruby_vminsn_type = 120;
|
||||
pub const YARVINSN_zjit_opt_gt: ruby_vminsn_type = 121;
|
||||
pub const YARVINSN_zjit_opt_ge: ruby_vminsn_type = 122;
|
||||
pub const YARVINSN_trace_nop: ruby_vminsn_type = 123;
|
||||
pub const YARVINSN_trace_getlocal: ruby_vminsn_type = 124;
|
||||
pub const YARVINSN_trace_setlocal: ruby_vminsn_type = 125;
|
||||
pub const YARVINSN_trace_getblockparam: ruby_vminsn_type = 126;
|
||||
pub const YARVINSN_trace_setblockparam: ruby_vminsn_type = 127;
|
||||
pub const YARVINSN_trace_getblockparamproxy: ruby_vminsn_type = 128;
|
||||
pub const YARVINSN_trace_getspecial: ruby_vminsn_type = 129;
|
||||
pub const YARVINSN_trace_setspecial: ruby_vminsn_type = 130;
|
||||
pub const YARVINSN_trace_getinstancevariable: ruby_vminsn_type = 131;
|
||||
pub const YARVINSN_trace_setinstancevariable: ruby_vminsn_type = 132;
|
||||
pub const YARVINSN_trace_getclassvariable: ruby_vminsn_type = 133;
|
||||
pub const YARVINSN_trace_setclassvariable: ruby_vminsn_type = 134;
|
||||
pub const YARVINSN_trace_opt_getconstant_path: ruby_vminsn_type = 135;
|
||||
pub const YARVINSN_trace_getconstant: ruby_vminsn_type = 136;
|
||||
pub const YARVINSN_trace_setconstant: ruby_vminsn_type = 137;
|
||||
pub const YARVINSN_trace_getglobal: ruby_vminsn_type = 138;
|
||||
pub const YARVINSN_trace_setglobal: ruby_vminsn_type = 139;
|
||||
pub const YARVINSN_trace_putnil: ruby_vminsn_type = 140;
|
||||
pub const YARVINSN_trace_putself: ruby_vminsn_type = 141;
|
||||
pub const YARVINSN_trace_putobject: ruby_vminsn_type = 142;
|
||||
pub const YARVINSN_trace_putspecialobject: ruby_vminsn_type = 143;
|
||||
pub const YARVINSN_trace_putstring: ruby_vminsn_type = 144;
|
||||
pub const YARVINSN_trace_putchilledstring: ruby_vminsn_type = 145;
|
||||
pub const YARVINSN_trace_concatstrings: ruby_vminsn_type = 146;
|
||||
pub const YARVINSN_trace_anytostring: ruby_vminsn_type = 147;
|
||||
pub const YARVINSN_trace_toregexp: ruby_vminsn_type = 148;
|
||||
pub const YARVINSN_trace_intern: ruby_vminsn_type = 149;
|
||||
pub const YARVINSN_trace_newarray: ruby_vminsn_type = 150;
|
||||
pub const YARVINSN_trace_pushtoarraykwsplat: ruby_vminsn_type = 151;
|
||||
pub const YARVINSN_trace_duparray: ruby_vminsn_type = 152;
|
||||
pub const YARVINSN_trace_duphash: ruby_vminsn_type = 153;
|
||||
pub const YARVINSN_trace_expandarray: ruby_vminsn_type = 154;
|
||||
pub const YARVINSN_trace_concatarray: ruby_vminsn_type = 155;
|
||||
pub const YARVINSN_trace_concattoarray: ruby_vminsn_type = 156;
|
||||
pub const YARVINSN_trace_pushtoarray: ruby_vminsn_type = 157;
|
||||
pub const YARVINSN_trace_splatarray: ruby_vminsn_type = 158;
|
||||
pub const YARVINSN_trace_splatkw: ruby_vminsn_type = 159;
|
||||
pub const YARVINSN_trace_newhash: ruby_vminsn_type = 160;
|
||||
pub const YARVINSN_trace_newrange: ruby_vminsn_type = 161;
|
||||
pub const YARVINSN_trace_pop: ruby_vminsn_type = 162;
|
||||
pub const YARVINSN_trace_dup: ruby_vminsn_type = 163;
|
||||
pub const YARVINSN_trace_dupn: ruby_vminsn_type = 164;
|
||||
pub const YARVINSN_trace_swap: ruby_vminsn_type = 165;
|
||||
pub const YARVINSN_trace_opt_reverse: ruby_vminsn_type = 166;
|
||||
pub const YARVINSN_trace_topn: ruby_vminsn_type = 167;
|
||||
pub const YARVINSN_trace_setn: ruby_vminsn_type = 168;
|
||||
pub const YARVINSN_trace_adjuststack: ruby_vminsn_type = 169;
|
||||
pub const YARVINSN_trace_defined: ruby_vminsn_type = 170;
|
||||
pub const YARVINSN_trace_definedivar: ruby_vminsn_type = 171;
|
||||
pub const YARVINSN_trace_checkmatch: ruby_vminsn_type = 172;
|
||||
pub const YARVINSN_trace_checkkeyword: ruby_vminsn_type = 173;
|
||||
pub const YARVINSN_trace_checktype: ruby_vminsn_type = 174;
|
||||
pub const YARVINSN_trace_defineclass: ruby_vminsn_type = 175;
|
||||
pub const YARVINSN_trace_definemethod: ruby_vminsn_type = 176;
|
||||
pub const YARVINSN_trace_definesmethod: ruby_vminsn_type = 177;
|
||||
pub const YARVINSN_trace_send: ruby_vminsn_type = 178;
|
||||
pub const YARVINSN_trace_sendforward: ruby_vminsn_type = 179;
|
||||
pub const YARVINSN_trace_opt_send_without_block: ruby_vminsn_type = 180;
|
||||
pub const YARVINSN_trace_opt_new: ruby_vminsn_type = 181;
|
||||
pub const YARVINSN_trace_objtostring: ruby_vminsn_type = 182;
|
||||
pub const YARVINSN_trace_opt_ary_freeze: ruby_vminsn_type = 183;
|
||||
pub const YARVINSN_trace_opt_hash_freeze: ruby_vminsn_type = 184;
|
||||
pub const YARVINSN_trace_opt_str_freeze: ruby_vminsn_type = 185;
|
||||
pub const YARVINSN_trace_opt_nil_p: ruby_vminsn_type = 186;
|
||||
pub const YARVINSN_trace_opt_str_uminus: ruby_vminsn_type = 187;
|
||||
pub const YARVINSN_trace_opt_duparray_send: ruby_vminsn_type = 188;
|
||||
pub const YARVINSN_trace_opt_newarray_send: ruby_vminsn_type = 189;
|
||||
pub const YARVINSN_trace_invokesuper: ruby_vminsn_type = 190;
|
||||
pub const YARVINSN_trace_invokesuperforward: ruby_vminsn_type = 191;
|
||||
pub const YARVINSN_trace_invokeblock: ruby_vminsn_type = 192;
|
||||
pub const YARVINSN_trace_leave: ruby_vminsn_type = 193;
|
||||
pub const YARVINSN_trace_throw: ruby_vminsn_type = 194;
|
||||
pub const YARVINSN_trace_jump: ruby_vminsn_type = 195;
|
||||
pub const YARVINSN_trace_branchif: ruby_vminsn_type = 196;
|
||||
pub const YARVINSN_trace_branchunless: ruby_vminsn_type = 197;
|
||||
pub const YARVINSN_trace_branchnil: ruby_vminsn_type = 198;
|
||||
pub const YARVINSN_trace_once: ruby_vminsn_type = 199;
|
||||
pub const YARVINSN_trace_opt_case_dispatch: ruby_vminsn_type = 200;
|
||||
pub const YARVINSN_trace_opt_plus: ruby_vminsn_type = 201;
|
||||
pub const YARVINSN_trace_opt_minus: ruby_vminsn_type = 202;
|
||||
pub const YARVINSN_trace_opt_mult: ruby_vminsn_type = 203;
|
||||
pub const YARVINSN_trace_opt_div: ruby_vminsn_type = 204;
|
||||
pub const YARVINSN_trace_opt_mod: ruby_vminsn_type = 205;
|
||||
pub const YARVINSN_trace_opt_eq: ruby_vminsn_type = 206;
|
||||
pub const YARVINSN_trace_opt_neq: ruby_vminsn_type = 207;
|
||||
pub const YARVINSN_trace_opt_lt: ruby_vminsn_type = 208;
|
||||
pub const YARVINSN_trace_opt_le: ruby_vminsn_type = 209;
|
||||
pub const YARVINSN_trace_opt_gt: ruby_vminsn_type = 210;
|
||||
pub const YARVINSN_trace_opt_ge: ruby_vminsn_type = 211;
|
||||
pub const YARVINSN_trace_opt_ltlt: ruby_vminsn_type = 212;
|
||||
pub const YARVINSN_trace_opt_and: ruby_vminsn_type = 213;
|
||||
pub const YARVINSN_trace_opt_or: ruby_vminsn_type = 214;
|
||||
pub const YARVINSN_trace_opt_aref: ruby_vminsn_type = 215;
|
||||
pub const YARVINSN_trace_opt_aset: ruby_vminsn_type = 216;
|
||||
pub const YARVINSN_trace_opt_aset_with: ruby_vminsn_type = 217;
|
||||
pub const YARVINSN_trace_opt_aref_with: ruby_vminsn_type = 218;
|
||||
pub const YARVINSN_trace_opt_length: ruby_vminsn_type = 219;
|
||||
pub const YARVINSN_trace_opt_size: ruby_vminsn_type = 220;
|
||||
pub const YARVINSN_trace_opt_empty_p: ruby_vminsn_type = 221;
|
||||
pub const YARVINSN_trace_opt_succ: ruby_vminsn_type = 222;
|
||||
pub const YARVINSN_trace_opt_not: ruby_vminsn_type = 223;
|
||||
pub const YARVINSN_trace_opt_regexpmatch2: ruby_vminsn_type = 224;
|
||||
pub const YARVINSN_trace_invokebuiltin: ruby_vminsn_type = 225;
|
||||
pub const YARVINSN_trace_opt_invokebuiltin_delegate: ruby_vminsn_type = 226;
|
||||
pub const YARVINSN_trace_opt_invokebuiltin_delegate_leave: ruby_vminsn_type = 227;
|
||||
pub const YARVINSN_trace_getlocal_WC_0: ruby_vminsn_type = 228;
|
||||
pub const YARVINSN_trace_getlocal_WC_1: ruby_vminsn_type = 229;
|
||||
pub const YARVINSN_trace_setlocal_WC_0: ruby_vminsn_type = 230;
|
||||
pub const YARVINSN_trace_setlocal_WC_1: ruby_vminsn_type = 231;
|
||||
pub const YARVINSN_trace_putobject_INT2FIX_0_: ruby_vminsn_type = 232;
|
||||
pub const YARVINSN_trace_putobject_INT2FIX_1_: ruby_vminsn_type = 233;
|
||||
pub const YARVINSN_trace_zjit_opt_send_without_block: ruby_vminsn_type = 234;
|
||||
pub const YARVINSN_trace_zjit_opt_plus: ruby_vminsn_type = 235;
|
||||
pub const YARVINSN_trace_zjit_opt_minus: ruby_vminsn_type = 236;
|
||||
pub const YARVINSN_trace_zjit_opt_mult: ruby_vminsn_type = 237;
|
||||
pub const YARVINSN_trace_zjit_opt_div: ruby_vminsn_type = 238;
|
||||
pub const YARVINSN_trace_zjit_opt_mod: ruby_vminsn_type = 239;
|
||||
pub const YARVINSN_trace_zjit_opt_eq: ruby_vminsn_type = 240;
|
||||
pub const YARVINSN_trace_zjit_opt_neq: ruby_vminsn_type = 241;
|
||||
pub const YARVINSN_trace_zjit_opt_lt: ruby_vminsn_type = 242;
|
||||
pub const YARVINSN_trace_zjit_opt_le: ruby_vminsn_type = 243;
|
||||
pub const YARVINSN_trace_zjit_opt_gt: ruby_vminsn_type = 244;
|
||||
pub const YARVINSN_trace_zjit_opt_ge: ruby_vminsn_type = 245;
|
||||
pub const VM_INSTRUCTION_SIZE: ruby_vminsn_type = 246;
|
||||
pub const YARVINSN_trace_nop: ruby_vminsn_type = 111;
|
||||
pub const YARVINSN_trace_getlocal: ruby_vminsn_type = 112;
|
||||
pub const YARVINSN_trace_setlocal: ruby_vminsn_type = 113;
|
||||
pub const YARVINSN_trace_getblockparam: ruby_vminsn_type = 114;
|
||||
pub const YARVINSN_trace_setblockparam: ruby_vminsn_type = 115;
|
||||
pub const YARVINSN_trace_getblockparamproxy: ruby_vminsn_type = 116;
|
||||
pub const YARVINSN_trace_getspecial: ruby_vminsn_type = 117;
|
||||
pub const YARVINSN_trace_setspecial: ruby_vminsn_type = 118;
|
||||
pub const YARVINSN_trace_getinstancevariable: ruby_vminsn_type = 119;
|
||||
pub const YARVINSN_trace_setinstancevariable: ruby_vminsn_type = 120;
|
||||
pub const YARVINSN_trace_getclassvariable: ruby_vminsn_type = 121;
|
||||
pub const YARVINSN_trace_setclassvariable: ruby_vminsn_type = 122;
|
||||
pub const YARVINSN_trace_opt_getconstant_path: ruby_vminsn_type = 123;
|
||||
pub const YARVINSN_trace_getconstant: ruby_vminsn_type = 124;
|
||||
pub const YARVINSN_trace_setconstant: ruby_vminsn_type = 125;
|
||||
pub const YARVINSN_trace_getglobal: ruby_vminsn_type = 126;
|
||||
pub const YARVINSN_trace_setglobal: ruby_vminsn_type = 127;
|
||||
pub const YARVINSN_trace_putnil: ruby_vminsn_type = 128;
|
||||
pub const YARVINSN_trace_putself: ruby_vminsn_type = 129;
|
||||
pub const YARVINSN_trace_putobject: ruby_vminsn_type = 130;
|
||||
pub const YARVINSN_trace_putspecialobject: ruby_vminsn_type = 131;
|
||||
pub const YARVINSN_trace_putstring: ruby_vminsn_type = 132;
|
||||
pub const YARVINSN_trace_putchilledstring: ruby_vminsn_type = 133;
|
||||
pub const YARVINSN_trace_concatstrings: ruby_vminsn_type = 134;
|
||||
pub const YARVINSN_trace_anytostring: ruby_vminsn_type = 135;
|
||||
pub const YARVINSN_trace_toregexp: ruby_vminsn_type = 136;
|
||||
pub const YARVINSN_trace_intern: ruby_vminsn_type = 137;
|
||||
pub const YARVINSN_trace_newarray: ruby_vminsn_type = 138;
|
||||
pub const YARVINSN_trace_pushtoarraykwsplat: ruby_vminsn_type = 139;
|
||||
pub const YARVINSN_trace_duparray: ruby_vminsn_type = 140;
|
||||
pub const YARVINSN_trace_duphash: ruby_vminsn_type = 141;
|
||||
pub const YARVINSN_trace_expandarray: ruby_vminsn_type = 142;
|
||||
pub const YARVINSN_trace_concatarray: ruby_vminsn_type = 143;
|
||||
pub const YARVINSN_trace_concattoarray: ruby_vminsn_type = 144;
|
||||
pub const YARVINSN_trace_pushtoarray: ruby_vminsn_type = 145;
|
||||
pub const YARVINSN_trace_splatarray: ruby_vminsn_type = 146;
|
||||
pub const YARVINSN_trace_splatkw: ruby_vminsn_type = 147;
|
||||
pub const YARVINSN_trace_newhash: ruby_vminsn_type = 148;
|
||||
pub const YARVINSN_trace_newrange: ruby_vminsn_type = 149;
|
||||
pub const YARVINSN_trace_pop: ruby_vminsn_type = 150;
|
||||
pub const YARVINSN_trace_dup: ruby_vminsn_type = 151;
|
||||
pub const YARVINSN_trace_dupn: ruby_vminsn_type = 152;
|
||||
pub const YARVINSN_trace_swap: ruby_vminsn_type = 153;
|
||||
pub const YARVINSN_trace_opt_reverse: ruby_vminsn_type = 154;
|
||||
pub const YARVINSN_trace_topn: ruby_vminsn_type = 155;
|
||||
pub const YARVINSN_trace_setn: ruby_vminsn_type = 156;
|
||||
pub const YARVINSN_trace_adjuststack: ruby_vminsn_type = 157;
|
||||
pub const YARVINSN_trace_defined: ruby_vminsn_type = 158;
|
||||
pub const YARVINSN_trace_definedivar: ruby_vminsn_type = 159;
|
||||
pub const YARVINSN_trace_checkmatch: ruby_vminsn_type = 160;
|
||||
pub const YARVINSN_trace_checkkeyword: ruby_vminsn_type = 161;
|
||||
pub const YARVINSN_trace_checktype: ruby_vminsn_type = 162;
|
||||
pub const YARVINSN_trace_defineclass: ruby_vminsn_type = 163;
|
||||
pub const YARVINSN_trace_definemethod: ruby_vminsn_type = 164;
|
||||
pub const YARVINSN_trace_definesmethod: ruby_vminsn_type = 165;
|
||||
pub const YARVINSN_trace_send: ruby_vminsn_type = 166;
|
||||
pub const YARVINSN_trace_sendforward: ruby_vminsn_type = 167;
|
||||
pub const YARVINSN_trace_opt_send_without_block: ruby_vminsn_type = 168;
|
||||
pub const YARVINSN_trace_opt_new: ruby_vminsn_type = 169;
|
||||
pub const YARVINSN_trace_objtostring: ruby_vminsn_type = 170;
|
||||
pub const YARVINSN_trace_opt_ary_freeze: ruby_vminsn_type = 171;
|
||||
pub const YARVINSN_trace_opt_hash_freeze: ruby_vminsn_type = 172;
|
||||
pub const YARVINSN_trace_opt_str_freeze: ruby_vminsn_type = 173;
|
||||
pub const YARVINSN_trace_opt_nil_p: ruby_vminsn_type = 174;
|
||||
pub const YARVINSN_trace_opt_str_uminus: ruby_vminsn_type = 175;
|
||||
pub const YARVINSN_trace_opt_duparray_send: ruby_vminsn_type = 176;
|
||||
pub const YARVINSN_trace_opt_newarray_send: ruby_vminsn_type = 177;
|
||||
pub const YARVINSN_trace_invokesuper: ruby_vminsn_type = 178;
|
||||
pub const YARVINSN_trace_invokesuperforward: ruby_vminsn_type = 179;
|
||||
pub const YARVINSN_trace_invokeblock: ruby_vminsn_type = 180;
|
||||
pub const YARVINSN_trace_leave: ruby_vminsn_type = 181;
|
||||
pub const YARVINSN_trace_throw: ruby_vminsn_type = 182;
|
||||
pub const YARVINSN_trace_jump: ruby_vminsn_type = 183;
|
||||
pub const YARVINSN_trace_branchif: ruby_vminsn_type = 184;
|
||||
pub const YARVINSN_trace_branchunless: ruby_vminsn_type = 185;
|
||||
pub const YARVINSN_trace_branchnil: ruby_vminsn_type = 186;
|
||||
pub const YARVINSN_trace_once: ruby_vminsn_type = 187;
|
||||
pub const YARVINSN_trace_opt_case_dispatch: ruby_vminsn_type = 188;
|
||||
pub const YARVINSN_trace_opt_plus: ruby_vminsn_type = 189;
|
||||
pub const YARVINSN_trace_opt_minus: ruby_vminsn_type = 190;
|
||||
pub const YARVINSN_trace_opt_mult: ruby_vminsn_type = 191;
|
||||
pub const YARVINSN_trace_opt_div: ruby_vminsn_type = 192;
|
||||
pub const YARVINSN_trace_opt_mod: ruby_vminsn_type = 193;
|
||||
pub const YARVINSN_trace_opt_eq: ruby_vminsn_type = 194;
|
||||
pub const YARVINSN_trace_opt_neq: ruby_vminsn_type = 195;
|
||||
pub const YARVINSN_trace_opt_lt: ruby_vminsn_type = 196;
|
||||
pub const YARVINSN_trace_opt_le: ruby_vminsn_type = 197;
|
||||
pub const YARVINSN_trace_opt_gt: ruby_vminsn_type = 198;
|
||||
pub const YARVINSN_trace_opt_ge: ruby_vminsn_type = 199;
|
||||
pub const YARVINSN_trace_opt_ltlt: ruby_vminsn_type = 200;
|
||||
pub const YARVINSN_trace_opt_and: ruby_vminsn_type = 201;
|
||||
pub const YARVINSN_trace_opt_or: ruby_vminsn_type = 202;
|
||||
pub const YARVINSN_trace_opt_aref: ruby_vminsn_type = 203;
|
||||
pub const YARVINSN_trace_opt_aset: ruby_vminsn_type = 204;
|
||||
pub const YARVINSN_trace_opt_aset_with: ruby_vminsn_type = 205;
|
||||
pub const YARVINSN_trace_opt_aref_with: ruby_vminsn_type = 206;
|
||||
pub const YARVINSN_trace_opt_length: ruby_vminsn_type = 207;
|
||||
pub const YARVINSN_trace_opt_size: ruby_vminsn_type = 208;
|
||||
pub const YARVINSN_trace_opt_empty_p: ruby_vminsn_type = 209;
|
||||
pub const YARVINSN_trace_opt_succ: ruby_vminsn_type = 210;
|
||||
pub const YARVINSN_trace_opt_not: ruby_vminsn_type = 211;
|
||||
pub const YARVINSN_trace_opt_regexpmatch2: ruby_vminsn_type = 212;
|
||||
pub const YARVINSN_trace_invokebuiltin: ruby_vminsn_type = 213;
|
||||
pub const YARVINSN_trace_opt_invokebuiltin_delegate: ruby_vminsn_type = 214;
|
||||
pub const YARVINSN_trace_opt_invokebuiltin_delegate_leave: ruby_vminsn_type = 215;
|
||||
pub const YARVINSN_trace_getlocal_WC_0: ruby_vminsn_type = 216;
|
||||
pub const YARVINSN_trace_getlocal_WC_1: ruby_vminsn_type = 217;
|
||||
pub const YARVINSN_trace_setlocal_WC_0: ruby_vminsn_type = 218;
|
||||
pub const YARVINSN_trace_setlocal_WC_1: ruby_vminsn_type = 219;
|
||||
pub const YARVINSN_trace_putobject_INT2FIX_0_: ruby_vminsn_type = 220;
|
||||
pub const YARVINSN_trace_putobject_INT2FIX_1_: ruby_vminsn_type = 221;
|
||||
pub const YARVINSN_zjit_opt_send_without_block: ruby_vminsn_type = 222;
|
||||
pub const YARVINSN_zjit_opt_plus: ruby_vminsn_type = 223;
|
||||
pub const YARVINSN_zjit_opt_minus: ruby_vminsn_type = 224;
|
||||
pub const YARVINSN_zjit_opt_mult: ruby_vminsn_type = 225;
|
||||
pub const YARVINSN_zjit_opt_div: ruby_vminsn_type = 226;
|
||||
pub const YARVINSN_zjit_opt_mod: ruby_vminsn_type = 227;
|
||||
pub const YARVINSN_zjit_opt_eq: ruby_vminsn_type = 228;
|
||||
pub const YARVINSN_zjit_opt_neq: ruby_vminsn_type = 229;
|
||||
pub const YARVINSN_zjit_opt_lt: ruby_vminsn_type = 230;
|
||||
pub const YARVINSN_zjit_opt_le: ruby_vminsn_type = 231;
|
||||
pub const YARVINSN_zjit_opt_gt: ruby_vminsn_type = 232;
|
||||
pub const YARVINSN_zjit_opt_ge: ruby_vminsn_type = 233;
|
||||
pub const VM_INSTRUCTION_SIZE: ruby_vminsn_type = 234;
|
||||
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),
|
||||
|
Loading…
x
Reference in New Issue
Block a user