1// SHA1Hash: 28750767099e284e592d1aac6d0607d04968d174
2/*
3 * Copyright (C) 2019 Apple Inc. All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 *
9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer.
11 * 2. Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in the
13 * documentation and/or other materials provided with the distribution.
14 *
15 * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
16 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
17 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
18 * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
19 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
20 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
21 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
22 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
24 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25
26 * Autogenerated, do not modify.
27*/
28
29#pragma once
30
31#define FOR_EACH_BYTECODE_ID(macro) \
32 macro(op_create_this, 5) \
33 macro(op_create_promise, 5) \
34 macro(op_create_generator, 4) \
35 macro(op_create_async_generator, 4) \
36 macro(op_get_argument, 4) \
37 macro(op_to_this, 3) \
38 macro(op_new_object, 4) \
39 macro(op_new_array, 6) \
40 macro(op_new_array_with_size, 4) \
41 macro(op_new_array_buffer, 5) \
42 macro(op_add, 6) \
43 macro(op_mul, 6) \
44 macro(op_div, 6) \
45 macro(op_sub, 6) \
46 macro(op_bitand, 5) \
47 macro(op_bitor, 5) \
48 macro(op_bitxor, 5) \
49 macro(op_lshift, 5) \
50 macro(op_rshift, 5) \
51 macro(op_bitnot, 4) \
52 macro(op_inc, 3) \
53 macro(op_dec, 3) \
54 macro(op_to_object, 5) \
55 macro(op_to_number, 4) \
56 macro(op_to_numeric, 4) \
57 macro(op_negate, 5) \
58 macro(op_in_by_val, 5) \
59 macro(op_get_by_id, 5) \
60 macro(op_get_by_id_with_this, 6) \
61 macro(op_get_by_val_with_this, 6) \
62 macro(op_get_by_id_direct, 5) \
63 macro(op_try_get_by_id, 5) \
64 macro(op_put_by_id, 6) \
65 macro(op_get_by_val, 5) \
66 macro(op_put_by_val, 5) \
67 macro(op_put_by_val_direct, 5) \
68 macro(op_jneq_ptr, 5) \
69 macro(op_call, 6) \
70 macro(op_tail_call, 6) \
71 macro(op_call_eval, 6) \
72 macro(op_call_varargs, 8) \
73 macro(op_tail_call_varargs, 8) \
74 macro(op_tail_call_forward_arguments, 8) \
75 macro(op_construct, 6) \
76 macro(op_construct_varargs, 8) \
77 macro(op_resolve_scope, 7) \
78 macro(op_get_from_scope, 8) \
79 macro(op_put_to_scope, 8) \
80 macro(op_get_from_arguments, 5) \
81 macro(op_catch, 4) \
82 macro(op_profile_type, 7) \
83 macro(op_profile_control_flow, 3) \
84 macro(op_has_indexed_property, 5) \
85 macro(op_get_direct_pname, 7) \
86 macro(op_get_internal_field, 5) \
87 macro(op_wide16, 1) \
88 macro(op_wide32, 1) \
89 macro(op_enter, 1) \
90 macro(op_get_scope, 2) \
91 macro(op_create_direct_arguments, 2) \
92 macro(op_create_scoped_arguments, 3) \
93 macro(op_create_cloned_arguments, 2) \
94 macro(op_new_promise, 3) \
95 macro(op_new_generator, 2) \
96 macro(op_argument_count, 2) \
97 macro(op_check_tdz, 2) \
98 macro(op_new_array_with_spread, 5) \
99 macro(op_spread, 3) \
100 macro(op_new_regexp, 3) \
101 macro(op_mov, 3) \
102 macro(op_eq, 4) \
103 macro(op_neq, 4) \
104 macro(op_stricteq, 4) \
105 macro(op_nstricteq, 4) \
106 macro(op_less, 4) \
107 macro(op_lesseq, 4) \
108 macro(op_greater, 4) \
109 macro(op_greatereq, 4) \
110 macro(op_below, 4) \
111 macro(op_beloweq, 4) \
112 macro(op_mod, 4) \
113 macro(op_pow, 4) \
114 macro(op_urshift, 4) \
115 macro(op_eq_null, 3) \
116 macro(op_neq_null, 3) \
117 macro(op_to_string, 3) \
118 macro(op_unsigned, 3) \
119 macro(op_is_empty, 3) \
120 macro(op_is_undefined, 3) \
121 macro(op_is_undefined_or_null, 3) \
122 macro(op_is_boolean, 3) \
123 macro(op_is_number, 3) \
124 macro(op_is_object, 3) \
125 macro(op_is_object_or_null, 3) \
126 macro(op_is_function, 3) \
127 macro(op_not, 3) \
128 macro(op_identity_with_profile, 4) \
129 macro(op_overrides_has_instance, 4) \
130 macro(op_instanceof, 4) \
131 macro(op_instanceof_custom, 5) \
132 macro(op_typeof, 3) \
133 macro(op_is_cell_with_type, 4) \
134 macro(op_in_by_id, 4) \
135 macro(op_put_by_id_with_this, 5) \
136 macro(op_del_by_id, 4) \
137 macro(op_put_by_val_with_this, 5) \
138 macro(op_del_by_val, 4) \
139 macro(op_put_getter_by_id, 5) \
140 macro(op_put_setter_by_id, 5) \
141 macro(op_put_getter_setter_by_id, 6) \
142 macro(op_put_getter_by_val, 5) \
143 macro(op_put_setter_by_val, 5) \
144 macro(op_define_data_property, 5) \
145 macro(op_define_accessor_property, 6) \
146 macro(op_jmp, 2) \
147 macro(op_jtrue, 3) \
148 macro(op_jfalse, 3) \
149 macro(op_jeq_null, 3) \
150 macro(op_jneq_null, 3) \
151 macro(op_jundefined_or_null, 3) \
152 macro(op_jnundefined_or_null, 3) \
153 macro(op_jeq, 4) \
154 macro(op_jstricteq, 4) \
155 macro(op_jneq, 4) \
156 macro(op_jnstricteq, 4) \
157 macro(op_jless, 4) \
158 macro(op_jlesseq, 4) \
159 macro(op_jgreater, 4) \
160 macro(op_jgreatereq, 4) \
161 macro(op_jnless, 4) \
162 macro(op_jnlesseq, 4) \
163 macro(op_jngreater, 4) \
164 macro(op_jngreatereq, 4) \
165 macro(op_jbelow, 4) \
166 macro(op_jbeloweq, 4) \
167 macro(op_loop_hint, 1) \
168 macro(op_switch_imm, 4) \
169 macro(op_switch_char, 4) \
170 macro(op_switch_string, 4) \
171 macro(op_new_func, 4) \
172 macro(op_new_func_exp, 4) \
173 macro(op_new_generator_func, 4) \
174 macro(op_new_generator_func_exp, 4) \
175 macro(op_new_async_func, 4) \
176 macro(op_new_async_func_exp, 4) \
177 macro(op_new_async_generator_func, 4) \
178 macro(op_new_async_generator_func_exp, 4) \
179 macro(op_set_function_name, 3) \
180 macro(op_ret, 2) \
181 macro(op_strcat, 4) \
182 macro(op_to_primitive, 3) \
183 macro(op_put_to_arguments, 4) \
184 macro(op_push_with_scope, 4) \
185 macro(op_create_lexical_environment, 5) \
186 macro(op_create_generator_frame_environment, 5) \
187 macro(op_get_parent_scope, 3) \
188 macro(op_throw, 2) \
189 macro(op_throw_static_error, 3) \
190 macro(op_debug, 3) \
191 macro(op_end, 2) \
192 macro(op_get_enumerable_length, 3) \
193 macro(op_has_structure_property, 5) \
194 macro(op_has_generic_property, 4) \
195 macro(op_get_property_enumerator, 3) \
196 macro(op_enumerator_structure_pname, 4) \
197 macro(op_enumerator_generic_pname, 4) \
198 macro(op_to_index_string, 3) \
199 macro(op_unreachable, 1) \
200 macro(op_create_rest, 4) \
201 macro(op_get_rest_length, 3) \
202 macro(op_yield, 4) \
203 macro(op_check_traps, 1) \
204 macro(op_log_shadow_chicken_prologue, 2) \
205 macro(op_log_shadow_chicken_tail, 3) \
206 macro(op_resolve_scope_for_hoisting_func_decl_in_eval, 4) \
207 macro(op_put_internal_field, 4) \
208 macro(op_nop, 1) \
209 macro(op_super_sampler_begin, 1) \
210 macro(op_super_sampler_end, 1) \
211
212#define NUMBER_OF_BYTECODE_IDS 179
213#define FOR_EACH_BYTECODE_METADATA_SIZE(macro) \
214 macro(sizeof(OpCreateThis::Metadata))\
215 macro(sizeof(OpCreatePromise::Metadata))\
216 macro(sizeof(OpCreateGenerator::Metadata))\
217 macro(sizeof(OpCreateAsyncGenerator::Metadata))\
218 macro(sizeof(OpGetArgument::Metadata))\
219 macro(sizeof(OpToThis::Metadata))\
220 macro(sizeof(OpNewObject::Metadata))\
221 macro(sizeof(OpNewArray::Metadata))\
222 macro(sizeof(OpNewArrayWithSize::Metadata))\
223 macro(sizeof(OpNewArrayBuffer::Metadata))\
224 macro(sizeof(OpAdd::Metadata))\
225 macro(sizeof(OpMul::Metadata))\
226 macro(sizeof(OpDiv::Metadata))\
227 macro(sizeof(OpSub::Metadata))\
228 macro(sizeof(OpBitand::Metadata))\
229 macro(sizeof(OpBitor::Metadata))\
230 macro(sizeof(OpBitxor::Metadata))\
231 macro(sizeof(OpLshift::Metadata))\
232 macro(sizeof(OpRshift::Metadata))\
233 macro(sizeof(OpBitnot::Metadata))\
234 macro(sizeof(OpInc::Metadata))\
235 macro(sizeof(OpDec::Metadata))\
236 macro(sizeof(OpToObject::Metadata))\
237 macro(sizeof(OpToNumber::Metadata))\
238 macro(sizeof(OpToNumeric::Metadata))\
239 macro(sizeof(OpNegate::Metadata))\
240 macro(sizeof(OpInByVal::Metadata))\
241 macro(sizeof(OpGetById::Metadata))\
242 macro(sizeof(OpGetByIdWithThis::Metadata))\
243 macro(sizeof(OpGetByValWithThis::Metadata))\
244 macro(sizeof(OpGetByIdDirect::Metadata))\
245 macro(sizeof(OpTryGetById::Metadata))\
246 macro(sizeof(OpPutById::Metadata))\
247 macro(sizeof(OpGetByVal::Metadata))\
248 macro(sizeof(OpPutByVal::Metadata))\
249 macro(sizeof(OpPutByValDirect::Metadata))\
250 macro(sizeof(OpJneqPtr::Metadata))\
251 macro(sizeof(OpCall::Metadata))\
252 macro(sizeof(OpTailCall::Metadata))\
253 macro(sizeof(OpCallEval::Metadata))\
254 macro(sizeof(OpCallVarargs::Metadata))\
255 macro(sizeof(OpTailCallVarargs::Metadata))\
256 macro(sizeof(OpTailCallForwardArguments::Metadata))\
257 macro(sizeof(OpConstruct::Metadata))\
258 macro(sizeof(OpConstructVarargs::Metadata))\
259 macro(sizeof(OpResolveScope::Metadata))\
260 macro(sizeof(OpGetFromScope::Metadata))\
261 macro(sizeof(OpPutToScope::Metadata))\
262 macro(sizeof(OpGetFromArguments::Metadata))\
263 macro(sizeof(OpCatch::Metadata))\
264 macro(sizeof(OpProfileType::Metadata))\
265 macro(sizeof(OpProfileControlFlow::Metadata))\
266 macro(sizeof(OpHasIndexedProperty::Metadata))\
267 macro(sizeof(OpGetDirectPname::Metadata))\
268 macro(sizeof(OpGetInternalField::Metadata))\
269
270#define NUMBER_OF_BYTECODE_WITH_METADATA 55
271
272#define FOR_EACH_BYTECODE_METADATA_ALIGNMENT(macro) \
273 macro(alignof(OpCreateThis::Metadata))\
274 macro(alignof(OpCreatePromise::Metadata))\
275 macro(alignof(OpCreateGenerator::Metadata))\
276 macro(alignof(OpCreateAsyncGenerator::Metadata))\
277 macro(alignof(OpGetArgument::Metadata))\
278 macro(alignof(OpToThis::Metadata))\
279 macro(alignof(OpNewObject::Metadata))\
280 macro(alignof(OpNewArray::Metadata))\
281 macro(alignof(OpNewArrayWithSize::Metadata))\
282 macro(alignof(OpNewArrayBuffer::Metadata))\
283 macro(alignof(OpAdd::Metadata))\
284 macro(alignof(OpMul::Metadata))\
285 macro(alignof(OpDiv::Metadata))\
286 macro(alignof(OpSub::Metadata))\
287 macro(alignof(OpBitand::Metadata))\
288 macro(alignof(OpBitor::Metadata))\
289 macro(alignof(OpBitxor::Metadata))\
290 macro(alignof(OpLshift::Metadata))\
291 macro(alignof(OpRshift::Metadata))\
292 macro(alignof(OpBitnot::Metadata))\
293 macro(alignof(OpInc::Metadata))\
294 macro(alignof(OpDec::Metadata))\
295 macro(alignof(OpToObject::Metadata))\
296 macro(alignof(OpToNumber::Metadata))\
297 macro(alignof(OpToNumeric::Metadata))\
298 macro(alignof(OpNegate::Metadata))\
299 macro(alignof(OpInByVal::Metadata))\
300 macro(alignof(OpGetById::Metadata))\
301 macro(alignof(OpGetByIdWithThis::Metadata))\
302 macro(alignof(OpGetByValWithThis::Metadata))\
303 macro(alignof(OpGetByIdDirect::Metadata))\
304 macro(alignof(OpTryGetById::Metadata))\
305 macro(alignof(OpPutById::Metadata))\
306 macro(alignof(OpGetByVal::Metadata))\
307 macro(alignof(OpPutByVal::Metadata))\
308 macro(alignof(OpPutByValDirect::Metadata))\
309 macro(alignof(OpJneqPtr::Metadata))\
310 macro(alignof(OpCall::Metadata))\
311 macro(alignof(OpTailCall::Metadata))\
312 macro(alignof(OpCallEval::Metadata))\
313 macro(alignof(OpCallVarargs::Metadata))\
314 macro(alignof(OpTailCallVarargs::Metadata))\
315 macro(alignof(OpTailCallForwardArguments::Metadata))\
316 macro(alignof(OpConstruct::Metadata))\
317 macro(alignof(OpConstructVarargs::Metadata))\
318 macro(alignof(OpResolveScope::Metadata))\
319 macro(alignof(OpGetFromScope::Metadata))\
320 macro(alignof(OpPutToScope::Metadata))\
321 macro(alignof(OpGetFromArguments::Metadata))\
322 macro(alignof(OpCatch::Metadata))\
323 macro(alignof(OpProfileType::Metadata))\
324 macro(alignof(OpProfileControlFlow::Metadata))\
325 macro(alignof(OpHasIndexedProperty::Metadata))\
326 macro(alignof(OpGetDirectPname::Metadata))\
327 macro(alignof(OpGetInternalField::Metadata))\
328
329#define op_create_this_value_string "0"
330#define op_create_promise_value_string "1"
331#define op_create_generator_value_string "2"
332#define op_create_async_generator_value_string "3"
333#define op_get_argument_value_string "4"
334#define op_to_this_value_string "5"
335#define op_new_object_value_string "6"
336#define op_new_array_value_string "7"
337#define op_new_array_with_size_value_string "8"
338#define op_new_array_buffer_value_string "9"
339#define op_add_value_string "10"
340#define op_mul_value_string "11"
341#define op_div_value_string "12"
342#define op_sub_value_string "13"
343#define op_bitand_value_string "14"
344#define op_bitor_value_string "15"
345#define op_bitxor_value_string "16"
346#define op_lshift_value_string "17"
347#define op_rshift_value_string "18"
348#define op_bitnot_value_string "19"
349#define op_inc_value_string "20"
350#define op_dec_value_string "21"
351#define op_to_object_value_string "22"
352#define op_to_number_value_string "23"
353#define op_to_numeric_value_string "24"
354#define op_negate_value_string "25"
355#define op_in_by_val_value_string "26"
356#define op_get_by_id_value_string "27"
357#define op_get_by_id_with_this_value_string "28"
358#define op_get_by_val_with_this_value_string "29"
359#define op_get_by_id_direct_value_string "30"
360#define op_try_get_by_id_value_string "31"
361#define op_put_by_id_value_string "32"
362#define op_get_by_val_value_string "33"
363#define op_put_by_val_value_string "34"
364#define op_put_by_val_direct_value_string "35"
365#define op_jneq_ptr_value_string "36"
366#define op_call_value_string "37"
367#define op_tail_call_value_string "38"
368#define op_call_eval_value_string "39"
369#define op_call_varargs_value_string "40"
370#define op_tail_call_varargs_value_string "41"
371#define op_tail_call_forward_arguments_value_string "42"
372#define op_construct_value_string "43"
373#define op_construct_varargs_value_string "44"
374#define op_resolve_scope_value_string "45"
375#define op_get_from_scope_value_string "46"
376#define op_put_to_scope_value_string "47"
377#define op_get_from_arguments_value_string "48"
378#define op_catch_value_string "49"
379#define op_profile_type_value_string "50"
380#define op_profile_control_flow_value_string "51"
381#define op_has_indexed_property_value_string "52"
382#define op_get_direct_pname_value_string "53"
383#define op_get_internal_field_value_string "54"
384#define op_wide16_value_string "55"
385#define op_wide32_value_string "56"
386#define op_enter_value_string "57"
387#define op_get_scope_value_string "58"
388#define op_create_direct_arguments_value_string "59"
389#define op_create_scoped_arguments_value_string "60"
390#define op_create_cloned_arguments_value_string "61"
391#define op_new_promise_value_string "62"
392#define op_new_generator_value_string "63"
393#define op_argument_count_value_string "64"
394#define op_check_tdz_value_string "65"
395#define op_new_array_with_spread_value_string "66"
396#define op_spread_value_string "67"
397#define op_new_regexp_value_string "68"
398#define op_mov_value_string "69"
399#define op_eq_value_string "70"
400#define op_neq_value_string "71"
401#define op_stricteq_value_string "72"
402#define op_nstricteq_value_string "73"
403#define op_less_value_string "74"
404#define op_lesseq_value_string "75"
405#define op_greater_value_string "76"
406#define op_greatereq_value_string "77"
407#define op_below_value_string "78"
408#define op_beloweq_value_string "79"
409#define op_mod_value_string "80"
410#define op_pow_value_string "81"
411#define op_urshift_value_string "82"
412#define op_eq_null_value_string "83"
413#define op_neq_null_value_string "84"
414#define op_to_string_value_string "85"
415#define op_unsigned_value_string "86"
416#define op_is_empty_value_string "87"
417#define op_is_undefined_value_string "88"
418#define op_is_undefined_or_null_value_string "89"
419#define op_is_boolean_value_string "90"
420#define op_is_number_value_string "91"
421#define op_is_object_value_string "92"
422#define op_is_object_or_null_value_string "93"
423#define op_is_function_value_string "94"
424#define op_not_value_string "95"
425#define op_identity_with_profile_value_string "96"
426#define op_overrides_has_instance_value_string "97"
427#define op_instanceof_value_string "98"
428#define op_instanceof_custom_value_string "99"
429#define op_typeof_value_string "100"
430#define op_is_cell_with_type_value_string "101"
431#define op_in_by_id_value_string "102"
432#define op_put_by_id_with_this_value_string "103"
433#define op_del_by_id_value_string "104"
434#define op_put_by_val_with_this_value_string "105"
435#define op_del_by_val_value_string "106"
436#define op_put_getter_by_id_value_string "107"
437#define op_put_setter_by_id_value_string "108"
438#define op_put_getter_setter_by_id_value_string "109"
439#define op_put_getter_by_val_value_string "110"
440#define op_put_setter_by_val_value_string "111"
441#define op_define_data_property_value_string "112"
442#define op_define_accessor_property_value_string "113"
443#define op_jmp_value_string "114"
444#define op_jtrue_value_string "115"
445#define op_jfalse_value_string "116"
446#define op_jeq_null_value_string "117"
447#define op_jneq_null_value_string "118"
448#define op_jundefined_or_null_value_string "119"
449#define op_jnundefined_or_null_value_string "120"
450#define op_jeq_value_string "121"
451#define op_jstricteq_value_string "122"
452#define op_jneq_value_string "123"
453#define op_jnstricteq_value_string "124"
454#define op_jless_value_string "125"
455#define op_jlesseq_value_string "126"
456#define op_jgreater_value_string "127"
457#define op_jgreatereq_value_string "128"
458#define op_jnless_value_string "129"
459#define op_jnlesseq_value_string "130"
460#define op_jngreater_value_string "131"
461#define op_jngreatereq_value_string "132"
462#define op_jbelow_value_string "133"
463#define op_jbeloweq_value_string "134"
464#define op_loop_hint_value_string "135"
465#define op_switch_imm_value_string "136"
466#define op_switch_char_value_string "137"
467#define op_switch_string_value_string "138"
468#define op_new_func_value_string "139"
469#define op_new_func_exp_value_string "140"
470#define op_new_generator_func_value_string "141"
471#define op_new_generator_func_exp_value_string "142"
472#define op_new_async_func_value_string "143"
473#define op_new_async_func_exp_value_string "144"
474#define op_new_async_generator_func_value_string "145"
475#define op_new_async_generator_func_exp_value_string "146"
476#define op_set_function_name_value_string "147"
477#define op_ret_value_string "148"
478#define op_strcat_value_string "149"
479#define op_to_primitive_value_string "150"
480#define op_put_to_arguments_value_string "151"
481#define op_push_with_scope_value_string "152"
482#define op_create_lexical_environment_value_string "153"
483#define op_create_generator_frame_environment_value_string "154"
484#define op_get_parent_scope_value_string "155"
485#define op_throw_value_string "156"
486#define op_throw_static_error_value_string "157"
487#define op_debug_value_string "158"
488#define op_end_value_string "159"
489#define op_get_enumerable_length_value_string "160"
490#define op_has_structure_property_value_string "161"
491#define op_has_generic_property_value_string "162"
492#define op_get_property_enumerator_value_string "163"
493#define op_enumerator_structure_pname_value_string "164"
494#define op_enumerator_generic_pname_value_string "165"
495#define op_to_index_string_value_string "166"
496#define op_unreachable_value_string "167"
497#define op_create_rest_value_string "168"
498#define op_get_rest_length_value_string "169"
499#define op_yield_value_string "170"
500#define op_check_traps_value_string "171"
501#define op_log_shadow_chicken_prologue_value_string "172"
502#define op_log_shadow_chicken_tail_value_string "173"
503#define op_resolve_scope_for_hoisting_func_decl_in_eval_value_string "174"
504#define op_put_internal_field_value_string "175"
505#define op_nop_value_string "176"
506#define op_super_sampler_begin_value_string "177"
507#define op_super_sampler_end_value_string "178"
508#define op_create_this_wide16_value_string "410"
509#define op_create_promise_wide16_value_string "411"
510#define op_create_generator_wide16_value_string "412"
511#define op_create_async_generator_wide16_value_string "413"
512#define op_get_argument_wide16_value_string "414"
513#define op_to_this_wide16_value_string "415"
514#define op_new_object_wide16_value_string "416"
515#define op_new_array_wide16_value_string "417"
516#define op_new_array_with_size_wide16_value_string "418"
517#define op_new_array_buffer_wide16_value_string "419"
518#define op_add_wide16_value_string "420"
519#define op_mul_wide16_value_string "421"
520#define op_div_wide16_value_string "422"
521#define op_sub_wide16_value_string "423"
522#define op_bitand_wide16_value_string "424"
523#define op_bitor_wide16_value_string "425"
524#define op_bitxor_wide16_value_string "426"
525#define op_lshift_wide16_value_string "427"
526#define op_rshift_wide16_value_string "428"
527#define op_bitnot_wide16_value_string "429"
528#define op_inc_wide16_value_string "430"
529#define op_dec_wide16_value_string "431"
530#define op_to_object_wide16_value_string "432"
531#define op_to_number_wide16_value_string "433"
532#define op_to_numeric_wide16_value_string "434"
533#define op_negate_wide16_value_string "435"
534#define op_in_by_val_wide16_value_string "436"
535#define op_get_by_id_wide16_value_string "437"
536#define op_get_by_id_with_this_wide16_value_string "438"
537#define op_get_by_val_with_this_wide16_value_string "439"
538#define op_get_by_id_direct_wide16_value_string "440"
539#define op_try_get_by_id_wide16_value_string "441"
540#define op_put_by_id_wide16_value_string "442"
541#define op_get_by_val_wide16_value_string "443"
542#define op_put_by_val_wide16_value_string "444"
543#define op_put_by_val_direct_wide16_value_string "445"
544#define op_jneq_ptr_wide16_value_string "446"
545#define op_call_wide16_value_string "447"
546#define op_tail_call_wide16_value_string "448"
547#define op_call_eval_wide16_value_string "449"
548#define op_call_varargs_wide16_value_string "450"
549#define op_tail_call_varargs_wide16_value_string "451"
550#define op_tail_call_forward_arguments_wide16_value_string "452"
551#define op_construct_wide16_value_string "453"
552#define op_construct_varargs_wide16_value_string "454"
553#define op_resolve_scope_wide16_value_string "455"
554#define op_get_from_scope_wide16_value_string "456"
555#define op_put_to_scope_wide16_value_string "457"
556#define op_get_from_arguments_wide16_value_string "458"
557#define op_catch_wide16_value_string "459"
558#define op_profile_type_wide16_value_string "460"
559#define op_profile_control_flow_wide16_value_string "461"
560#define op_has_indexed_property_wide16_value_string "462"
561#define op_get_direct_pname_wide16_value_string "463"
562#define op_get_internal_field_wide16_value_string "464"
563#define op_wide16_wide16_value_string "465"
564#define op_wide32_wide16_value_string "466"
565#define op_enter_wide16_value_string "467"
566#define op_get_scope_wide16_value_string "468"
567#define op_create_direct_arguments_wide16_value_string "469"
568#define op_create_scoped_arguments_wide16_value_string "470"
569#define op_create_cloned_arguments_wide16_value_string "471"
570#define op_new_promise_wide16_value_string "472"
571#define op_new_generator_wide16_value_string "473"
572#define op_argument_count_wide16_value_string "474"
573#define op_check_tdz_wide16_value_string "475"
574#define op_new_array_with_spread_wide16_value_string "476"
575#define op_spread_wide16_value_string "477"
576#define op_new_regexp_wide16_value_string "478"
577#define op_mov_wide16_value_string "479"
578#define op_eq_wide16_value_string "480"
579#define op_neq_wide16_value_string "481"
580#define op_stricteq_wide16_value_string "482"
581#define op_nstricteq_wide16_value_string "483"
582#define op_less_wide16_value_string "484"
583#define op_lesseq_wide16_value_string "485"
584#define op_greater_wide16_value_string "486"
585#define op_greatereq_wide16_value_string "487"
586#define op_below_wide16_value_string "488"
587#define op_beloweq_wide16_value_string "489"
588#define op_mod_wide16_value_string "490"
589#define op_pow_wide16_value_string "491"
590#define op_urshift_wide16_value_string "492"
591#define op_eq_null_wide16_value_string "493"
592#define op_neq_null_wide16_value_string "494"
593#define op_to_string_wide16_value_string "495"
594#define op_unsigned_wide16_value_string "496"
595#define op_is_empty_wide16_value_string "497"
596#define op_is_undefined_wide16_value_string "498"
597#define op_is_undefined_or_null_wide16_value_string "499"
598#define op_is_boolean_wide16_value_string "500"
599#define op_is_number_wide16_value_string "501"
600#define op_is_object_wide16_value_string "502"
601#define op_is_object_or_null_wide16_value_string "503"
602#define op_is_function_wide16_value_string "504"
603#define op_not_wide16_value_string "505"
604#define op_identity_with_profile_wide16_value_string "506"
605#define op_overrides_has_instance_wide16_value_string "507"
606#define op_instanceof_wide16_value_string "508"
607#define op_instanceof_custom_wide16_value_string "509"
608#define op_typeof_wide16_value_string "510"
609#define op_is_cell_with_type_wide16_value_string "511"
610#define op_in_by_id_wide16_value_string "512"
611#define op_put_by_id_with_this_wide16_value_string "513"
612#define op_del_by_id_wide16_value_string "514"
613#define op_put_by_val_with_this_wide16_value_string "515"
614#define op_del_by_val_wide16_value_string "516"
615#define op_put_getter_by_id_wide16_value_string "517"
616#define op_put_setter_by_id_wide16_value_string "518"
617#define op_put_getter_setter_by_id_wide16_value_string "519"
618#define op_put_getter_by_val_wide16_value_string "520"
619#define op_put_setter_by_val_wide16_value_string "521"
620#define op_define_data_property_wide16_value_string "522"
621#define op_define_accessor_property_wide16_value_string "523"
622#define op_jmp_wide16_value_string "524"
623#define op_jtrue_wide16_value_string "525"
624#define op_jfalse_wide16_value_string "526"
625#define op_jeq_null_wide16_value_string "527"
626#define op_jneq_null_wide16_value_string "528"
627#define op_jundefined_or_null_wide16_value_string "529"
628#define op_jnundefined_or_null_wide16_value_string "530"
629#define op_jeq_wide16_value_string "531"
630#define op_jstricteq_wide16_value_string "532"
631#define op_jneq_wide16_value_string "533"
632#define op_jnstricteq_wide16_value_string "534"
633#define op_jless_wide16_value_string "535"
634#define op_jlesseq_wide16_value_string "536"
635#define op_jgreater_wide16_value_string "537"
636#define op_jgreatereq_wide16_value_string "538"
637#define op_jnless_wide16_value_string "539"
638#define op_jnlesseq_wide16_value_string "540"
639#define op_jngreater_wide16_value_string "541"
640#define op_jngreatereq_wide16_value_string "542"
641#define op_jbelow_wide16_value_string "543"
642#define op_jbeloweq_wide16_value_string "544"
643#define op_loop_hint_wide16_value_string "545"
644#define op_switch_imm_wide16_value_string "546"
645#define op_switch_char_wide16_value_string "547"
646#define op_switch_string_wide16_value_string "548"
647#define op_new_func_wide16_value_string "549"
648#define op_new_func_exp_wide16_value_string "550"
649#define op_new_generator_func_wide16_value_string "551"
650#define op_new_generator_func_exp_wide16_value_string "552"
651#define op_new_async_func_wide16_value_string "553"
652#define op_new_async_func_exp_wide16_value_string "554"
653#define op_new_async_generator_func_wide16_value_string "555"
654#define op_new_async_generator_func_exp_wide16_value_string "556"
655#define op_set_function_name_wide16_value_string "557"
656#define op_ret_wide16_value_string "558"
657#define op_strcat_wide16_value_string "559"
658#define op_to_primitive_wide16_value_string "560"
659#define op_put_to_arguments_wide16_value_string "561"
660#define op_push_with_scope_wide16_value_string "562"
661#define op_create_lexical_environment_wide16_value_string "563"
662#define op_create_generator_frame_environment_wide16_value_string "564"
663#define op_get_parent_scope_wide16_value_string "565"
664#define op_throw_wide16_value_string "566"
665#define op_throw_static_error_wide16_value_string "567"
666#define op_debug_wide16_value_string "568"
667#define op_end_wide16_value_string "569"
668#define op_get_enumerable_length_wide16_value_string "570"
669#define op_has_structure_property_wide16_value_string "571"
670#define op_has_generic_property_wide16_value_string "572"
671#define op_get_property_enumerator_wide16_value_string "573"
672#define op_enumerator_structure_pname_wide16_value_string "574"
673#define op_enumerator_generic_pname_wide16_value_string "575"
674#define op_to_index_string_wide16_value_string "576"
675#define op_unreachable_wide16_value_string "577"
676#define op_create_rest_wide16_value_string "578"
677#define op_get_rest_length_wide16_value_string "579"
678#define op_yield_wide16_value_string "580"
679#define op_check_traps_wide16_value_string "581"
680#define op_log_shadow_chicken_prologue_wide16_value_string "582"
681#define op_log_shadow_chicken_tail_wide16_value_string "583"
682#define op_resolve_scope_for_hoisting_func_decl_in_eval_wide16_value_string "584"
683#define op_put_internal_field_wide16_value_string "585"
684#define op_nop_wide16_value_string "586"
685#define op_super_sampler_begin_wide16_value_string "587"
686#define op_super_sampler_end_wide16_value_string "588"
687#define op_create_this_wide32_value_string "820"
688#define op_create_promise_wide32_value_string "821"
689#define op_create_generator_wide32_value_string "822"
690#define op_create_async_generator_wide32_value_string "823"
691#define op_get_argument_wide32_value_string "824"
692#define op_to_this_wide32_value_string "825"
693#define op_new_object_wide32_value_string "826"
694#define op_new_array_wide32_value_string "827"
695#define op_new_array_with_size_wide32_value_string "828"
696#define op_new_array_buffer_wide32_value_string "829"
697#define op_add_wide32_value_string "830"
698#define op_mul_wide32_value_string "831"
699#define op_div_wide32_value_string "832"
700#define op_sub_wide32_value_string "833"
701#define op_bitand_wide32_value_string "834"
702#define op_bitor_wide32_value_string "835"
703#define op_bitxor_wide32_value_string "836"
704#define op_lshift_wide32_value_string "837"
705#define op_rshift_wide32_value_string "838"
706#define op_bitnot_wide32_value_string "839"
707#define op_inc_wide32_value_string "840"
708#define op_dec_wide32_value_string "841"
709#define op_to_object_wide32_value_string "842"
710#define op_to_number_wide32_value_string "843"
711#define op_to_numeric_wide32_value_string "844"
712#define op_negate_wide32_value_string "845"
713#define op_in_by_val_wide32_value_string "846"
714#define op_get_by_id_wide32_value_string "847"
715#define op_get_by_id_with_this_wide32_value_string "848"
716#define op_get_by_val_with_this_wide32_value_string "849"
717#define op_get_by_id_direct_wide32_value_string "850"
718#define op_try_get_by_id_wide32_value_string "851"
719#define op_put_by_id_wide32_value_string "852"
720#define op_get_by_val_wide32_value_string "853"
721#define op_put_by_val_wide32_value_string "854"
722#define op_put_by_val_direct_wide32_value_string "855"
723#define op_jneq_ptr_wide32_value_string "856"
724#define op_call_wide32_value_string "857"
725#define op_tail_call_wide32_value_string "858"
726#define op_call_eval_wide32_value_string "859"
727#define op_call_varargs_wide32_value_string "860"
728#define op_tail_call_varargs_wide32_value_string "861"
729#define op_tail_call_forward_arguments_wide32_value_string "862"
730#define op_construct_wide32_value_string "863"
731#define op_construct_varargs_wide32_value_string "864"
732#define op_resolve_scope_wide32_value_string "865"
733#define op_get_from_scope_wide32_value_string "866"
734#define op_put_to_scope_wide32_value_string "867"
735#define op_get_from_arguments_wide32_value_string "868"
736#define op_catch_wide32_value_string "869"
737#define op_profile_type_wide32_value_string "870"
738#define op_profile_control_flow_wide32_value_string "871"
739#define op_has_indexed_property_wide32_value_string "872"
740#define op_get_direct_pname_wide32_value_string "873"
741#define op_get_internal_field_wide32_value_string "874"
742#define op_wide16_wide32_value_string "875"
743#define op_wide32_wide32_value_string "876"
744#define op_enter_wide32_value_string "877"
745#define op_get_scope_wide32_value_string "878"
746#define op_create_direct_arguments_wide32_value_string "879"
747#define op_create_scoped_arguments_wide32_value_string "880"
748#define op_create_cloned_arguments_wide32_value_string "881"
749#define op_new_promise_wide32_value_string "882"
750#define op_new_generator_wide32_value_string "883"
751#define op_argument_count_wide32_value_string "884"
752#define op_check_tdz_wide32_value_string "885"
753#define op_new_array_with_spread_wide32_value_string "886"
754#define op_spread_wide32_value_string "887"
755#define op_new_regexp_wide32_value_string "888"
756#define op_mov_wide32_value_string "889"
757#define op_eq_wide32_value_string "890"
758#define op_neq_wide32_value_string "891"
759#define op_stricteq_wide32_value_string "892"
760#define op_nstricteq_wide32_value_string "893"
761#define op_less_wide32_value_string "894"
762#define op_lesseq_wide32_value_string "895"
763#define op_greater_wide32_value_string "896"
764#define op_greatereq_wide32_value_string "897"
765#define op_below_wide32_value_string "898"
766#define op_beloweq_wide32_value_string "899"
767#define op_mod_wide32_value_string "900"
768#define op_pow_wide32_value_string "901"
769#define op_urshift_wide32_value_string "902"
770#define op_eq_null_wide32_value_string "903"
771#define op_neq_null_wide32_value_string "904"
772#define op_to_string_wide32_value_string "905"
773#define op_unsigned_wide32_value_string "906"
774#define op_is_empty_wide32_value_string "907"
775#define op_is_undefined_wide32_value_string "908"
776#define op_is_undefined_or_null_wide32_value_string "909"
777#define op_is_boolean_wide32_value_string "910"
778#define op_is_number_wide32_value_string "911"
779#define op_is_object_wide32_value_string "912"
780#define op_is_object_or_null_wide32_value_string "913"
781#define op_is_function_wide32_value_string "914"
782#define op_not_wide32_value_string "915"
783#define op_identity_with_profile_wide32_value_string "916"
784#define op_overrides_has_instance_wide32_value_string "917"
785#define op_instanceof_wide32_value_string "918"
786#define op_instanceof_custom_wide32_value_string "919"
787#define op_typeof_wide32_value_string "920"
788#define op_is_cell_with_type_wide32_value_string "921"
789#define op_in_by_id_wide32_value_string "922"
790#define op_put_by_id_with_this_wide32_value_string "923"
791#define op_del_by_id_wide32_value_string "924"
792#define op_put_by_val_with_this_wide32_value_string "925"
793#define op_del_by_val_wide32_value_string "926"
794#define op_put_getter_by_id_wide32_value_string "927"
795#define op_put_setter_by_id_wide32_value_string "928"
796#define op_put_getter_setter_by_id_wide32_value_string "929"
797#define op_put_getter_by_val_wide32_value_string "930"
798#define op_put_setter_by_val_wide32_value_string "931"
799#define op_define_data_property_wide32_value_string "932"
800#define op_define_accessor_property_wide32_value_string "933"
801#define op_jmp_wide32_value_string "934"
802#define op_jtrue_wide32_value_string "935"
803#define op_jfalse_wide32_value_string "936"
804#define op_jeq_null_wide32_value_string "937"
805#define op_jneq_null_wide32_value_string "938"
806#define op_jundefined_or_null_wide32_value_string "939"
807#define op_jnundefined_or_null_wide32_value_string "940"
808#define op_jeq_wide32_value_string "941"
809#define op_jstricteq_wide32_value_string "942"
810#define op_jneq_wide32_value_string "943"
811#define op_jnstricteq_wide32_value_string "944"
812#define op_jless_wide32_value_string "945"
813#define op_jlesseq_wide32_value_string "946"
814#define op_jgreater_wide32_value_string "947"
815#define op_jgreatereq_wide32_value_string "948"
816#define op_jnless_wide32_value_string "949"
817#define op_jnlesseq_wide32_value_string "950"
818#define op_jngreater_wide32_value_string "951"
819#define op_jngreatereq_wide32_value_string "952"
820#define op_jbelow_wide32_value_string "953"
821#define op_jbeloweq_wide32_value_string "954"
822#define op_loop_hint_wide32_value_string "955"
823#define op_switch_imm_wide32_value_string "956"
824#define op_switch_char_wide32_value_string "957"
825#define op_switch_string_wide32_value_string "958"
826#define op_new_func_wide32_value_string "959"
827#define op_new_func_exp_wide32_value_string "960"
828#define op_new_generator_func_wide32_value_string "961"
829#define op_new_generator_func_exp_wide32_value_string "962"
830#define op_new_async_func_wide32_value_string "963"
831#define op_new_async_func_exp_wide32_value_string "964"
832#define op_new_async_generator_func_wide32_value_string "965"
833#define op_new_async_generator_func_exp_wide32_value_string "966"
834#define op_set_function_name_wide32_value_string "967"
835#define op_ret_wide32_value_string "968"
836#define op_strcat_wide32_value_string "969"
837#define op_to_primitive_wide32_value_string "970"
838#define op_put_to_arguments_wide32_value_string "971"
839#define op_push_with_scope_wide32_value_string "972"
840#define op_create_lexical_environment_wide32_value_string "973"
841#define op_create_generator_frame_environment_wide32_value_string "974"
842#define op_get_parent_scope_wide32_value_string "975"
843#define op_throw_wide32_value_string "976"
844#define op_throw_static_error_wide32_value_string "977"
845#define op_debug_wide32_value_string "978"
846#define op_end_wide32_value_string "979"
847#define op_get_enumerable_length_wide32_value_string "980"
848#define op_has_structure_property_wide32_value_string "981"
849#define op_has_generic_property_wide32_value_string "982"
850#define op_get_property_enumerator_wide32_value_string "983"
851#define op_enumerator_structure_pname_wide32_value_string "984"
852#define op_enumerator_generic_pname_wide32_value_string "985"
853#define op_to_index_string_wide32_value_string "986"
854#define op_unreachable_wide32_value_string "987"
855#define op_create_rest_wide32_value_string "988"
856#define op_get_rest_length_wide32_value_string "989"
857#define op_yield_wide32_value_string "990"
858#define op_check_traps_wide32_value_string "991"
859#define op_log_shadow_chicken_prologue_wide32_value_string "992"
860#define op_log_shadow_chicken_tail_wide32_value_string "993"
861#define op_resolve_scope_for_hoisting_func_decl_in_eval_wide32_value_string "994"
862#define op_put_internal_field_wide32_value_string "995"
863#define op_nop_wide32_value_string "996"
864#define op_super_sampler_begin_wide32_value_string "997"
865#define op_super_sampler_end_wide32_value_string "998"
866
867#define FOR_EACH_CLOOP_BYTECODE_HELPER_ID(macro) \
868 macro(llint_entry, 1) \
869 macro(getHostCallReturnValue, 1) \
870 macro(llint_return_to_host, 1) \
871 macro(llint_vm_entry_to_javascript, 1) \
872 macro(llint_vm_entry_to_native, 1) \
873 macro(llint_cloop_did_return_from_js_1, 1) \
874 macro(llint_cloop_did_return_from_js_2, 1) \
875 macro(llint_cloop_did_return_from_js_3, 1) \
876 macro(llint_cloop_did_return_from_js_4, 1) \
877 macro(llint_cloop_did_return_from_js_5, 1) \
878 macro(llint_cloop_did_return_from_js_6, 1) \
879 macro(llint_cloop_did_return_from_js_7, 1) \
880 macro(llint_cloop_did_return_from_js_8, 1) \
881 macro(llint_cloop_did_return_from_js_9, 1) \
882 macro(llint_cloop_did_return_from_js_10, 1) \
883 macro(llint_cloop_did_return_from_js_11, 1) \
884 macro(llint_cloop_did_return_from_js_12, 1) \
885 macro(llint_cloop_did_return_from_js_13, 1) \
886 macro(llint_cloop_did_return_from_js_14, 1) \
887 macro(llint_cloop_did_return_from_js_15, 1) \
888 macro(llint_cloop_did_return_from_js_16, 1) \
889 macro(llint_cloop_did_return_from_js_17, 1) \
890 macro(llint_cloop_did_return_from_js_18, 1) \
891 macro(llint_cloop_did_return_from_js_19, 1) \
892 macro(llint_cloop_did_return_from_js_20, 1) \
893 macro(llint_cloop_did_return_from_js_21, 1) \
894 macro(llint_cloop_did_return_from_js_22, 1) \
895 macro(llint_cloop_did_return_from_js_23, 1) \
896 macro(llint_cloop_did_return_from_js_24, 1) \
897 macro(llint_cloop_did_return_from_js_25, 1) \
898 macro(llint_cloop_did_return_from_js_26, 1) \
899 macro(llint_cloop_did_return_from_js_27, 1) \
900 macro(llint_cloop_did_return_from_js_28, 1) \
901 macro(llint_cloop_did_return_from_js_29, 1) \
902 macro(llint_cloop_did_return_from_js_30, 1) \
903 macro(llint_cloop_did_return_from_js_31, 1) \
904 macro(llint_cloop_did_return_from_js_32, 1) \
905 macro(llint_cloop_did_return_from_js_33, 1) \
906 macro(llint_cloop_did_return_from_js_34, 1) \
907
908#define NUMBER_OF_CLOOP_BYTECODE_HELPER_IDS 39
909
910#define FOR_EACH_BYTECODE_HELPER_ID(macro) \
911 macro(llint_program_prologue, 1) \
912 macro(llint_eval_prologue, 1) \
913 macro(llint_module_program_prologue, 1) \
914 macro(llint_function_for_call_prologue, 1) \
915 macro(llint_function_for_construct_prologue, 1) \
916 macro(llint_function_for_call_arity_check, 1) \
917 macro(llint_function_for_construct_arity_check, 1) \
918 macro(llint_generic_return_point, 1) \
919 macro(llint_throw_from_slow_path_trampoline, 1) \
920 macro(llint_throw_during_call_trampoline, 1) \
921 macro(llint_native_call_trampoline, 1) \
922 macro(llint_native_construct_trampoline, 1) \
923 macro(llint_internal_function_call_trampoline, 1) \
924 macro(llint_internal_function_construct_trampoline, 1) \
925 macro(handleUncaughtException, 1) \
926 macro(op_call_return_location, 1) \
927 macro(op_construct_return_location, 1) \
928 macro(op_call_varargs_slow_return_location, 1) \
929 macro(op_construct_varargs_slow_return_location, 1) \
930 macro(op_get_by_id_return_location, 1) \
931 macro(op_get_by_val_return_location, 1) \
932 macro(op_put_by_id_return_location, 1) \
933 macro(op_put_by_val_return_location, 1) \
934 macro(wasm_function_prologue, 1) \
935 macro(wasm_function_prologue_no_tls, 1) \
936
937#define NUMBER_OF_BYTECODE_HELPER_IDS 25
938
939#define FOR_EACH_WASM_ID(macro) \
940 macro(wasm_i32_add, 4) \
941 macro(wasm_i32_sub, 4) \
942 macro(wasm_i32_mul, 4) \
943 macro(wasm_i32_div_s, 4) \
944 macro(wasm_i32_div_u, 4) \
945 macro(wasm_i32_rem_s, 4) \
946 macro(wasm_i32_rem_u, 4) \
947 macro(wasm_i32_and, 4) \
948 macro(wasm_i32_or, 4) \
949 macro(wasm_i32_xor, 4) \
950 macro(wasm_i32_shl, 4) \
951 macro(wasm_i32_shr_u, 4) \
952 macro(wasm_i32_shr_s, 4) \
953 macro(wasm_i32_rotr, 4) \
954 macro(wasm_i32_rotl, 4) \
955 macro(wasm_i32_eq, 4) \
956 macro(wasm_i32_ne, 4) \
957 macro(wasm_i32_lt_s, 4) \
958 macro(wasm_i32_le_s, 4) \
959 macro(wasm_i32_lt_u, 4) \
960 macro(wasm_i32_le_u, 4) \
961 macro(wasm_i32_gt_s, 4) \
962 macro(wasm_i32_ge_s, 4) \
963 macro(wasm_i32_gt_u, 4) \
964 macro(wasm_i32_ge_u, 4) \
965 macro(wasm_i32_clz, 3) \
966 macro(wasm_i32_ctz, 3) \
967 macro(wasm_i32_popcnt, 3) \
968 macro(wasm_i32_eqz, 3) \
969 macro(wasm_i64_add, 4) \
970 macro(wasm_i64_sub, 4) \
971 macro(wasm_i64_mul, 4) \
972 macro(wasm_i64_div_s, 4) \
973 macro(wasm_i64_div_u, 4) \
974 macro(wasm_i64_rem_s, 4) \
975 macro(wasm_i64_rem_u, 4) \
976 macro(wasm_i64_and, 4) \
977 macro(wasm_i64_or, 4) \
978 macro(wasm_i64_xor, 4) \
979 macro(wasm_i64_shl, 4) \
980 macro(wasm_i64_shr_u, 4) \
981 macro(wasm_i64_shr_s, 4) \
982 macro(wasm_i64_rotr, 4) \
983 macro(wasm_i64_rotl, 4) \
984 macro(wasm_i64_eq, 4) \
985 macro(wasm_i64_ne, 4) \
986 macro(wasm_i64_lt_s, 4) \
987 macro(wasm_i64_le_s, 4) \
988 macro(wasm_i64_lt_u, 4) \
989 macro(wasm_i64_le_u, 4) \
990 macro(wasm_i64_gt_s, 4) \
991 macro(wasm_i64_ge_s, 4) \
992 macro(wasm_i64_gt_u, 4) \
993 macro(wasm_i64_ge_u, 4) \
994 macro(wasm_i64_clz, 3) \
995 macro(wasm_i64_ctz, 3) \
996 macro(wasm_i64_popcnt, 3) \
997 macro(wasm_i64_eqz, 3) \
998 macro(wasm_f32_add, 4) \
999 macro(wasm_f32_sub, 4) \
1000 macro(wasm_f32_mul, 4) \
1001 macro(wasm_f32_div, 4) \
1002 macro(wasm_f32_min, 4) \
1003 macro(wasm_f32_max, 4) \
1004 macro(wasm_f32_abs, 3) \
1005 macro(wasm_f32_neg, 3) \
1006 macro(wasm_f32_copysign, 4) \
1007 macro(wasm_f32_ceil, 3) \
1008 macro(wasm_f32_floor, 3) \
1009 macro(wasm_f32_trunc, 3) \
1010 macro(wasm_f32_nearest, 3) \
1011 macro(wasm_f32_sqrt, 3) \
1012 macro(wasm_f32_eq, 4) \
1013 macro(wasm_f32_ne, 4) \
1014 macro(wasm_f32_lt, 4) \
1015 macro(wasm_f32_le, 4) \
1016 macro(wasm_f32_gt, 4) \
1017 macro(wasm_f32_ge, 4) \
1018 macro(wasm_f64_add, 4) \
1019 macro(wasm_f64_sub, 4) \
1020 macro(wasm_f64_mul, 4) \
1021 macro(wasm_f64_div, 4) \
1022 macro(wasm_f64_min, 4) \
1023 macro(wasm_f64_max, 4) \
1024 macro(wasm_f64_abs, 3) \
1025 macro(wasm_f64_neg, 3) \
1026 macro(wasm_f64_copysign, 4) \
1027 macro(wasm_f64_ceil, 3) \
1028 macro(wasm_f64_floor, 3) \
1029 macro(wasm_f64_trunc, 3) \
1030 macro(wasm_f64_nearest, 3) \
1031 macro(wasm_f64_sqrt, 3) \
1032 macro(wasm_f64_eq, 4) \
1033 macro(wasm_f64_ne, 4) \
1034 macro(wasm_f64_lt, 4) \
1035 macro(wasm_f64_le, 4) \
1036 macro(wasm_f64_gt, 4) \
1037 macro(wasm_f64_ge, 4) \
1038 macro(wasm_i32_trunc_s_f32, 3) \
1039 macro(wasm_i32_trunc_s_f64, 3) \
1040 macro(wasm_i32_trunc_u_f32, 3) \
1041 macro(wasm_i32_trunc_u_f64, 3) \
1042 macro(wasm_i32_wrap_i64, 3) \
1043 macro(wasm_i64_trunc_s_f32, 3) \
1044 macro(wasm_i64_trunc_s_f64, 3) \
1045 macro(wasm_i64_trunc_u_f32, 3) \
1046 macro(wasm_i64_trunc_u_f64, 3) \
1047 macro(wasm_i64_extend_s_i32, 3) \
1048 macro(wasm_i64_extend_u_i32, 3) \
1049 macro(wasm_f32_convert_s_i32, 3) \
1050 macro(wasm_f32_convert_u_i32, 3) \
1051 macro(wasm_f32_convert_s_i64, 3) \
1052 macro(wasm_f32_convert_u_i64, 3) \
1053 macro(wasm_f32_demote_f64, 3) \
1054 macro(wasm_f32_reinterpret_i32, 3) \
1055 macro(wasm_f64_convert_s_i32, 3) \
1056 macro(wasm_f64_convert_u_i32, 3) \
1057 macro(wasm_f64_convert_s_i64, 3) \
1058 macro(wasm_f64_convert_u_i64, 3) \
1059 macro(wasm_f64_promote_f32, 3) \
1060 macro(wasm_f64_reinterpret_i64, 3) \
1061 macro(wasm_i32_reinterpret_f32, 3) \
1062 macro(wasm_i64_reinterpret_f64, 3) \
1063 macro(wasm_throw_from_slow_path_trampoline, 1) \
1064 macro(wasm_wide16, 1) \
1065 macro(wasm_wide32, 1) \
1066 macro(wasm_enter, 1) \
1067 macro(wasm_nop, 1) \
1068 macro(wasm_loop_hint, 1) \
1069 macro(wasm_mov, 3) \
1070 macro(wasm_jtrue, 3) \
1071 macro(wasm_jfalse, 3) \
1072 macro(wasm_jmp, 2) \
1073 macro(wasm_ret, 1) \
1074 macro(wasm_switch, 4) \
1075 macro(wasm_unreachable, 1) \
1076 macro(wasm_ret_void, 1) \
1077 macro(wasm_ref_is_null, 3) \
1078 macro(wasm_ref_func, 3) \
1079 macro(wasm_get_global, 3) \
1080 macro(wasm_set_global, 3) \
1081 macro(wasm_set_global_ref, 3) \
1082 macro(wasm_table_get, 4) \
1083 macro(wasm_table_set, 4) \
1084 macro(wasm_table_size, 3) \
1085 macro(wasm_table_grow, 5) \
1086 macro(wasm_table_fill, 5) \
1087 macro(wasm_call, 4) \
1088 macro(wasm_call_no_tls, 4) \
1089 macro(wasm_call_indirect, 6) \
1090 macro(wasm_call_indirect_no_tls, 6) \
1091 macro(wasm_current_memory, 2) \
1092 macro(wasm_grow_memory, 3) \
1093 macro(wasm_select, 5) \
1094 macro(wasm_load8_u, 4) \
1095 macro(wasm_load16_u, 4) \
1096 macro(wasm_load32_u, 4) \
1097 macro(wasm_load64_u, 4) \
1098 macro(wasm_i32_load8_s, 4) \
1099 macro(wasm_i64_load8_s, 4) \
1100 macro(wasm_i32_load16_s, 4) \
1101 macro(wasm_i64_load16_s, 4) \
1102 macro(wasm_i64_load32_s, 4) \
1103 macro(wasm_store8, 4) \
1104 macro(wasm_store16, 4) \
1105 macro(wasm_store32, 4) \
1106 macro(wasm_store64, 4) \
1107
1108#define NUMBER_OF_WASM_IDS 167
1109#define FOR_EACH_WASM_METADATA_SIZE(macro) \
1110
1111#define NUMBER_OF_WASM_WITH_METADATA 0
1112
1113#define FOR_EACH_WASM_METADATA_ALIGNMENT(macro) \
1114
1115
1116#define FOR_EACH_BYTECODE_STRUCT(macro) \
1117 macro(OpCreateThis) \
1118 macro(OpCreatePromise) \
1119 macro(OpCreateGenerator) \
1120 macro(OpCreateAsyncGenerator) \
1121 macro(OpGetArgument) \
1122 macro(OpToThis) \
1123 macro(OpNewObject) \
1124 macro(OpNewArray) \
1125 macro(OpNewArrayWithSize) \
1126 macro(OpNewArrayBuffer) \
1127 macro(OpAdd) \
1128 macro(OpMul) \
1129 macro(OpDiv) \
1130 macro(OpSub) \
1131 macro(OpBitand) \
1132 macro(OpBitor) \
1133 macro(OpBitxor) \
1134 macro(OpLshift) \
1135 macro(OpRshift) \
1136 macro(OpBitnot) \
1137 macro(OpInc) \
1138 macro(OpDec) \
1139 macro(OpToObject) \
1140 macro(OpToNumber) \
1141 macro(OpToNumeric) \
1142 macro(OpNegate) \
1143 macro(OpInByVal) \
1144 macro(OpGetById) \
1145 macro(OpGetByIdWithThis) \
1146 macro(OpGetByValWithThis) \
1147 macro(OpGetByIdDirect) \
1148 macro(OpTryGetById) \
1149 macro(OpPutById) \
1150 macro(OpGetByVal) \
1151 macro(OpPutByVal) \
1152 macro(OpPutByValDirect) \
1153 macro(OpJneqPtr) \
1154 macro(OpCall) \
1155 macro(OpTailCall) \
1156 macro(OpCallEval) \
1157 macro(OpCallVarargs) \
1158 macro(OpTailCallVarargs) \
1159 macro(OpTailCallForwardArguments) \
1160 macro(OpConstruct) \
1161 macro(OpConstructVarargs) \
1162 macro(OpResolveScope) \
1163 macro(OpGetFromScope) \
1164 macro(OpPutToScope) \
1165 macro(OpGetFromArguments) \
1166 macro(OpCatch) \
1167 macro(OpProfileType) \
1168 macro(OpProfileControlFlow) \
1169 macro(OpHasIndexedProperty) \
1170 macro(OpGetDirectPname) \
1171 macro(OpGetInternalField) \
1172 macro(OpWide16) \
1173 macro(OpWide32) \
1174 macro(OpEnter) \
1175 macro(OpGetScope) \
1176 macro(OpCreateDirectArguments) \
1177 macro(OpCreateScopedArguments) \
1178 macro(OpCreateClonedArguments) \
1179 macro(OpNewPromise) \
1180 macro(OpNewGenerator) \
1181 macro(OpArgumentCount) \
1182 macro(OpCheckTdz) \
1183 macro(OpNewArrayWithSpread) \
1184 macro(OpSpread) \
1185 macro(OpNewRegexp) \
1186 macro(OpMov) \
1187 macro(OpEq) \
1188 macro(OpNeq) \
1189 macro(OpStricteq) \
1190 macro(OpNstricteq) \
1191 macro(OpLess) \
1192 macro(OpLesseq) \
1193 macro(OpGreater) \
1194 macro(OpGreatereq) \
1195 macro(OpBelow) \
1196 macro(OpBeloweq) \
1197 macro(OpMod) \
1198 macro(OpPow) \
1199 macro(OpUrshift) \
1200 macro(OpEqNull) \
1201 macro(OpNeqNull) \
1202 macro(OpToString) \
1203 macro(OpUnsigned) \
1204 macro(OpIsEmpty) \
1205 macro(OpIsUndefined) \
1206 macro(OpIsUndefinedOrNull) \
1207 macro(OpIsBoolean) \
1208 macro(OpIsNumber) \
1209 macro(OpIsObject) \
1210 macro(OpIsObjectOrNull) \
1211 macro(OpIsFunction) \
1212 macro(OpNot) \
1213 macro(OpIdentityWithProfile) \
1214 macro(OpOverridesHasInstance) \
1215 macro(OpInstanceof) \
1216 macro(OpInstanceofCustom) \
1217 macro(OpTypeof) \
1218 macro(OpIsCellWithType) \
1219 macro(OpInById) \
1220 macro(OpPutByIdWithThis) \
1221 macro(OpDelById) \
1222 macro(OpPutByValWithThis) \
1223 macro(OpDelByVal) \
1224 macro(OpPutGetterById) \
1225 macro(OpPutSetterById) \
1226 macro(OpPutGetterSetterById) \
1227 macro(OpPutGetterByVal) \
1228 macro(OpPutSetterByVal) \
1229 macro(OpDefineDataProperty) \
1230 macro(OpDefineAccessorProperty) \
1231 macro(OpJmp) \
1232 macro(OpJtrue) \
1233 macro(OpJfalse) \
1234 macro(OpJeqNull) \
1235 macro(OpJneqNull) \
1236 macro(OpJundefinedOrNull) \
1237 macro(OpJnundefinedOrNull) \
1238 macro(OpJeq) \
1239 macro(OpJstricteq) \
1240 macro(OpJneq) \
1241 macro(OpJnstricteq) \
1242 macro(OpJless) \
1243 macro(OpJlesseq) \
1244 macro(OpJgreater) \
1245 macro(OpJgreatereq) \
1246 macro(OpJnless) \
1247 macro(OpJnlesseq) \
1248 macro(OpJngreater) \
1249 macro(OpJngreatereq) \
1250 macro(OpJbelow) \
1251 macro(OpJbeloweq) \
1252 macro(OpLoopHint) \
1253 macro(OpSwitchImm) \
1254 macro(OpSwitchChar) \
1255 macro(OpSwitchString) \
1256 macro(OpNewFunc) \
1257 macro(OpNewFuncExp) \
1258 macro(OpNewGeneratorFunc) \
1259 macro(OpNewGeneratorFuncExp) \
1260 macro(OpNewAsyncFunc) \
1261 macro(OpNewAsyncFuncExp) \
1262 macro(OpNewAsyncGeneratorFunc) \
1263 macro(OpNewAsyncGeneratorFuncExp) \
1264 macro(OpSetFunctionName) \
1265 macro(OpRet) \
1266 macro(OpStrcat) \
1267 macro(OpToPrimitive) \
1268 macro(OpPutToArguments) \
1269 macro(OpPushWithScope) \
1270 macro(OpCreateLexicalEnvironment) \
1271 macro(OpCreateGeneratorFrameEnvironment) \
1272 macro(OpGetParentScope) \
1273 macro(OpThrow) \
1274 macro(OpThrowStaticError) \
1275 macro(OpDebug) \
1276 macro(OpEnd) \
1277 macro(OpGetEnumerableLength) \
1278 macro(OpHasStructureProperty) \
1279 macro(OpHasGenericProperty) \
1280 macro(OpGetPropertyEnumerator) \
1281 macro(OpEnumeratorStructurePname) \
1282 macro(OpEnumeratorGenericPname) \
1283 macro(OpToIndexString) \
1284 macro(OpUnreachable) \
1285 macro(OpCreateRest) \
1286 macro(OpGetRestLength) \
1287 macro(OpYield) \
1288 macro(OpCheckTraps) \
1289 macro(OpLogShadowChickenPrologue) \
1290 macro(OpLogShadowChickenTail) \
1291 macro(OpResolveScopeForHoistingFuncDeclInEval) \
1292 macro(OpPutInternalField) \
1293 macro(OpNop) \
1294 macro(OpSuperSamplerBegin) \
1295 macro(OpSuperSamplerEnd) \
1296
1297#define FOR_EACH_WASM_STRUCT(macro) \
1298 macro(WasmI32Add) \
1299 macro(WasmI32Sub) \
1300 macro(WasmI32Mul) \
1301 macro(WasmI32DivS) \
1302 macro(WasmI32DivU) \
1303 macro(WasmI32RemS) \
1304 macro(WasmI32RemU) \
1305 macro(WasmI32And) \
1306 macro(WasmI32Or) \
1307 macro(WasmI32Xor) \
1308 macro(WasmI32Shl) \
1309 macro(WasmI32ShrU) \
1310 macro(WasmI32ShrS) \
1311 macro(WasmI32Rotr) \
1312 macro(WasmI32Rotl) \
1313 macro(WasmI32Eq) \
1314 macro(WasmI32Ne) \
1315 macro(WasmI32LtS) \
1316 macro(WasmI32LeS) \
1317 macro(WasmI32LtU) \
1318 macro(WasmI32LeU) \
1319 macro(WasmI32GtS) \
1320 macro(WasmI32GeS) \
1321 macro(WasmI32GtU) \
1322 macro(WasmI32GeU) \
1323 macro(WasmI32Clz) \
1324 macro(WasmI32Ctz) \
1325 macro(WasmI32Popcnt) \
1326 macro(WasmI32Eqz) \
1327 macro(WasmI64Add) \
1328 macro(WasmI64Sub) \
1329 macro(WasmI64Mul) \
1330 macro(WasmI64DivS) \
1331 macro(WasmI64DivU) \
1332 macro(WasmI64RemS) \
1333 macro(WasmI64RemU) \
1334 macro(WasmI64And) \
1335 macro(WasmI64Or) \
1336 macro(WasmI64Xor) \
1337 macro(WasmI64Shl) \
1338 macro(WasmI64ShrU) \
1339 macro(WasmI64ShrS) \
1340 macro(WasmI64Rotr) \
1341 macro(WasmI64Rotl) \
1342 macro(WasmI64Eq) \
1343 macro(WasmI64Ne) \
1344 macro(WasmI64LtS) \
1345 macro(WasmI64LeS) \
1346 macro(WasmI64LtU) \
1347 macro(WasmI64LeU) \
1348 macro(WasmI64GtS) \
1349 macro(WasmI64GeS) \
1350 macro(WasmI64GtU) \
1351 macro(WasmI64GeU) \
1352 macro(WasmI64Clz) \
1353 macro(WasmI64Ctz) \
1354 macro(WasmI64Popcnt) \
1355 macro(WasmI64Eqz) \
1356 macro(WasmF32Add) \
1357 macro(WasmF32Sub) \
1358 macro(WasmF32Mul) \
1359 macro(WasmF32Div) \
1360 macro(WasmF32Min) \
1361 macro(WasmF32Max) \
1362 macro(WasmF32Abs) \
1363 macro(WasmF32Neg) \
1364 macro(WasmF32Copysign) \
1365 macro(WasmF32Ceil) \
1366 macro(WasmF32Floor) \
1367 macro(WasmF32Trunc) \
1368 macro(WasmF32Nearest) \
1369 macro(WasmF32Sqrt) \
1370 macro(WasmF32Eq) \
1371 macro(WasmF32Ne) \
1372 macro(WasmF32Lt) \
1373 macro(WasmF32Le) \
1374 macro(WasmF32Gt) \
1375 macro(WasmF32Ge) \
1376 macro(WasmF64Add) \
1377 macro(WasmF64Sub) \
1378 macro(WasmF64Mul) \
1379 macro(WasmF64Div) \
1380 macro(WasmF64Min) \
1381 macro(WasmF64Max) \
1382 macro(WasmF64Abs) \
1383 macro(WasmF64Neg) \
1384 macro(WasmF64Copysign) \
1385 macro(WasmF64Ceil) \
1386 macro(WasmF64Floor) \
1387 macro(WasmF64Trunc) \
1388 macro(WasmF64Nearest) \
1389 macro(WasmF64Sqrt) \
1390 macro(WasmF64Eq) \
1391 macro(WasmF64Ne) \
1392 macro(WasmF64Lt) \
1393 macro(WasmF64Le) \
1394 macro(WasmF64Gt) \
1395 macro(WasmF64Ge) \
1396 macro(WasmI32TruncSF32) \
1397 macro(WasmI32TruncSF64) \
1398 macro(WasmI32TruncUF32) \
1399 macro(WasmI32TruncUF64) \
1400 macro(WasmI32WrapI64) \
1401 macro(WasmI64TruncSF32) \
1402 macro(WasmI64TruncSF64) \
1403 macro(WasmI64TruncUF32) \
1404 macro(WasmI64TruncUF64) \
1405 macro(WasmI64ExtendSI32) \
1406 macro(WasmI64ExtendUI32) \
1407 macro(WasmF32ConvertSI32) \
1408 macro(WasmF32ConvertUI32) \
1409 macro(WasmF32ConvertSI64) \
1410 macro(WasmF32ConvertUI64) \
1411 macro(WasmF32DemoteF64) \
1412 macro(WasmF32ReinterpretI32) \
1413 macro(WasmF64ConvertSI32) \
1414 macro(WasmF64ConvertUI32) \
1415 macro(WasmF64ConvertSI64) \
1416 macro(WasmF64ConvertUI64) \
1417 macro(WasmF64PromoteF32) \
1418 macro(WasmF64ReinterpretI64) \
1419 macro(WasmI32ReinterpretF32) \
1420 macro(WasmI64ReinterpretF64) \
1421 macro(WasmThrowFromSlowPathTrampoline) \
1422 macro(WasmWide16) \
1423 macro(WasmWide32) \
1424 macro(WasmEnter) \
1425 macro(WasmNop) \
1426 macro(WasmLoopHint) \
1427 macro(WasmMov) \
1428 macro(WasmJtrue) \
1429 macro(WasmJfalse) \
1430 macro(WasmJmp) \
1431 macro(WasmRet) \
1432 macro(WasmSwitch) \
1433 macro(WasmUnreachable) \
1434 macro(WasmRetVoid) \
1435 macro(WasmRefIsNull) \
1436 macro(WasmRefFunc) \
1437 macro(WasmGetGlobal) \
1438 macro(WasmSetGlobal) \
1439 macro(WasmSetGlobalRef) \
1440 macro(WasmTableGet) \
1441 macro(WasmTableSet) \
1442 macro(WasmTableSize) \
1443 macro(WasmTableGrow) \
1444 macro(WasmTableFill) \
1445 macro(WasmCall) \
1446 macro(WasmCallNoTls) \
1447 macro(WasmCallIndirect) \
1448 macro(WasmCallIndirectNoTls) \
1449 macro(WasmCurrentMemory) \
1450 macro(WasmGrowMemory) \
1451 macro(WasmSelect) \
1452 macro(WasmLoad8U) \
1453 macro(WasmLoad16U) \
1454 macro(WasmLoad32U) \
1455 macro(WasmLoad64U) \
1456 macro(WasmI32Load8S) \
1457 macro(WasmI64Load8S) \
1458 macro(WasmI32Load16S) \
1459 macro(WasmI64Load16S) \
1460 macro(WasmI64Load32S) \
1461 macro(WasmStore8) \
1462 macro(WasmStore16) \
1463 macro(WasmStore32) \
1464 macro(WasmStore64) \
1465
1466