YARV: Instruction Table

type Index Instruction Operands Stacks
nop 0nop   =>  
variable 1getlocalidx  => val
2setlocalidxval =>  
3getspecialidx, type  => val
4setspecialidxobj =>  
5getdynamicidx, level  => val
6setdynamicidx, levelval =>  
7getinstancevariableid  => val
8setinstancevariableidval =>  
9getclassvariableid  => val
10setclassvariableid, declpval =>  
11getconstantidklass => val
12setconstantidval, klass =>  
13getglobalentry  => val
14setglobalentryval =>  
put 15putnil   => val
16putself   => val
17putundef   => val
18putobjectval  => val
19putstringval  => val
20concatstringsnum... => val
21tostring val => val
22toregexpflagstr => val
23newarraynum... => val
24duparrayary  => val
25expandarraynum, flag..., ary => ...
26concatarray ary1, ary2st => ary
27splatarrayflagary => obj
28checkincludearrayflagobj, ary => obj, result
29newhashnum... => val
30newrangeflaglow, high => val
31putnot obj => val
stack 32pop val =>  
33dup val => val1, val2
34dupnn... => ...
35swap val, obj => obj, val
36reput ..., val => val
37topnn... => val
38emptstack ... => ...
setting 39definemethodid, body, is_singletonobj =>  
40aliasv_p, id1, id2  =>  
41undefid  =>  
42definedtype, obj, needstrv => val
43postexeblockiseq  =>  
44traceflag, args  =>  
class/module 45defineclassid, klass_iseq, define_typecbase, super => val
method/iterator 46sendid, op_argc, blockiseq, op_flag, ic... => val
47invokesuperop_argc, blockiseq, flag... => val
48invokeblocknum, flag... => val
49leave val => val
50finish val => val
exception 51throwthrow_statethrowobj => val
jump 52jumpdst  =>  
53branchifdstval =>  
54branchunlessdstval =>  
optimize 55getinlinecacheic, dst  => val
56onceinlinecacheic, dst  => val
57setinlinecachedstval => val
58opt_case_dispatchhash, else_offset..., key =>  
59opt_checkenv   =>  
60opt_plus recv, obj => val
61opt_minus recv, obj => val
62opt_mult recv, obj => val
63opt_div recv, obj => val
64opt_mod recv, obj => val
65opt_eq recv, obj => val
66opt_lt recv, obj => val
67opt_le recv, obj => val
68opt_ltlt recv, obj => val
69opt_aref recv, obj => val
70opt_aset recv, obj, set => val
71opt_length recv => val
72opt_succ recv => val
73opt_regexpmatch1robj => val
74opt_regexpmatch2 obj2, obj1 => val
75opt_call_native_compiled   =>  
joke 76bitblt   => ret
77answer   => ret
optimize78getlocal_OP_2   => val
79getlocal_OP_3   => val
80getlocal_OP_4   => val
81setlocal_OP_2 val =>  
82setlocal_OP_3 val =>  
83setlocal_OP_4 val =>  
84getdynamic_OP__WC__0idx  => val
85getdynamic_OP_1_0   => val
86getdynamic_OP_2_0   => val
87getdynamic_OP_3_0   => val
88getdynamic_OP_4_0   => val
89setdynamic_OP__WC__0idxval =>  
90setdynamic_OP_1_0 val =>  
91setdynamic_OP_2_0 val =>  
92setdynamic_OP_3_0 val =>  
93setdynamic_OP_4_0 val =>  
94putobject_OP_INT2FIX_O_0_C_   => val
95putobject_OP_INT2FIX_O_1_C_   => val
96putobject_OP_Qtrue   => val
97putobject_OP_Qfalse   => val
98send_OP__WC___WC__Qfalse_0__WC_id, op_argc, ic... => val
99send_OP__WC__0_Qfalse_0__WC_id, ic... => val
100send_OP__WC__1_Qfalse_0__WC_id, ic... => val
101send_OP__WC__2_Qfalse_0__WC_id, ic... => val
102send_OP__WC__3_Qfalse_0__WC_id, ic... => val
103send_OP__WC___WC__Qfalse_0x04__WC_id, op_argc, ic... => val
104send_OP__WC__0_Qfalse_0x04__WC_id, ic... => val
105send_OP__WC__1_Qfalse_0x04__WC_id, ic... => val
106send_OP__WC__2_Qfalse_0x04__WC_id, ic... => val
107send_OP__WC__3_Qfalse_0x04__WC_id, ic... => val
108send_OP__WC__0_Qfalse_0x0c__WC_id, ic... => val
109UNIFIED_putobject_putobjectval_0, val_1  => val_0, val_1
110UNIFIED_putobject_putstringval_0, val_1  => val_0, val_1
111UNIFIED_putobject_setlocalval_0, idx_1  =>  
112UNIFIED_putobject_setdynamicval_0, idx_1, level_1  =>  
113UNIFIED_putstring_putstringval_0, val_1  => val_0, val_1
114UNIFIED_putstring_putobjectval_0, val_1  => val_0, val_1
115UNIFIED_putstring_setlocalval_0, idx_1  =>  
116UNIFIED_putstring_setdynamicval_0, idx_1, level_1  =>  
117UNIFIED_dup_setlocalidx_1val_0 => val2_0
118UNIFIED_getlocal_getlocalidx_0, idx_1  => val_0, val_1
119UNIFIED_getlocal_putobjectidx_0, val_1  => val_0, val_1
SASADA Koichi / ko1 at atdot.net