00001
00013
00014 #define BIN(n) YARVINSN_##n
00015
00016 enum ruby_vminsn_type {
00017 BIN(nop) = 0,
00018
00019 BIN(getlocal) = 1,
00020
00021 BIN(setlocal) = 2,
00022
00023 BIN(getspecial) = 3,
00024
00025 BIN(setspecial) = 4,
00026
00027 BIN(getdynamic) = 5,
00028
00029 BIN(setdynamic) = 6,
00030
00031 BIN(getinstancevariable) = 7,
00032
00033 BIN(setinstancevariable) = 8,
00034
00035 BIN(getclassvariable) = 9,
00036
00037 BIN(setclassvariable) = 10,
00038
00039 BIN(getconstant) = 11,
00040
00041 BIN(setconstant) = 12,
00042
00043 BIN(getglobal) = 13,
00044
00045 BIN(setglobal) = 14,
00046
00047 BIN(putnil) = 15,
00048
00049 BIN(putself) = 16,
00050
00051 BIN(putobject) = 17,
00052
00053 BIN(putspecialobject) = 18,
00054
00055 BIN(putiseq) = 19,
00056
00057 BIN(putstring) = 20,
00058
00059 BIN(concatstrings) = 21,
00060
00061 BIN(tostring) = 22,
00062
00063 BIN(toregexp) = 23,
00064
00065 BIN(newarray) = 24,
00066
00067 BIN(duparray) = 25,
00068
00069 BIN(expandarray) = 26,
00070
00071 BIN(concatarray) = 27,
00072
00073 BIN(splatarray) = 28,
00074
00075 BIN(checkincludearray) = 29,
00076
00077 BIN(newhash) = 30,
00078
00079 BIN(newrange) = 31,
00080
00081 BIN(pop) = 32,
00082
00083 BIN(dup) = 33,
00084
00085 BIN(dupn) = 34,
00086
00087 BIN(swap) = 35,
00088
00089 BIN(reput) = 36,
00090
00091 BIN(topn) = 37,
00092
00093 BIN(setn) = 38,
00094
00095 BIN(adjuststack) = 39,
00096
00097 BIN(defined) = 40,
00098
00099 BIN(trace) = 41,
00100
00101 BIN(defineclass) = 42,
00102
00103 BIN(send) = 43,
00104
00105 BIN(invokesuper) = 44,
00106
00107 BIN(invokeblock) = 45,
00108
00109 BIN(leave) = 46,
00110
00111 BIN(finish) = 47,
00112
00113 BIN(throw) = 48,
00114
00115 BIN(jump) = 49,
00116
00117 BIN(branchif) = 50,
00118
00119 BIN(branchunless) = 51,
00120
00121 BIN(getinlinecache) = 52,
00122
00123 BIN(onceinlinecache) = 53,
00124
00125 BIN(setinlinecache) = 54,
00126
00127 BIN(opt_case_dispatch) = 55,
00128
00129 BIN(opt_checkenv) = 56,
00130
00131 BIN(opt_plus) = 57,
00132
00133 BIN(opt_minus) = 58,
00134
00135 BIN(opt_mult) = 59,
00136
00137 BIN(opt_div) = 60,
00138
00139 BIN(opt_mod) = 61,
00140
00141 BIN(opt_eq) = 62,
00142
00143 BIN(opt_neq) = 63,
00144
00145 BIN(opt_lt) = 64,
00146
00147 BIN(opt_le) = 65,
00148
00149 BIN(opt_gt) = 66,
00150
00151 BIN(opt_ge) = 67,
00152
00153 BIN(opt_ltlt) = 68,
00154
00155 BIN(opt_aref) = 69,
00156
00157 BIN(opt_aset) = 70,
00158
00159 BIN(opt_length) = 71,
00160
00161 BIN(opt_size) = 72,
00162
00163 BIN(opt_succ) = 73,
00164
00165 BIN(opt_not) = 74,
00166
00167 BIN(opt_regexpmatch1) = 75,
00168
00169 BIN(opt_regexpmatch2) = 76,
00170
00171 BIN(opt_call_c_function) = 77,
00172
00173 BIN(bitblt) = 78,
00174
00175 BIN(answer) = 79,
00176
00177 VM_INSTRUCTION_SIZE = 80
00178 };
00179
00180