BytecodeList.json   [plain text]


[
    {
        "section" : "Bytecodes", "emitInHFile" : true, "emitInStructsFile" : true, "emitInASMFile" : true,
        "emitOpcodeIDStringValuesInHFile" : true, "macroNameComponent" : "BYTECODE", "asmPrefix" : "llint_",
        "bytecodes" : [
            { "name" : "op_enter", "length" : 1 },
            { "name" : "op_get_scope", "length" : 2 },
            { "name" : "op_create_direct_arguments", "length" : 2 },
            { "name" : "op_create_scoped_arguments", "length" : 3 },
            { "name" : "op_create_cloned_arguments", "length" : 2 },
            { "name" : "op_create_this", "offsets" :
                       [{"dst" : "int"},
                        {"callee" : "int"},
                        {"inlineCapacity" : "int"},
                        {"cachedCallee" : "WriteBarrier<JSCell>"}]},
            { "name" : "op_get_argument", "length" : 4 },
            { "name" : "op_argument_count", "length" : 2 },
            { "name" : "op_to_this", "length" : 5 },
            { "name" : "op_check_tdz", "length" : 2 },
            { "name" : "op_new_object", "length" : 4 },
            { "name" : "op_new_array", "length" : 5 },
            { "name" : "op_new_array_with_size", "length" : 4 },
            { "name" : "op_new_array_buffer", "offsets" :
                       [{"dst" : "int"},
                        {"immutableButterfly" : "int"},
                        {"profile" : "ArrayAllocationProfile*"}]},
            { "name" : "op_new_array_with_spread", "length" : 5 },
            { "name" : "op_spread", "length" : 3 },
            { "name" : "op_new_regexp", "length" : 3 },
            { "name" : "op_mov", "length" : 3 },
            { "name" : "op_not", "length" : 3 },
            { "name" : "op_eq", "length" : 4 },
            { "name" : "op_eq_null", "length" : 3 },
            { "name" : "op_neq", "length" : 4 },
            { "name" : "op_neq_null", "length" : 3 },
            { "name" : "op_stricteq", "length" : 4 },
            { "name" : "op_nstricteq", "length" : 4 },
            { "name" : "op_less", "length" : 4 },
            { "name" : "op_lesseq", "length" : 4 },
            { "name" : "op_greater", "length" : 4 },
            { "name" : "op_greatereq", "length" : 4 },
            { "name" : "op_below", "length" : 4 },
            { "name" : "op_beloweq", "length" : 4 },
            { "name" : "op_inc", "length" : 2 },
            { "name" : "op_dec", "length" : 2 },
            { "name" : "op_to_number", "length" : 4 },
            { "name" : "op_to_string", "length" : 3 },
            { "name" : "op_to_object", "length" : 5 },
            { "name" : "op_negate", "length" : 4 },
            { "name" : "op_add", "length" : 5 },
            { "name" : "op_mul", "length" : 5 },
            { "name" : "op_div", "length" : 5 },
            { "name" : "op_mod", "length" : 4 },
            { "name" : "op_sub", "length" : 5 },
            { "name" : "op_pow", "length" : 4 },
            { "name" : "op_lshift", "length" : 4 },
            { "name" : "op_rshift", "length" : 4 },
            { "name" : "op_urshift", "length" : 4 },
            { "name" : "op_unsigned", "length" : 3 },
            { "name" : "op_bitand", "length" : 5 },
            { "name" : "op_bitxor", "length" : 5 },
            { "name" : "op_bitor", "length" : 5 },
            { "name" : "op_identity_with_profile", "length" : 4 },
            { "name" : "op_overrides_has_instance", "offsets" :
                       [{"dst" : "int"},
                        {"constructor" : "int"},
                        {"hasInstanceValue" : "int"}] },
            { "name" : "op_instanceof", "offsets" :
                       [{"dst" : "int"},
                        {"value" : "int"},
                        {"prototype" : "int"}] },
            { "name" : "op_instanceof_custom", "offsets" :
                       [{"dst" : "int"},
                        {"value" : "int"},
                        {"constructor" : "int"},
                        {"hasInstanceValue" : "int"}] },
            { "name" : "op_typeof", "length" : 3 },
            { "name" : "op_is_empty", "length" : 3 },
            { "name" : "op_is_undefined", "length" : 3 },
            { "name" : "op_is_boolean", "length" : 3 },
            { "name" : "op_is_number", "length" : 3 },
            { "name" : "op_is_object", "length" : 3 },
            { "name" : "op_is_object_or_null", "length" : 3 },
            { "name" : "op_is_function", "length" : 3 },
            { "name" : "op_is_cell_with_type", "length" : 4 },
            { "name" : "op_in_by_val", "length" : 5 },
            { "name" : "op_in_by_id", "length" : 4 },
            { "name" : "op_get_array_length", "length" : 9 },
            { "name" : "op_get_by_id", "length" : 9  },
            { "name" : "op_get_by_id_proto_load", "length" : 9 },
            { "name" : "op_get_by_id_unset", "length" : 9 },
            { "name" : "op_get_by_id_with_this", "length" : 6 },
            { "name" : "op_get_by_val_with_this", "length" : 6 },
            { "name" : "op_get_by_id_direct", "length" : 7  },
            { "name" : "op_try_get_by_id", "length" : 5 },
            { "name" : "op_put_by_id", "length" : 9 },
            { "name" : "op_put_by_id_with_this", "length" : 5 },
            { "name" : "op_del_by_id", "length" : 4 },
            { "name" : "op_get_by_val", "length" : 6 },
            { "name" : "op_put_by_val", "length" : 5 },
            { "name" : "op_put_by_val_with_this", "length" : 5 },
            { "name" : "op_put_by_val_direct", "length" : 5 },
            { "name" : "op_del_by_val", "length" : 4 },
            { "name" : "op_put_getter_by_id", "length" : 5 },
            { "name" : "op_put_setter_by_id", "length" : 5 },
            { "name" : "op_put_getter_setter_by_id", "length" : 6 },
            { "name" : "op_put_getter_by_val", "length" : 5 },
            { "name" : "op_put_setter_by_val", "length" : 5 },
            { "name" : "op_define_data_property", "length" : 5 },
            { "name" : "op_define_accessor_property", "length" : 6 },
            { "name" : "op_jmp", "length" : 2 },
            { "name" : "op_jtrue", "length" : 3 },
            { "name" : "op_jfalse", "length" : 3 },
            { "name" : "op_jeq_null", "length" : 3 },
            { "name" : "op_jneq_null", "length" : 3 },
            { "name" : "op_jneq_ptr", "length" : 5 },
            { "name" : "op_jeq", "length" : 4 },
            { "name" : "op_jstricteq", "length" : 4 },
            { "name" : "op_jneq", "length" : 4 },
            { "name" : "op_jnstricteq", "length" : 4 },
            { "name" : "op_jless", "length" : 4 },
            { "name" : "op_jlesseq", "length" : 4 },
            { "name" : "op_jgreater", "length" : 4 },
            { "name" : "op_jgreatereq", "length" : 4 },
            { "name" : "op_jnless", "length" : 4 },
            { "name" : "op_jnlesseq", "length" : 4 },
            { "name" : "op_jngreater", "length" : 4 },
            { "name" : "op_jngreatereq", "length" : 4 },
            { "name" : "op_jbelow", "length" : 4 },
            { "name" : "op_jbeloweq", "length" : 4 },
            { "name" : "op_loop_hint", "length" : 1 },
            { "name" : "op_switch_imm", "length" : 4 },
            { "name" : "op_switch_char", "length" : 4 },
            { "name" : "op_switch_string", "length" : 4 },
            { "name" : "op_new_func", "length" : 4 },
            { "name" : "op_new_func_exp", "length" : 4 },
            { "name" : "op_new_generator_func", "length" : 4 },
            { "name" : "op_new_generator_func_exp", "length" : 4 },
            { "name" : "op_new_async_func", "length" : 4 },
            { "name" : "op_new_async_func_exp", "length" : 4 },
            { "name" : "op_new_async_generator_func", "length" : 4 },
            { "name" : "op_new_async_generator_func_exp", "length" : 4 },
            { "name" : "op_set_function_name", "length" : 3 },
            { "name" : "op_call", "length" : 9 },
            { "name" : "op_tail_call", "length" : 9 },
            { "name" : "op_call_eval", "length" : 9 },
            { "name" : "op_call_varargs", "length" : 9 },
            { "name" : "op_tail_call_varargs", "length" : 9 },
            { "name" : "op_tail_call_forward_arguments", "length" : 9 },
            { "name" : "op_ret", "length" : 2 },
            { "name" : "op_construct", "length" : 9 },
            { "name" : "op_construct_varargs", "length" : 9 },
            { "name" : "op_strcat", "length" : 4 },
            { "name" : "op_to_primitive", "length" : 3 },
            { "name" : "op_resolve_scope", "length" : 7 },
            { "name" : "op_get_from_scope", "length" : 8 },
            { "name" : "op_put_to_scope", "length" : 7 },
            { "name" : "op_get_from_arguments", "length" : 5 },
            { "name" : "op_put_to_arguments", "length" : 4 },
            { "name" : "op_push_with_scope", "length" : 4 },
            { "name" : "op_create_lexical_environment", "length" : 5 },
            { "name" : "op_get_parent_scope", "length" : 3 },
            { "name" : "op_catch", "length" : 4 },
            { "name" : "op_throw", "length" : 2 },
            { "name" : "op_throw_static_error", "length" : 3 },
            { "name" : "op_debug", "length" : 3 },
            { "name" : "op_end", "length" : 2 },
            { "name" : "op_profile_type", "length" : 6 },
            { "name" : "op_profile_control_flow", "length" : 2 },
            { "name" : "op_get_enumerable_length", "length" : 3 },
            { "name" : "op_has_indexed_property", "length" : 5 },
            { "name" : "op_has_structure_property", "length" : 5 },
            { "name" : "op_has_generic_property", "length" : 4 },
            { "name" : "op_get_direct_pname", "length" : 7 },
            { "name" : "op_get_property_enumerator", "length" : 3 },
            { "name" : "op_enumerator_structure_pname", "length" : 4 },
            { "name" : "op_enumerator_generic_pname", "length" : 4 },
            { "name" : "op_to_index_string", "length" : 3 },
            { "name" : "op_unreachable", "length" : 1 },
            { "name" : "op_create_rest", "length": 4 },
            { "name" : "op_get_rest_length", "length": 3 },
            { "name" : "op_yield", "length" : 4 },
            { "name" : "op_check_traps", "length" : 1 },
            { "name" : "op_log_shadow_chicken_prologue", "length" : 2},
            { "name" : "op_log_shadow_chicken_tail", "length" : 3},
            { "name" : "op_resolve_scope_for_hoisting_func_decl_in_eval", "length" : 4 },
            { "name" : "op_nop", "length" : 1 },
            { "name" : "op_super_sampler_begin", "length" : 1 },
            { "name" : "op_super_sampler_end", "length" : 1 }
        ]
    },
    {
        "section" : "CLoopHelpers", "emitInHFile" : true, "emitInStructsFile" : false, "emitInASMFile" : false,
        "emitOpcodeIDStringValuesInHFile" : false, "defaultLength" : 1, "macroNameComponent" : "CLOOP_BYTECODE_HELPER",
        "bytecodes" : [
            { "name" : "llint_entry" },
            { "name" : "getHostCallReturnValue" },
            { "name" : "llint_return_to_host" },
            { "name" : "llint_vm_entry_to_javascript" },
            { "name" : "llint_vm_entry_to_native" },
            { "name" : "llint_cloop_did_return_from_js_1" },
            { "name" : "llint_cloop_did_return_from_js_2" },
            { "name" : "llint_cloop_did_return_from_js_3" },
            { "name" : "llint_cloop_did_return_from_js_4" },
            { "name" : "llint_cloop_did_return_from_js_5" },
            { "name" : "llint_cloop_did_return_from_js_6" },
            { "name" : "llint_cloop_did_return_from_js_7" },
            { "name" : "llint_cloop_did_return_from_js_8" },
            { "name" : "llint_cloop_did_return_from_js_9" },
            { "name" : "llint_cloop_did_return_from_js_10" },
            { "name" : "llint_cloop_did_return_from_js_11" },
            { "name" : "llint_cloop_did_return_from_js_12" }
        ]
    },
    {
        "section" : "NativeHelpers", "emitInHFile" : true, "emitInStructsFile" : false, "emitInASMFile" : true,
        "emitOpcodeIDStringValuesInHFile" : false, "defaultLength" : 1, "macroNameComponent" : "BYTECODE_HELPER",
        "bytecodes" : [
            { "name" : "llint_program_prologue" },
            { "name" : "llint_eval_prologue" },
            { "name" : "llint_module_program_prologue" },
            { "name" : "llint_function_for_call_prologue" },
            { "name" : "llint_function_for_construct_prologue" },
            { "name" : "llint_function_for_call_arity_check" },
            { "name" : "llint_function_for_construct_arity_check" },
            { "name" : "llint_generic_return_point" },
            { "name" : "llint_throw_from_slow_path_trampoline" },
            { "name" : "llint_throw_during_call_trampoline" },
            { "name" : "llint_native_call_trampoline" },
            { "name" : "llint_native_construct_trampoline" },
            { "name" : "llint_internal_function_call_trampoline" },
            { "name" : "llint_internal_function_construct_trampoline" },
            { "name" : "handleUncaughtException" }
        ]
    }
]