1/* -*- mode:c; style:ruby; coding: utf-8; indent-tabs-mode: nil -*- */ 2 3/* This is an auto-generated file and is a part of the programming language 4 * Ruby. The person who created a program to generate this file (``I'' 5 * hereafter) would like to refrain from defining licensing of this generated 6 * source code. 7 * 8 * This file consist of many small parts of codes copyrighted by each authors, 9 * not only the ``I'' person. Those original authors agree with some 10 * open-source license. I believe that the license we agree is the condition 11 * mentioned in the file COPYING. It states "4. You may modify and include 12 * the part of the software into any other software ...". But the problem is, 13 * the license never makes it clear if such modified parts still remain in the 14 * same license, or not. The fact that we agree with the source code's 15 * licensing terms do not automatically define that of generated ones. This is 16 * the reason why this file is under unclear situation. All that I know is 17 * that above provision guarantees this file to exist. 18 * 19 * Please let me hesitate to declare something about this nuanced contract. I 20 * am not in the position to take over other authors' license to merge into my 21 * one. Changing them to (say) GPLv3 is not doable by myself. Perhaps someday 22 * it might turn out to be okay to say this file is under a license. I wish the 23 * situation would become more clear in the future. */ 24 25/*******************************************************************/ 26/*******************************************************************/ 27/*******************************************************************/ 28/** 29 This file contains YARV instruction list. 30 31 ---- 32 This file is auto generated by insns2vm.rb 33 DO NOT TOUCH! 34 35 If you want to fix something, you must edit "tool/ruby_vm/views/insns.inc.erb" 36 or tool/insns2vm.rb 37 */ 38 39/* BIN : Basic Instruction Name */ 40#define BIN(n) YARVINSN_##n 41 42enum ruby_vminsn_type { 43 BIN(nop), 44 BIN(getlocal), 45 BIN(setlocal), 46 BIN(getblockparam), 47 BIN(setblockparam), 48 BIN(getblockparamproxy), 49 BIN(getspecial), 50 BIN(setspecial), 51 BIN(getinstancevariable), 52 BIN(setinstancevariable), 53 BIN(getclassvariable), 54 BIN(setclassvariable), 55 BIN(getconstant), 56 BIN(setconstant), 57 BIN(getglobal), 58 BIN(setglobal), 59 BIN(putnil), 60 BIN(putself), 61 BIN(putobject), 62 BIN(putspecialobject), 63 BIN(putiseq), 64 BIN(putstring), 65 BIN(concatstrings), 66 BIN(tostring), 67 BIN(freezestring), 68 BIN(toregexp), 69 BIN(intern), 70 BIN(newarray), 71 BIN(duparray), 72 BIN(duphash), 73 BIN(expandarray), 74 BIN(concatarray), 75 BIN(splatarray), 76 BIN(newhash), 77 BIN(newrange), 78 BIN(pop), 79 BIN(dup), 80 BIN(dupn), 81 BIN(swap), 82 BIN(reverse), 83 BIN(reput), 84 BIN(topn), 85 BIN(setn), 86 BIN(adjuststack), 87 BIN(defined), 88 BIN(checkmatch), 89 BIN(checkkeyword), 90 BIN(checktype), 91 BIN(defineclass), 92 BIN(send), 93 BIN(opt_send_without_block), 94 BIN(opt_str_freeze), 95 BIN(opt_str_uminus), 96 BIN(opt_newarray_max), 97 BIN(opt_newarray_min), 98 BIN(invokesuper), 99 BIN(invokeblock), 100 BIN(leave), 101 BIN(throw), 102 BIN(jump), 103 BIN(branchif), 104 BIN(branchunless), 105 BIN(branchnil), 106 BIN(opt_getinlinecache), 107 BIN(opt_setinlinecache), 108 BIN(once), 109 BIN(opt_case_dispatch), 110 BIN(opt_plus), 111 BIN(opt_minus), 112 BIN(opt_mult), 113 BIN(opt_div), 114 BIN(opt_mod), 115 BIN(opt_eq), 116 BIN(opt_neq), 117 BIN(opt_lt), 118 BIN(opt_le), 119 BIN(opt_gt), 120 BIN(opt_ge), 121 BIN(opt_ltlt), 122 BIN(opt_and), 123 BIN(opt_or), 124 BIN(opt_aref), 125 BIN(opt_aset), 126 BIN(opt_aset_with), 127 BIN(opt_aref_with), 128 BIN(opt_length), 129 BIN(opt_size), 130 BIN(opt_empty_p), 131 BIN(opt_succ), 132 BIN(opt_not), 133 BIN(opt_regexpmatch1), 134 BIN(opt_regexpmatch2), 135 BIN(opt_call_c_function), 136 BIN(bitblt), 137 BIN(answer), 138 BIN(getlocal_WC_0), 139 BIN(getlocal_WC_1), 140 BIN(setlocal_WC_0), 141 BIN(setlocal_WC_1), 142 BIN(putobject_INT2FIX_0_), 143 BIN(putobject_INT2FIX_1_), 144 BIN(trace_nop), 145 BIN(trace_getlocal), 146 BIN(trace_setlocal), 147 BIN(trace_getblockparam), 148 BIN(trace_setblockparam), 149 BIN(trace_getblockparamproxy), 150 BIN(trace_getspecial), 151 BIN(trace_setspecial), 152 BIN(trace_getinstancevariable), 153 BIN(trace_setinstancevariable), 154 BIN(trace_getclassvariable), 155 BIN(trace_setclassvariable), 156 BIN(trace_getconstant), 157 BIN(trace_setconstant), 158 BIN(trace_getglobal), 159 BIN(trace_setglobal), 160 BIN(trace_putnil), 161 BIN(trace_putself), 162 BIN(trace_putobject), 163 BIN(trace_putspecialobject), 164 BIN(trace_putiseq), 165 BIN(trace_putstring), 166 BIN(trace_concatstrings), 167 BIN(trace_tostring), 168 BIN(trace_freezestring), 169 BIN(trace_toregexp), 170 BIN(trace_intern), 171 BIN(trace_newarray), 172 BIN(trace_duparray), 173 BIN(trace_duphash), 174 BIN(trace_expandarray), 175 BIN(trace_concatarray), 176 BIN(trace_splatarray), 177 BIN(trace_newhash), 178 BIN(trace_newrange), 179 BIN(trace_pop), 180 BIN(trace_dup), 181 BIN(trace_dupn), 182 BIN(trace_swap), 183 BIN(trace_reverse), 184 BIN(trace_reput), 185 BIN(trace_topn), 186 BIN(trace_setn), 187 BIN(trace_adjuststack), 188 BIN(trace_defined), 189 BIN(trace_checkmatch), 190 BIN(trace_checkkeyword), 191 BIN(trace_checktype), 192 BIN(trace_defineclass), 193 BIN(trace_send), 194 BIN(trace_opt_send_without_block), 195 BIN(trace_opt_str_freeze), 196 BIN(trace_opt_str_uminus), 197 BIN(trace_opt_newarray_max), 198 BIN(trace_opt_newarray_min), 199 BIN(trace_invokesuper), 200 BIN(trace_invokeblock), 201 BIN(trace_leave), 202 BIN(trace_throw), 203 BIN(trace_jump), 204 BIN(trace_branchif), 205 BIN(trace_branchunless), 206 BIN(trace_branchnil), 207 BIN(trace_opt_getinlinecache), 208 BIN(trace_opt_setinlinecache), 209 BIN(trace_once), 210 BIN(trace_opt_case_dispatch), 211 BIN(trace_opt_plus), 212 BIN(trace_opt_minus), 213 BIN(trace_opt_mult), 214 BIN(trace_opt_div), 215 BIN(trace_opt_mod), 216 BIN(trace_opt_eq), 217 BIN(trace_opt_neq), 218 BIN(trace_opt_lt), 219 BIN(trace_opt_le), 220 BIN(trace_opt_gt), 221 BIN(trace_opt_ge), 222 BIN(trace_opt_ltlt), 223 BIN(trace_opt_and), 224 BIN(trace_opt_or), 225 BIN(trace_opt_aref), 226 BIN(trace_opt_aset), 227 BIN(trace_opt_aset_with), 228 BIN(trace_opt_aref_with), 229 BIN(trace_opt_length), 230 BIN(trace_opt_size), 231 BIN(trace_opt_empty_p), 232 BIN(trace_opt_succ), 233 BIN(trace_opt_not), 234 BIN(trace_opt_regexpmatch1), 235 BIN(trace_opt_regexpmatch2), 236 BIN(trace_opt_call_c_function), 237 BIN(trace_bitblt), 238 BIN(trace_answer), 239 BIN(trace_getlocal_WC_0), 240 BIN(trace_getlocal_WC_1), 241 BIN(trace_setlocal_WC_0), 242 BIN(trace_setlocal_WC_1), 243 BIN(trace_putobject_INT2FIX_0_), 244 BIN(trace_putobject_INT2FIX_1_), 245 VM_INSTRUCTION_SIZE 246}; 247 248#define ASSERT_VM_INSTRUCTION_SIZE(array) \ 249 STATIC_ASSERT(numberof_##array, numberof(array) == VM_INSTRUCTION_SIZE) 250