1// SHA1Hash: da39a3ee5e6b4b0d3255bfef95601890afd80709
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 from /home/ubuntu/webkit/Source/JavaScriptCore/bytecode/BytecodeList.rb, 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_get_argument, 4) \
34 macro(op_to_this, 3) \
35 macro(op_new_object, 4) \
36 macro(op_new_array, 6) \
37 macro(op_new_array_with_size, 4) \
38 macro(op_new_array_buffer, 5) \
39 macro(op_add, 6) \
40 macro(op_mul, 6) \
41 macro(op_div, 6) \
42 macro(op_sub, 6) \
43 macro(op_bitand, 5) \
44 macro(op_bitor, 5) \
45 macro(op_bitxor, 5) \
46 macro(op_bitnot, 4) \
47 macro(op_to_object, 5) \
48 macro(op_to_number, 4) \
49 macro(op_negate, 5) \
50 macro(op_in_by_val, 5) \
51 macro(op_get_by_id, 5) \
52 macro(op_get_by_id_with_this, 6) \
53 macro(op_get_by_val_with_this, 6) \
54 macro(op_get_by_id_direct, 5) \
55 macro(op_try_get_by_id, 5) \
56 macro(op_put_by_id, 6) \
57 macro(op_get_by_val, 5) \
58 macro(op_put_by_val, 5) \
59 macro(op_put_by_val_direct, 5) \
60 macro(op_jneq_ptr, 5) \
61 macro(op_call, 6) \
62 macro(op_tail_call, 6) \
63 macro(op_call_eval, 6) \
64 macro(op_call_varargs, 8) \
65 macro(op_tail_call_varargs, 8) \
66 macro(op_tail_call_forward_arguments, 8) \
67 macro(op_construct, 6) \
68 macro(op_construct_varargs, 8) \
69 macro(op_resolve_scope, 7) \
70 macro(op_get_from_scope, 8) \
71 macro(op_put_to_scope, 8) \
72 macro(op_get_from_arguments, 5) \
73 macro(op_catch, 4) \
74 macro(op_profile_type, 7) \
75 macro(op_profile_control_flow, 3) \
76 macro(op_has_indexed_property, 5) \
77 macro(op_get_direct_pname, 7) \
78 macro(op_wide, 1) \
79 macro(op_enter, 1) \
80 macro(op_get_scope, 2) \
81 macro(op_create_direct_arguments, 2) \
82 macro(op_create_scoped_arguments, 3) \
83 macro(op_create_cloned_arguments, 2) \
84 macro(op_argument_count, 2) \
85 macro(op_check_tdz, 2) \
86 macro(op_new_array_with_spread, 5) \
87 macro(op_spread, 3) \
88 macro(op_new_regexp, 3) \
89 macro(op_mov, 3) \
90 macro(op_eq, 4) \
91 macro(op_neq, 4) \
92 macro(op_stricteq, 4) \
93 macro(op_nstricteq, 4) \
94 macro(op_less, 4) \
95 macro(op_lesseq, 4) \
96 macro(op_greater, 4) \
97 macro(op_greatereq, 4) \
98 macro(op_below, 4) \
99 macro(op_beloweq, 4) \
100 macro(op_mod, 4) \
101 macro(op_pow, 4) \
102 macro(op_lshift, 4) \
103 macro(op_rshift, 4) \
104 macro(op_urshift, 4) \
105 macro(op_eq_null, 3) \
106 macro(op_neq_null, 3) \
107 macro(op_to_string, 3) \
108 macro(op_unsigned, 3) \
109 macro(op_is_empty, 3) \
110 macro(op_is_undefined, 3) \
111 macro(op_is_undefined_or_null, 3) \
112 macro(op_is_boolean, 3) \
113 macro(op_is_number, 3) \
114 macro(op_is_object, 3) \
115 macro(op_is_object_or_null, 3) \
116 macro(op_is_function, 3) \
117 macro(op_inc, 2) \
118 macro(op_dec, 2) \
119 macro(op_not, 3) \
120 macro(op_identity_with_profile, 4) \
121 macro(op_overrides_has_instance, 4) \
122 macro(op_instanceof, 4) \
123 macro(op_instanceof_custom, 5) \
124 macro(op_typeof, 3) \
125 macro(op_is_cell_with_type, 4) \
126 macro(op_in_by_id, 4) \
127 macro(op_put_by_id_with_this, 5) \
128 macro(op_del_by_id, 4) \
129 macro(op_put_by_val_with_this, 5) \
130 macro(op_del_by_val, 4) \
131 macro(op_put_getter_by_id, 5) \
132 macro(op_put_setter_by_id, 5) \
133 macro(op_put_getter_setter_by_id, 6) \
134 macro(op_put_getter_by_val, 5) \
135 macro(op_put_setter_by_val, 5) \
136 macro(op_define_data_property, 5) \
137 macro(op_define_accessor_property, 6) \
138 macro(op_jmp, 2) \
139 macro(op_jtrue, 3) \
140 macro(op_jfalse, 3) \
141 macro(op_jeq_null, 3) \
142 macro(op_jneq_null, 3) \
143 macro(op_jeq, 4) \
144 macro(op_jstricteq, 4) \
145 macro(op_jneq, 4) \
146 macro(op_jnstricteq, 4) \
147 macro(op_jless, 4) \
148 macro(op_jlesseq, 4) \
149 macro(op_jgreater, 4) \
150 macro(op_jgreatereq, 4) \
151 macro(op_jnless, 4) \
152 macro(op_jnlesseq, 4) \
153 macro(op_jngreater, 4) \
154 macro(op_jngreatereq, 4) \
155 macro(op_jbelow, 4) \
156 macro(op_jbeloweq, 4) \
157 macro(op_loop_hint, 1) \
158 macro(op_switch_imm, 4) \
159 macro(op_switch_char, 4) \
160 macro(op_switch_string, 4) \
161 macro(op_new_func, 4) \
162 macro(op_new_func_exp, 4) \
163 macro(op_new_generator_func, 4) \
164 macro(op_new_generator_func_exp, 4) \
165 macro(op_new_async_func, 4) \
166 macro(op_new_async_func_exp, 4) \
167 macro(op_new_async_generator_func, 4) \
168 macro(op_new_async_generator_func_exp, 4) \
169 macro(op_set_function_name, 3) \
170 macro(op_ret, 2) \
171 macro(op_strcat, 4) \
172 macro(op_to_primitive, 3) \
173 macro(op_put_to_arguments, 4) \
174 macro(op_push_with_scope, 4) \
175 macro(op_create_lexical_environment, 5) \
176 macro(op_create_generator_frame_environment, 5) \
177 macro(op_get_parent_scope, 3) \
178 macro(op_throw, 2) \
179 macro(op_throw_static_error, 3) \
180 macro(op_debug, 3) \
181 macro(op_end, 2) \
182 macro(op_get_enumerable_length, 3) \
183 macro(op_has_structure_property, 5) \
184 macro(op_has_generic_property, 4) \
185 macro(op_get_property_enumerator, 3) \
186 macro(op_enumerator_structure_pname, 4) \
187 macro(op_enumerator_generic_pname, 4) \
188 macro(op_to_index_string, 3) \
189 macro(op_unreachable, 1) \
190 macro(op_create_rest, 4) \
191 macro(op_get_rest_length, 3) \
192 macro(op_yield, 4) \
193 macro(op_check_traps, 1) \
194 macro(op_log_shadow_chicken_prologue, 2) \
195 macro(op_log_shadow_chicken_tail, 3) \
196 macro(op_resolve_scope_for_hoisting_func_decl_in_eval, 4) \
197 macro(op_nop, 1) \
198 macro(op_super_sampler_begin, 1) \
199 macro(op_super_sampler_end, 1) \
200
201#define NUMBER_OF_BYTECODE_IDS 168
202#define FOR_EACH_BYTECODE_METADATA_SIZE(macro) \
203 macro(sizeof(OpCreateThis::Metadata))\
204 macro(sizeof(OpGetArgument::Metadata))\
205 macro(sizeof(OpToThis::Metadata))\
206 macro(sizeof(OpNewObject::Metadata))\
207 macro(sizeof(OpNewArray::Metadata))\
208 macro(sizeof(OpNewArrayWithSize::Metadata))\
209 macro(sizeof(OpNewArrayBuffer::Metadata))\
210 macro(sizeof(OpAdd::Metadata))\
211 macro(sizeof(OpMul::Metadata))\
212 macro(sizeof(OpDiv::Metadata))\
213 macro(sizeof(OpSub::Metadata))\
214 macro(sizeof(OpBitand::Metadata))\
215 macro(sizeof(OpBitor::Metadata))\
216 macro(sizeof(OpBitxor::Metadata))\
217 macro(sizeof(OpBitnot::Metadata))\
218 macro(sizeof(OpToObject::Metadata))\
219 macro(sizeof(OpToNumber::Metadata))\
220 macro(sizeof(OpNegate::Metadata))\
221 macro(sizeof(OpInByVal::Metadata))\
222 macro(sizeof(OpGetById::Metadata))\
223 macro(sizeof(OpGetByIdWithThis::Metadata))\
224 macro(sizeof(OpGetByValWithThis::Metadata))\
225 macro(sizeof(OpGetByIdDirect::Metadata))\
226 macro(sizeof(OpTryGetById::Metadata))\
227 macro(sizeof(OpPutById::Metadata))\
228 macro(sizeof(OpGetByVal::Metadata))\
229 macro(sizeof(OpPutByVal::Metadata))\
230 macro(sizeof(OpPutByValDirect::Metadata))\
231 macro(sizeof(OpJneqPtr::Metadata))\
232 macro(sizeof(OpCall::Metadata))\
233 macro(sizeof(OpTailCall::Metadata))\
234 macro(sizeof(OpCallEval::Metadata))\
235 macro(sizeof(OpCallVarargs::Metadata))\
236 macro(sizeof(OpTailCallVarargs::Metadata))\
237 macro(sizeof(OpTailCallForwardArguments::Metadata))\
238 macro(sizeof(OpConstruct::Metadata))\
239 macro(sizeof(OpConstructVarargs::Metadata))\
240 macro(sizeof(OpResolveScope::Metadata))\
241 macro(sizeof(OpGetFromScope::Metadata))\
242 macro(sizeof(OpPutToScope::Metadata))\
243 macro(sizeof(OpGetFromArguments::Metadata))\
244 macro(sizeof(OpCatch::Metadata))\
245 macro(sizeof(OpProfileType::Metadata))\
246 macro(sizeof(OpProfileControlFlow::Metadata))\
247 macro(sizeof(OpHasIndexedProperty::Metadata))\
248 macro(sizeof(OpGetDirectPname::Metadata))\
249
250#define NUMBER_OF_BYTECODE_WITH_METADATA 46
251
252#define FOR_EACH_BYTECODE_METADATA_ALIGNMENT(macro) \
253 macro(alignof(OpCreateThis::Metadata))\
254 macro(alignof(OpGetArgument::Metadata))\
255 macro(alignof(OpToThis::Metadata))\
256 macro(alignof(OpNewObject::Metadata))\
257 macro(alignof(OpNewArray::Metadata))\
258 macro(alignof(OpNewArrayWithSize::Metadata))\
259 macro(alignof(OpNewArrayBuffer::Metadata))\
260 macro(alignof(OpAdd::Metadata))\
261 macro(alignof(OpMul::Metadata))\
262 macro(alignof(OpDiv::Metadata))\
263 macro(alignof(OpSub::Metadata))\
264 macro(alignof(OpBitand::Metadata))\
265 macro(alignof(OpBitor::Metadata))\
266 macro(alignof(OpBitxor::Metadata))\
267 macro(alignof(OpBitnot::Metadata))\
268 macro(alignof(OpToObject::Metadata))\
269 macro(alignof(OpToNumber::Metadata))\
270 macro(alignof(OpNegate::Metadata))\
271 macro(alignof(OpInByVal::Metadata))\
272 macro(alignof(OpGetById::Metadata))\
273 macro(alignof(OpGetByIdWithThis::Metadata))\
274 macro(alignof(OpGetByValWithThis::Metadata))\
275 macro(alignof(OpGetByIdDirect::Metadata))\
276 macro(alignof(OpTryGetById::Metadata))\
277 macro(alignof(OpPutById::Metadata))\
278 macro(alignof(OpGetByVal::Metadata))\
279 macro(alignof(OpPutByVal::Metadata))\
280 macro(alignof(OpPutByValDirect::Metadata))\
281 macro(alignof(OpJneqPtr::Metadata))\
282 macro(alignof(OpCall::Metadata))\
283 macro(alignof(OpTailCall::Metadata))\
284 macro(alignof(OpCallEval::Metadata))\
285 macro(alignof(OpCallVarargs::Metadata))\
286 macro(alignof(OpTailCallVarargs::Metadata))\
287 macro(alignof(OpTailCallForwardArguments::Metadata))\
288 macro(alignof(OpConstruct::Metadata))\
289 macro(alignof(OpConstructVarargs::Metadata))\
290 macro(alignof(OpResolveScope::Metadata))\
291 macro(alignof(OpGetFromScope::Metadata))\
292 macro(alignof(OpPutToScope::Metadata))\
293 macro(alignof(OpGetFromArguments::Metadata))\
294 macro(alignof(OpCatch::Metadata))\
295 macro(alignof(OpProfileType::Metadata))\
296 macro(alignof(OpProfileControlFlow::Metadata))\
297 macro(alignof(OpHasIndexedProperty::Metadata))\
298 macro(alignof(OpGetDirectPname::Metadata))\
299
300#define op_create_this_value_string "0"
301#define op_get_argument_value_string "1"
302#define op_to_this_value_string "2"
303#define op_new_object_value_string "3"
304#define op_new_array_value_string "4"
305#define op_new_array_with_size_value_string "5"
306#define op_new_array_buffer_value_string "6"
307#define op_add_value_string "7"
308#define op_mul_value_string "8"
309#define op_div_value_string "9"
310#define op_sub_value_string "10"
311#define op_bitand_value_string "11"
312#define op_bitor_value_string "12"
313#define op_bitxor_value_string "13"
314#define op_bitnot_value_string "14"
315#define op_to_object_value_string "15"
316#define op_to_number_value_string "16"
317#define op_negate_value_string "17"
318#define op_in_by_val_value_string "18"
319#define op_get_by_id_value_string "19"
320#define op_get_by_id_with_this_value_string "20"
321#define op_get_by_val_with_this_value_string "21"
322#define op_get_by_id_direct_value_string "22"
323#define op_try_get_by_id_value_string "23"
324#define op_put_by_id_value_string "24"
325#define op_get_by_val_value_string "25"
326#define op_put_by_val_value_string "26"
327#define op_put_by_val_direct_value_string "27"
328#define op_jneq_ptr_value_string "28"
329#define op_call_value_string "29"
330#define op_tail_call_value_string "30"
331#define op_call_eval_value_string "31"
332#define op_call_varargs_value_string "32"
333#define op_tail_call_varargs_value_string "33"
334#define op_tail_call_forward_arguments_value_string "34"
335#define op_construct_value_string "35"
336#define op_construct_varargs_value_string "36"
337#define op_resolve_scope_value_string "37"
338#define op_get_from_scope_value_string "38"
339#define op_put_to_scope_value_string "39"
340#define op_get_from_arguments_value_string "40"
341#define op_catch_value_string "41"
342#define op_profile_type_value_string "42"
343#define op_profile_control_flow_value_string "43"
344#define op_has_indexed_property_value_string "44"
345#define op_get_direct_pname_value_string "45"
346#define op_wide_value_string "46"
347#define op_enter_value_string "47"
348#define op_get_scope_value_string "48"
349#define op_create_direct_arguments_value_string "49"
350#define op_create_scoped_arguments_value_string "50"
351#define op_create_cloned_arguments_value_string "51"
352#define op_argument_count_value_string "52"
353#define op_check_tdz_value_string "53"
354#define op_new_array_with_spread_value_string "54"
355#define op_spread_value_string "55"
356#define op_new_regexp_value_string "56"
357#define op_mov_value_string "57"
358#define op_eq_value_string "58"
359#define op_neq_value_string "59"
360#define op_stricteq_value_string "60"
361#define op_nstricteq_value_string "61"
362#define op_less_value_string "62"
363#define op_lesseq_value_string "63"
364#define op_greater_value_string "64"
365#define op_greatereq_value_string "65"
366#define op_below_value_string "66"
367#define op_beloweq_value_string "67"
368#define op_mod_value_string "68"
369#define op_pow_value_string "69"
370#define op_lshift_value_string "70"
371#define op_rshift_value_string "71"
372#define op_urshift_value_string "72"
373#define op_eq_null_value_string "73"
374#define op_neq_null_value_string "74"
375#define op_to_string_value_string "75"
376#define op_unsigned_value_string "76"
377#define op_is_empty_value_string "77"
378#define op_is_undefined_value_string "78"
379#define op_is_undefined_or_null_value_string "79"
380#define op_is_boolean_value_string "80"
381#define op_is_number_value_string "81"
382#define op_is_object_value_string "82"
383#define op_is_object_or_null_value_string "83"
384#define op_is_function_value_string "84"
385#define op_inc_value_string "85"
386#define op_dec_value_string "86"
387#define op_not_value_string "87"
388#define op_identity_with_profile_value_string "88"
389#define op_overrides_has_instance_value_string "89"
390#define op_instanceof_value_string "90"
391#define op_instanceof_custom_value_string "91"
392#define op_typeof_value_string "92"
393#define op_is_cell_with_type_value_string "93"
394#define op_in_by_id_value_string "94"
395#define op_put_by_id_with_this_value_string "95"
396#define op_del_by_id_value_string "96"
397#define op_put_by_val_with_this_value_string "97"
398#define op_del_by_val_value_string "98"
399#define op_put_getter_by_id_value_string "99"
400#define op_put_setter_by_id_value_string "100"
401#define op_put_getter_setter_by_id_value_string "101"
402#define op_put_getter_by_val_value_string "102"
403#define op_put_setter_by_val_value_string "103"
404#define op_define_data_property_value_string "104"
405#define op_define_accessor_property_value_string "105"
406#define op_jmp_value_string "106"
407#define op_jtrue_value_string "107"
408#define op_jfalse_value_string "108"
409#define op_jeq_null_value_string "109"
410#define op_jneq_null_value_string "110"
411#define op_jeq_value_string "111"
412#define op_jstricteq_value_string "112"
413#define op_jneq_value_string "113"
414#define op_jnstricteq_value_string "114"
415#define op_jless_value_string "115"
416#define op_jlesseq_value_string "116"
417#define op_jgreater_value_string "117"
418#define op_jgreatereq_value_string "118"
419#define op_jnless_value_string "119"
420#define op_jnlesseq_value_string "120"
421#define op_jngreater_value_string "121"
422#define op_jngreatereq_value_string "122"
423#define op_jbelow_value_string "123"
424#define op_jbeloweq_value_string "124"
425#define op_loop_hint_value_string "125"
426#define op_switch_imm_value_string "126"
427#define op_switch_char_value_string "127"
428#define op_switch_string_value_string "128"
429#define op_new_func_value_string "129"
430#define op_new_func_exp_value_string "130"
431#define op_new_generator_func_value_string "131"
432#define op_new_generator_func_exp_value_string "132"
433#define op_new_async_func_value_string "133"
434#define op_new_async_func_exp_value_string "134"
435#define op_new_async_generator_func_value_string "135"
436#define op_new_async_generator_func_exp_value_string "136"
437#define op_set_function_name_value_string "137"
438#define op_ret_value_string "138"
439#define op_strcat_value_string "139"
440#define op_to_primitive_value_string "140"
441#define op_put_to_arguments_value_string "141"
442#define op_push_with_scope_value_string "142"
443#define op_create_lexical_environment_value_string "143"
444#define op_create_generator_frame_environment_value_string "144"
445#define op_get_parent_scope_value_string "145"
446#define op_throw_value_string "146"
447#define op_throw_static_error_value_string "147"
448#define op_debug_value_string "148"
449#define op_end_value_string "149"
450#define op_get_enumerable_length_value_string "150"
451#define op_has_structure_property_value_string "151"
452#define op_has_generic_property_value_string "152"
453#define op_get_property_enumerator_value_string "153"
454#define op_enumerator_structure_pname_value_string "154"
455#define op_enumerator_generic_pname_value_string "155"
456#define op_to_index_string_value_string "156"
457#define op_unreachable_value_string "157"
458#define op_create_rest_value_string "158"
459#define op_get_rest_length_value_string "159"
460#define op_yield_value_string "160"
461#define op_check_traps_value_string "161"
462#define op_log_shadow_chicken_prologue_value_string "162"
463#define op_log_shadow_chicken_tail_value_string "163"
464#define op_resolve_scope_for_hoisting_func_decl_in_eval_value_string "164"
465#define op_nop_value_string "165"
466#define op_super_sampler_begin_value_string "166"
467#define op_super_sampler_end_value_string "167"
468#define op_create_this_wide_value_string "211"
469#define op_get_argument_wide_value_string "212"
470#define op_to_this_wide_value_string "213"
471#define op_new_object_wide_value_string "214"
472#define op_new_array_wide_value_string "215"
473#define op_new_array_with_size_wide_value_string "216"
474#define op_new_array_buffer_wide_value_string "217"
475#define op_add_wide_value_string "218"
476#define op_mul_wide_value_string "219"
477#define op_div_wide_value_string "220"
478#define op_sub_wide_value_string "221"
479#define op_bitand_wide_value_string "222"
480#define op_bitor_wide_value_string "223"
481#define op_bitxor_wide_value_string "224"
482#define op_bitnot_wide_value_string "225"
483#define op_to_object_wide_value_string "226"
484#define op_to_number_wide_value_string "227"
485#define op_negate_wide_value_string "228"
486#define op_in_by_val_wide_value_string "229"
487#define op_get_by_id_wide_value_string "230"
488#define op_get_by_id_with_this_wide_value_string "231"
489#define op_get_by_val_with_this_wide_value_string "232"
490#define op_get_by_id_direct_wide_value_string "233"
491#define op_try_get_by_id_wide_value_string "234"
492#define op_put_by_id_wide_value_string "235"
493#define op_get_by_val_wide_value_string "236"
494#define op_put_by_val_wide_value_string "237"
495#define op_put_by_val_direct_wide_value_string "238"
496#define op_jneq_ptr_wide_value_string "239"
497#define op_call_wide_value_string "240"
498#define op_tail_call_wide_value_string "241"
499#define op_call_eval_wide_value_string "242"
500#define op_call_varargs_wide_value_string "243"
501#define op_tail_call_varargs_wide_value_string "244"
502#define op_tail_call_forward_arguments_wide_value_string "245"
503#define op_construct_wide_value_string "246"
504#define op_construct_varargs_wide_value_string "247"
505#define op_resolve_scope_wide_value_string "248"
506#define op_get_from_scope_wide_value_string "249"
507#define op_put_to_scope_wide_value_string "250"
508#define op_get_from_arguments_wide_value_string "251"
509#define op_catch_wide_value_string "252"
510#define op_profile_type_wide_value_string "253"
511#define op_profile_control_flow_wide_value_string "254"
512#define op_has_indexed_property_wide_value_string "255"
513#define op_get_direct_pname_wide_value_string "256"
514#define op_wide_wide_value_string "257"
515#define op_enter_wide_value_string "258"
516#define op_get_scope_wide_value_string "259"
517#define op_create_direct_arguments_wide_value_string "260"
518#define op_create_scoped_arguments_wide_value_string "261"
519#define op_create_cloned_arguments_wide_value_string "262"
520#define op_argument_count_wide_value_string "263"
521#define op_check_tdz_wide_value_string "264"
522#define op_new_array_with_spread_wide_value_string "265"
523#define op_spread_wide_value_string "266"
524#define op_new_regexp_wide_value_string "267"
525#define op_mov_wide_value_string "268"
526#define op_eq_wide_value_string "269"
527#define op_neq_wide_value_string "270"
528#define op_stricteq_wide_value_string "271"
529#define op_nstricteq_wide_value_string "272"
530#define op_less_wide_value_string "273"
531#define op_lesseq_wide_value_string "274"
532#define op_greater_wide_value_string "275"
533#define op_greatereq_wide_value_string "276"
534#define op_below_wide_value_string "277"
535#define op_beloweq_wide_value_string "278"
536#define op_mod_wide_value_string "279"
537#define op_pow_wide_value_string "280"
538#define op_lshift_wide_value_string "281"
539#define op_rshift_wide_value_string "282"
540#define op_urshift_wide_value_string "283"
541#define op_eq_null_wide_value_string "284"
542#define op_neq_null_wide_value_string "285"
543#define op_to_string_wide_value_string "286"
544#define op_unsigned_wide_value_string "287"
545#define op_is_empty_wide_value_string "288"
546#define op_is_undefined_wide_value_string "289"
547#define op_is_undefined_or_null_wide_value_string "290"
548#define op_is_boolean_wide_value_string "291"
549#define op_is_number_wide_value_string "292"
550#define op_is_object_wide_value_string "293"
551#define op_is_object_or_null_wide_value_string "294"
552#define op_is_function_wide_value_string "295"
553#define op_inc_wide_value_string "296"
554#define op_dec_wide_value_string "297"
555#define op_not_wide_value_string "298"
556#define op_identity_with_profile_wide_value_string "299"
557#define op_overrides_has_instance_wide_value_string "300"
558#define op_instanceof_wide_value_string "301"
559#define op_instanceof_custom_wide_value_string "302"
560#define op_typeof_wide_value_string "303"
561#define op_is_cell_with_type_wide_value_string "304"
562#define op_in_by_id_wide_value_string "305"
563#define op_put_by_id_with_this_wide_value_string "306"
564#define op_del_by_id_wide_value_string "307"
565#define op_put_by_val_with_this_wide_value_string "308"
566#define op_del_by_val_wide_value_string "309"
567#define op_put_getter_by_id_wide_value_string "310"
568#define op_put_setter_by_id_wide_value_string "311"
569#define op_put_getter_setter_by_id_wide_value_string "312"
570#define op_put_getter_by_val_wide_value_string "313"
571#define op_put_setter_by_val_wide_value_string "314"
572#define op_define_data_property_wide_value_string "315"
573#define op_define_accessor_property_wide_value_string "316"
574#define op_jmp_wide_value_string "317"
575#define op_jtrue_wide_value_string "318"
576#define op_jfalse_wide_value_string "319"
577#define op_jeq_null_wide_value_string "320"
578#define op_jneq_null_wide_value_string "321"
579#define op_jeq_wide_value_string "322"
580#define op_jstricteq_wide_value_string "323"
581#define op_jneq_wide_value_string "324"
582#define op_jnstricteq_wide_value_string "325"
583#define op_jless_wide_value_string "326"
584#define op_jlesseq_wide_value_string "327"
585#define op_jgreater_wide_value_string "328"
586#define op_jgreatereq_wide_value_string "329"
587#define op_jnless_wide_value_string "330"
588#define op_jnlesseq_wide_value_string "331"
589#define op_jngreater_wide_value_string "332"
590#define op_jngreatereq_wide_value_string "333"
591#define op_jbelow_wide_value_string "334"
592#define op_jbeloweq_wide_value_string "335"
593#define op_loop_hint_wide_value_string "336"
594#define op_switch_imm_wide_value_string "337"
595#define op_switch_char_wide_value_string "338"
596#define op_switch_string_wide_value_string "339"
597#define op_new_func_wide_value_string "340"
598#define op_new_func_exp_wide_value_string "341"
599#define op_new_generator_func_wide_value_string "342"
600#define op_new_generator_func_exp_wide_value_string "343"
601#define op_new_async_func_wide_value_string "344"
602#define op_new_async_func_exp_wide_value_string "345"
603#define op_new_async_generator_func_wide_value_string "346"
604#define op_new_async_generator_func_exp_wide_value_string "347"
605#define op_set_function_name_wide_value_string "348"
606#define op_ret_wide_value_string "349"
607#define op_strcat_wide_value_string "350"
608#define op_to_primitive_wide_value_string "351"
609#define op_put_to_arguments_wide_value_string "352"
610#define op_push_with_scope_wide_value_string "353"
611#define op_create_lexical_environment_wide_value_string "354"
612#define op_create_generator_frame_environment_wide_value_string "355"
613#define op_get_parent_scope_wide_value_string "356"
614#define op_throw_wide_value_string "357"
615#define op_throw_static_error_wide_value_string "358"
616#define op_debug_wide_value_string "359"
617#define op_end_wide_value_string "360"
618#define op_get_enumerable_length_wide_value_string "361"
619#define op_has_structure_property_wide_value_string "362"
620#define op_has_generic_property_wide_value_string "363"
621#define op_get_property_enumerator_wide_value_string "364"
622#define op_enumerator_structure_pname_wide_value_string "365"
623#define op_enumerator_generic_pname_wide_value_string "366"
624#define op_to_index_string_wide_value_string "367"
625#define op_unreachable_wide_value_string "368"
626#define op_create_rest_wide_value_string "369"
627#define op_get_rest_length_wide_value_string "370"
628#define op_yield_wide_value_string "371"
629#define op_check_traps_wide_value_string "372"
630#define op_log_shadow_chicken_prologue_wide_value_string "373"
631#define op_log_shadow_chicken_tail_wide_value_string "374"
632#define op_resolve_scope_for_hoisting_func_decl_in_eval_wide_value_string "375"
633#define op_nop_wide_value_string "376"
634#define op_super_sampler_begin_wide_value_string "377"
635#define op_super_sampler_end_wide_value_string "378"
636
637#define FOR_EACH_CLOOP_BYTECODE_HELPER_ID(macro) \
638 macro(llint_entry, 1) \
639 macro(getHostCallReturnValue, 1) \
640 macro(llint_return_to_host, 1) \
641 macro(llint_vm_entry_to_javascript, 1) \
642 macro(llint_vm_entry_to_native, 1) \
643 macro(llint_cloop_did_return_from_js_1, 1) \
644 macro(llint_cloop_did_return_from_js_2, 1) \
645 macro(llint_cloop_did_return_from_js_3, 1) \
646 macro(llint_cloop_did_return_from_js_4, 1) \
647 macro(llint_cloop_did_return_from_js_5, 1) \
648 macro(llint_cloop_did_return_from_js_6, 1) \
649 macro(llint_cloop_did_return_from_js_7, 1) \
650 macro(llint_cloop_did_return_from_js_8, 1) \
651 macro(llint_cloop_did_return_from_js_9, 1) \
652 macro(llint_cloop_did_return_from_js_10, 1) \
653 macro(llint_cloop_did_return_from_js_11, 1) \
654 macro(llint_cloop_did_return_from_js_12, 1) \
655 macro(llint_cloop_did_return_from_js_13, 1) \
656 macro(llint_cloop_did_return_from_js_14, 1) \
657 macro(llint_cloop_did_return_from_js_15, 1) \
658 macro(llint_cloop_did_return_from_js_16, 1) \
659 macro(llint_cloop_did_return_from_js_17, 1) \
660 macro(llint_cloop_did_return_from_js_18, 1) \
661 macro(llint_cloop_did_return_from_js_19, 1) \
662 macro(llint_cloop_did_return_from_js_20, 1) \
663 macro(llint_cloop_did_return_from_js_21, 1) \
664 macro(llint_cloop_did_return_from_js_22, 1) \
665 macro(llint_cloop_did_return_from_js_23, 1) \
666
667#define NUMBER_OF_CLOOP_BYTECODE_HELPER_IDS 28
668
669#define FOR_EACH_BYTECODE_HELPER_ID(macro) \
670 macro(llint_program_prologue, 1) \
671 macro(llint_eval_prologue, 1) \
672 macro(llint_module_program_prologue, 1) \
673 macro(llint_function_for_call_prologue, 1) \
674 macro(llint_function_for_construct_prologue, 1) \
675 macro(llint_function_for_call_arity_check, 1) \
676 macro(llint_function_for_construct_arity_check, 1) \
677 macro(llint_generic_return_point, 1) \
678 macro(llint_throw_from_slow_path_trampoline, 1) \
679 macro(llint_throw_during_call_trampoline, 1) \
680 macro(llint_native_call_trampoline, 1) \
681 macro(llint_native_construct_trampoline, 1) \
682 macro(llint_internal_function_call_trampoline, 1) \
683 macro(llint_internal_function_construct_trampoline, 1) \
684 macro(handleUncaughtException, 1) \
685
686#define NUMBER_OF_BYTECODE_HELPER_IDS 15
687
688#define FOR_EACH_BYTECODE_STRUCT(macro) \
689 macro(OpCreateThis) \
690 macro(OpGetArgument) \
691 macro(OpToThis) \
692 macro(OpNewObject) \
693 macro(OpNewArray) \
694 macro(OpNewArrayWithSize) \
695 macro(OpNewArrayBuffer) \
696 macro(OpAdd) \
697 macro(OpMul) \
698 macro(OpDiv) \
699 macro(OpSub) \
700 macro(OpBitand) \
701 macro(OpBitor) \
702 macro(OpBitxor) \
703 macro(OpBitnot) \
704 macro(OpToObject) \
705 macro(OpToNumber) \
706 macro(OpNegate) \
707 macro(OpInByVal) \
708 macro(OpGetById) \
709 macro(OpGetByIdWithThis) \
710 macro(OpGetByValWithThis) \
711 macro(OpGetByIdDirect) \
712 macro(OpTryGetById) \
713 macro(OpPutById) \
714 macro(OpGetByVal) \
715 macro(OpPutByVal) \
716 macro(OpPutByValDirect) \
717 macro(OpJneqPtr) \
718 macro(OpCall) \
719 macro(OpTailCall) \
720 macro(OpCallEval) \
721 macro(OpCallVarargs) \
722 macro(OpTailCallVarargs) \
723 macro(OpTailCallForwardArguments) \
724 macro(OpConstruct) \
725 macro(OpConstructVarargs) \
726 macro(OpResolveScope) \
727 macro(OpGetFromScope) \
728 macro(OpPutToScope) \
729 macro(OpGetFromArguments) \
730 macro(OpCatch) \
731 macro(OpProfileType) \
732 macro(OpProfileControlFlow) \
733 macro(OpHasIndexedProperty) \
734 macro(OpGetDirectPname) \
735 macro(OpWide) \
736 macro(OpEnter) \
737 macro(OpGetScope) \
738 macro(OpCreateDirectArguments) \
739 macro(OpCreateScopedArguments) \
740 macro(OpCreateClonedArguments) \
741 macro(OpArgumentCount) \
742 macro(OpCheckTdz) \
743 macro(OpNewArrayWithSpread) \
744 macro(OpSpread) \
745 macro(OpNewRegexp) \
746 macro(OpMov) \
747 macro(OpEq) \
748 macro(OpNeq) \
749 macro(OpStricteq) \
750 macro(OpNstricteq) \
751 macro(OpLess) \
752 macro(OpLesseq) \
753 macro(OpGreater) \
754 macro(OpGreatereq) \
755 macro(OpBelow) \
756 macro(OpBeloweq) \
757 macro(OpMod) \
758 macro(OpPow) \
759 macro(OpLshift) \
760 macro(OpRshift) \
761 macro(OpUrshift) \
762 macro(OpEqNull) \
763 macro(OpNeqNull) \
764 macro(OpToString) \
765 macro(OpUnsigned) \
766 macro(OpIsEmpty) \
767 macro(OpIsUndefined) \
768 macro(OpIsUndefinedOrNull) \
769 macro(OpIsBoolean) \
770 macro(OpIsNumber) \
771 macro(OpIsObject) \
772 macro(OpIsObjectOrNull) \
773 macro(OpIsFunction) \
774 macro(OpInc) \
775 macro(OpDec) \
776 macro(OpNot) \
777 macro(OpIdentityWithProfile) \
778 macro(OpOverridesHasInstance) \
779 macro(OpInstanceof) \
780 macro(OpInstanceofCustom) \
781 macro(OpTypeof) \
782 macro(OpIsCellWithType) \
783 macro(OpInById) \
784 macro(OpPutByIdWithThis) \
785 macro(OpDelById) \
786 macro(OpPutByValWithThis) \
787 macro(OpDelByVal) \
788 macro(OpPutGetterById) \
789 macro(OpPutSetterById) \
790 macro(OpPutGetterSetterById) \
791 macro(OpPutGetterByVal) \
792 macro(OpPutSetterByVal) \
793 macro(OpDefineDataProperty) \
794 macro(OpDefineAccessorProperty) \
795 macro(OpJmp) \
796 macro(OpJtrue) \
797 macro(OpJfalse) \
798 macro(OpJeqNull) \
799 macro(OpJneqNull) \
800 macro(OpJeq) \
801 macro(OpJstricteq) \
802 macro(OpJneq) \
803 macro(OpJnstricteq) \
804 macro(OpJless) \
805 macro(OpJlesseq) \
806 macro(OpJgreater) \
807 macro(OpJgreatereq) \
808 macro(OpJnless) \
809 macro(OpJnlesseq) \
810 macro(OpJngreater) \
811 macro(OpJngreatereq) \
812 macro(OpJbelow) \
813 macro(OpJbeloweq) \
814 macro(OpLoopHint) \
815 macro(OpSwitchImm) \
816 macro(OpSwitchChar) \
817 macro(OpSwitchString) \
818 macro(OpNewFunc) \
819 macro(OpNewFuncExp) \
820 macro(OpNewGeneratorFunc) \
821 macro(OpNewGeneratorFuncExp) \
822 macro(OpNewAsyncFunc) \
823 macro(OpNewAsyncFuncExp) \
824 macro(OpNewAsyncGeneratorFunc) \
825 macro(OpNewAsyncGeneratorFuncExp) \
826 macro(OpSetFunctionName) \
827 macro(OpRet) \
828 macro(OpStrcat) \
829 macro(OpToPrimitive) \
830 macro(OpPutToArguments) \
831 macro(OpPushWithScope) \
832 macro(OpCreateLexicalEnvironment) \
833 macro(OpCreateGeneratorFrameEnvironment) \
834 macro(OpGetParentScope) \
835 macro(OpThrow) \
836 macro(OpThrowStaticError) \
837 macro(OpDebug) \
838 macro(OpEnd) \
839 macro(OpGetEnumerableLength) \
840 macro(OpHasStructureProperty) \
841 macro(OpHasGenericProperty) \
842 macro(OpGetPropertyEnumerator) \
843 macro(OpEnumeratorStructurePname) \
844 macro(OpEnumeratorGenericPname) \
845 macro(OpToIndexString) \
846 macro(OpUnreachable) \
847 macro(OpCreateRest) \
848 macro(OpGetRestLength) \
849 macro(OpYield) \
850 macro(OpCheckTraps) \
851 macro(OpLogShadowChickenPrologue) \
852 macro(OpLogShadowChickenTail) \
853 macro(OpResolveScopeForHoistingFuncDeclInEval) \
854 macro(OpNop) \
855 macro(OpSuperSamplerBegin) \
856 macro(OpSuperSamplerEnd) \
857
858