Skip to main content

luaur_code_gen/functions/
mod.rs

1pub mod add_use;
2pub mod advance_location;
3pub mod after_inst_for_n_loop;
4pub mod align_position;
5pub mod alloc_spill;
6pub mod allocate_pages_impl_code_allocator;
7pub mod allocate_pages_impl_code_allocator_alt_b;
8pub mod analyze_bytecode_types;
9pub mod any_argument_match;
10pub mod append;
11pub mod append_block_set;
12pub mod append_blocks;
13pub mod append_label_regset;
14pub mod append_register_set;
15pub mod append_vm_constant;
16pub mod apply_builtin_call;
17pub mod apply_substitutions_ir_utils;
18pub mod apply_substitutions_ir_utils_alt_b;
19pub mod assemble_helpers_code_gen_a_64;
20pub mod assemble_helpers_code_gen_x_64;
21pub mod before_inst_for_n_prep;
22pub mod bind_native_protos;
23pub mod build_argument_type_checks;
24pub mod build_bytecode_blocks;
25pub mod build_entry_function_code_gen_a_64;
26pub mod build_entry_function_code_gen_x_64;
27pub mod builtin_check_double;
28pub mod builtin_check_int_64;
29pub mod builtin_load_double;
30pub mod builtin_load_int_64;
31pub mod byte_reg;
32pub mod byteswap;
33pub mod call_arith_helper;
34pub mod call_barrier_object;
35pub mod call_barrier_table_fast;
36pub mod call_epilog_c;
37pub mod call_fallback;
38pub mod call_get_table;
39pub mod call_length_helper;
40pub mod call_prolog;
41pub mod call_set_table;
42pub mod call_step_gc;
43pub mod can_invalidate_safe_env;
44pub mod cast_reg;
45pub mod check_object_barrier_conditions;
46pub mod collect_direct_block_jump_path;
47pub mod compare_ir_utils;
48pub mod compare_ir_utils_alt_b;
49pub mod compare_ir_utils_alt_c;
50pub mod compile_code_gen_context;
51pub mod compile_code_gen_context_alt_b;
52pub mod compile_code_gen_context_alt_c;
53pub mod compile_code_gen_context_alt_d;
54pub mod compile_internal;
55pub mod compute_block_live_in_reg_set;
56pub mod compute_block_ordering;
57pub mod compute_cfg_block_edges;
58pub mod compute_cfg_dominance_tree_children;
59pub mod compute_cfg_immediate_dominators;
60pub mod compute_cfg_info;
61pub mod compute_cfg_live_in_out_reg_sets;
62pub mod compute_iterated_dominance_frontier_for_defs;
63pub mod compute_native_exec_data_size;
64pub mod condition_op;
65pub mod const_prop_in_block;
66pub mod const_prop_in_block_chain;
67pub mod const_prop_in_block_chains;
68pub mod const_prop_in_inst;
69pub mod convert_number_to_index_or_jump;
70pub mod countlz_bit_utils;
71pub mod countlz_bit_utils_alt_b;
72pub mod countrz_bit_utils;
73pub mod countrz_bit_utils_alt_b;
74pub mod create_block_unwind_info;
75pub mod create_code_gen_context;
76pub mod create_code_gen_context_alt_b;
77pub mod create_code_gen_context_alt_c;
78pub mod create_code_gen_context_alt_d;
79pub mod create_linear_blocks;
80pub mod create_native_function;
81pub mod create_native_proto_exec_data_code_gen_context;
82pub mod create_native_proto_exec_data_native_proto_exec_data;
83pub mod create_shared_code_gen_context_code_gen_context;
84pub mod create_shared_code_gen_context_code_gen_context_alt_b;
85pub mod create_shared_code_gen_context_code_gen_context_alt_c;
86pub mod define_cfa_expression;
87pub mod define_cfa_expression_offset;
88pub mod define_saved_register_location;
89pub mod destroy_block_unwind_info;
90pub mod destroy_native_proto_exec_data;
91pub mod destroy_shared_code_gen_context;
92pub mod disable_native_execution_for_function;
93pub mod dom_children;
94pub mod dump;
95pub mod dump_dot;
96pub mod dword_reg;
97pub mod emit_abort;
98pub mod emit_add_offset;
99pub mod emit_builtin_emit_builtins_x_64;
100pub mod emit_builtin_ir_lowering_a_64;
101pub mod emit_builtin_math_frexp;
102pub mod emit_builtin_math_modf;
103pub mod emit_clear_native_flag_code_gen_a_64;
104pub mod emit_clear_native_flag_emit_common_x_64;
105pub mod emit_continue_call;
106pub mod emit_exit_code_gen_a_64;
107pub mod emit_exit_emit_common_x_64;
108pub mod emit_fallback_emit_common_x_64;
109pub mod emit_fallback_ir_lowering_a_64;
110pub mod emit_inst_call;
111pub mod emit_inst_for_g_loop;
112pub mod emit_inst_return;
113pub mod emit_inst_set_list;
114pub mod emit_interrupt_code_gen_a_64;
115pub mod emit_interrupt_emit_common_x_64;
116pub mod emit_invoke_libm_1_p;
117pub mod emit_return_code_gen_a_64;
118pub mod emit_return_emit_common_x_64;
119pub mod emit_update_base_emit_common_a_64;
120pub mod emit_update_base_emit_common_x_64;
121pub mod emit_update_pc_for_exit_code_gen_a_64;
122pub mod emit_update_pc_for_exit_emit_common_x_64;
123pub mod execute_dupclosure;
124pub mod execute_forgprep;
125pub mod execute_getglobal;
126pub mod execute_gettableks;
127pub mod execute_getvarargs_const;
128pub mod execute_getvarargs_mult_ret;
129pub mod execute_namecall;
130pub mod execute_prepvarargs;
131pub mod execute_setglobal;
132pub mod execute_setlist;
133pub mod execute_settableks;
134pub mod find_common_dominator;
135pub mod find_dynamic_unwind_sections;
136pub mod find_reg_type;
137pub mod flush_instruction_cache_code_allocator;
138pub mod flush_instruction_cache_code_allocator_alt_b;
139pub mod fold_constants;
140pub mod forg_loop_node_iter;
141pub mod forg_loop_non_table_fallback;
142pub mod forg_loop_non_table_fallback_deprecated;
143pub mod forg_loop_table_iter;
144pub mod forg_prep_xnext_fallback;
145pub mod format_g;
146pub mod free_pages_impl_code_allocator;
147pub mod free_pages_impl_code_allocator_alt_b;
148pub mod free_spill;
149pub mod gather_functions;
150pub mod gather_functions_helper;
151pub mod generate_vm_exit_blocks;
152pub mod get_assembly;
153pub mod get_assembly_from_ir;
154pub mod get_assembly_from_ir_impl;
155pub mod get_assembly_impl;
156pub mod get_block_kind_name;
157pub mod get_block_kind_priority;
158pub mod get_bytecode_constant_tag;
159pub mod get_bytecode_type_name;
160pub mod get_cmd_name;
161pub mod get_cmd_value_kind;
162pub mod get_code_gen_context;
163pub mod get_condition_fp;
164pub mod get_condition_int_64;
165pub mod get_condition_int_emit_common_x_64;
166pub mod get_condition_int_ir_lowering_a_64;
167pub mod get_const_value_kind;
168pub mod get_counter_data;
169pub mod get_cpu_features_a_64;
170pub mod get_cpu_features_x_64;
171pub mod get_current_x_64_abi;
172pub mod get_double_bits;
173pub mod get_float_bits;
174pub mod get_fmov_imm_fp_32;
175pub mod get_fmov_imm_fp_64;
176pub mod get_full_stack_size;
177pub mod get_import;
178pub mod get_initialized_fallback;
179pub mod get_instruction_count_code_gen_assembly;
180pub mod get_instruction_count_code_gen_lower;
181pub mod get_inverse_condition_condition_a_64;
182pub mod get_inverse_condition_condition_x_64;
183pub mod get_jump_target;
184pub mod get_jump_target_extra_live_in;
185pub mod get_live_in_out_value_count;
186pub mod get_live_in_value_count;
187pub mod get_live_out_value_count;
188pub mod get_loop_step_k;
189pub mod get_memory_size;
190pub mod get_native_context_offset;
191pub mod get_native_proto_exec_data_header_native_proto_exec_data;
192pub mod get_native_proto_exec_data_header_native_proto_exec_data_alt_b;
193pub mod get_negated_condition_condition_x_64;
194pub mod get_negated_condition_ir_utils;
195pub mod get_next_block;
196pub mod get_next_inst_use;
197pub mod get_non_vol_xmm_storage_size;
198pub mod get_op_ir_data;
199pub mod get_op_ir_data_alt_b;
200pub mod get_op_length;
201pub mod get_reg_tag;
202pub mod get_reload_address;
203pub mod get_reload_offset;
204pub mod get_scale_encoding;
205pub mod get_sorted_block_order;
206pub mod get_table_node_at_cached_slot;
207pub mod get_tag_name;
208pub mod get_xmm_register_count;
209pub mod handle_builtin_effects;
210pub mod has_op;
211pub mod has_result;
212pub mod has_side_effects;
213pub mod has_typed_parameters;
214pub mod init_functions;
215pub mod init_header_functions_code_gen_a_64;
216pub mod init_header_functions_code_gen_x_64;
217pub mod initialize_execution_callbacks;
218pub mod is_block_terminator;
219pub mod is_compatible_constant;
220pub mod is_custom_userdata_bytecode_type;
221pub mod is_direct_compare;
222pub mod is_entry_block;
223pub mod is_expected_or_unknown_bytecode_type;
224pub mod is_fast_call;
225pub mod is_gco;
226pub mod is_inst_use_for_op;
227pub mod is_jump_d;
228pub mod is_native_execution_enabled;
229pub mod is_non_terminating_jump;
230pub mod is_printable_string_constant;
231pub mod is_pseudo;
232pub mod is_skip_c;
233pub mod is_supported;
234pub mod is_unsafe_to_sink;
235pub mod is_unwind_supported;
236pub mod is_userdata_bytecode_type;
237pub mod jit_rng_random;
238pub mod jit_rng_seed;
239pub mod jump_if_falsy;
240pub mod jump_if_tag_is;
241pub mod jump_if_tag_is_not;
242pub mod jump_if_truthy;
243pub mod jump_on_number_cmp;
244pub mod kill_ir_utils;
245pub mod kill_ir_utils_alt_b;
246pub mod kill_ir_utils_alt_c;
247pub mod kill_unused_blocks;
248pub mod load_bytecode_type_info;
249pub mod load_double_or_constant;
250pub mod log_function_header;
251pub mod log_function_types;
252pub mod log_perf_function;
253pub mod log_perf_functions;
254pub mod lower_function;
255pub mod lower_impl;
256pub mod lower_ir_code_gen_lower;
257pub mod lower_ir_code_gen_lower_alt_b;
258pub mod lrotate;
259pub mod luau_codegen_compile;
260pub mod luau_codegen_create;
261pub mod luau_codegen_supported;
262pub mod luau_constant;
263pub mod luau_constant_address;
264pub mod luau_constant_tag;
265pub mod luau_constant_value;
266pub mod luau_node_key_tag;
267pub mod luau_node_key_value;
268pub mod luau_reg;
269pub mod luau_reg_address;
270pub mod luau_reg_extra;
271pub mod luau_reg_tag;
272pub mod luau_reg_value;
273pub mod luau_reg_value_int;
274pub mod luau_reg_value_int_64;
275pub mod luau_reg_value_vector;
276pub mod make_pages_executable_code_allocator;
277pub mod make_pages_executable_code_allocator_alt_b;
278pub mod make_pages_not_executable_code_allocator;
279pub mod make_pages_not_executable_code_allocator_alt_b;
280pub mod make_pages_read_only_code_allocator;
281pub mod make_pages_read_only_code_allocator_alt_b;
282pub mod mark_dead_stores_in_block;
283pub mod mark_dead_stores_in_block_chain;
284pub mod mark_dead_stores_in_block_chains;
285pub mod mark_dead_stores_in_inst;
286pub mod new_userdata;
287pub mod on_close_state;
288pub mod on_destroy_function;
289pub mod on_disable;
290pub mod on_enter;
291pub mod on_enter_disabled;
292pub mod opcode_to_host_metamethod;
293pub mod operator_add_operand_x_64;
294pub mod operator_add_operand_x_64_alt_b;
295pub mod operator_add_operand_x_64_alt_c;
296pub mod operator_add_operand_x_64_alt_d;
297pub mod operator_add_operand_x_64_alt_e;
298pub mod operator_deref;
299pub mod operator_sub;
300pub mod optimize_memory_operands_x_64_optimize_final_x_64;
301pub mod optimize_memory_operands_x_64_optimize_final_x_64_alt_b;
302pub mod pad_to_detail_column;
303pub mod predecessors;
304pub mod prepare_reg_type_info_lookups;
305pub mod produces_dirty_high_register_bits;
306pub mod propagate_tags_from_predecessors;
307pub mod qword_reg;
308pub mod read;
309pub mod read_var_int;
310pub mod refine_reg_type;
311pub mod refine_upvalue_type;
312pub mod reg_index_to_dw_reg_x_64;
313pub mod remove_block_use;
314pub mod remove_inst_use;
315pub mod remove_use;
316pub mod replace_inst_operand_ir_utils;
317pub mod replace_ir_utils;
318pub mod replace_ir_utils_alt_b;
319pub mod require_variadic_sequence;
320pub mod rrotate;
321pub mod safe_integer_constant;
322pub mod same_underlying_register;
323pub mod save_block_exit_state;
324pub mod set_luau_reg;
325pub mod set_native_execution_enabled;
326pub mod set_perf_log;
327pub mod set_userdata_remapper;
328pub mod setup_block_entry_state_optimize_const_prop;
329pub mod setup_block_entry_state_optimize_dead_store;
330pub mod substitute;
331pub mod substitute_with_truncated_uint;
332pub mod successors;
333pub mod summarize_bytecode;
334pub mod tm_to_host_metamethod;
335pub mod to_dot;
336pub mod to_dot_cfg;
337pub mod to_dot_dj_graph;
338pub mod to_string_code_gen;
339pub mod to_string_detailed_ir_dump;
340pub mod to_string_detailed_ir_dump_alt_b;
341pub mod to_string_ir_dump;
342pub mod to_string_ir_dump_alt_c;
343pub mod to_string_ir_dump_alt_d;
344pub mod to_string_ir_dump_alt_e;
345pub mod to_string_ir_dump_alt_f;
346pub mod to_string_ir_dump_alt_g;
347pub mod translate_binary_numeric_fallback_if_required;
348pub mod translate_buffer_args_and_check_bounds;
349pub mod translate_builtin;
350pub mod translate_builtin_2_number_to_number_libm;
351pub mod translate_builtin_assert;
352pub mod translate_builtin_bit_32_bnot;
353pub mod translate_builtin_bit_32_extract;
354pub mod translate_builtin_bit_32_extract_k;
355pub mod translate_builtin_bit_32_multiarg_op;
356pub mod translate_builtin_bit_32_replace;
357pub mod translate_builtin_bit_32_rotate;
358pub mod translate_builtin_bit_32_shift;
359pub mod translate_builtin_bit_32_unary;
360pub mod translate_builtin_buffer_read;
361pub mod translate_builtin_buffer_write;
362pub mod translate_builtin_int_64_binary;
363pub mod translate_builtin_int_64_bnot;
364pub mod translate_builtin_int_64_clamp;
365pub mod translate_builtin_int_64_compare;
366pub mod translate_builtin_int_64_create;
367pub mod translate_builtin_int_64_extract;
368pub mod translate_builtin_int_64_min_max;
369pub mod translate_builtin_int_64_multiarg_op;
370pub mod translate_builtin_int_64_neg;
371pub mod translate_builtin_int_64_rotate;
372pub mod translate_builtin_int_64_shift;
373pub mod translate_builtin_int_64_to_number;
374pub mod translate_builtin_int_64_unary;
375pub mod translate_builtin_math_clamp;
376pub mod translate_builtin_math_deg_rad;
377pub mod translate_builtin_math_is_nan;
378pub mod translate_builtin_math_lerp;
379pub mod translate_builtin_math_log;
380pub mod translate_builtin_math_min_max;
381pub mod translate_builtin_math_unary;
382pub mod translate_builtin_number_to_2_number;
383pub mod translate_builtin_number_to_number_libm;
384pub mod translate_builtin_string_len;
385pub mod translate_builtin_table_insert;
386pub mod translate_builtin_type;
387pub mod translate_builtin_typeof;
388pub mod translate_builtin_vector;
389pub mod translate_builtin_vector_clamp;
390pub mod translate_builtin_vector_cross;
391pub mod translate_builtin_vector_dot;
392pub mod translate_builtin_vector_lerp;
393pub mod translate_builtin_vector_magnitude;
394pub mod translate_builtin_vector_map_1;
395pub mod translate_builtin_vector_map_1_x_4;
396pub mod translate_builtin_vector_min_max;
397pub mod translate_builtin_vector_normalize;
398pub mod translate_fast_call_n;
399pub mod translate_inst_and_x;
400pub mod translate_inst_binary;
401pub mod translate_inst_binary_k;
402pub mod translate_inst_binary_numeric;
403pub mod translate_inst_binary_rk;
404pub mod translate_inst_capture;
405pub mod translate_inst_close_upvals;
406pub mod translate_inst_cmp_proto;
407pub mod translate_inst_concat;
408pub mod translate_inst_dup_table;
409pub mod translate_inst_for_g_loop_ipairs;
410pub mod translate_inst_for_g_prep_inext;
411pub mod translate_inst_for_g_prep_next;
412pub mod translate_inst_for_n_loop;
413pub mod translate_inst_for_n_prep;
414pub mod translate_inst_get_global;
415pub mod translate_inst_get_import;
416pub mod translate_inst_get_table;
417pub mod translate_inst_get_table_ks;
418pub mod translate_inst_get_table_n;
419pub mod translate_inst_get_upval;
420pub mod translate_inst_jump;
421pub mod translate_inst_jump_back;
422pub mod translate_inst_jump_if;
423pub mod translate_inst_jump_if_cond;
424pub mod translate_inst_jump_if_eq;
425pub mod translate_inst_jump_if_eq_shortcut;
426pub mod translate_inst_jump_x;
427pub mod translate_inst_jumpx_eq_b;
428pub mod translate_inst_jumpx_eq_b_shortcut;
429pub mod translate_inst_jumpx_eq_n;
430pub mod translate_inst_jumpx_eq_n_shortcut;
431pub mod translate_inst_jumpx_eq_nil;
432pub mod translate_inst_jumpx_eq_nil_shortcut;
433pub mod translate_inst_jumpx_eq_s;
434pub mod translate_inst_jumpx_eq_s_shortcut;
435pub mod translate_inst_length;
436pub mod translate_inst_load_b;
437pub mod translate_inst_load_constant;
438pub mod translate_inst_load_k;
439pub mod translate_inst_load_kx;
440pub mod translate_inst_load_n;
441pub mod translate_inst_load_nil;
442pub mod translate_inst_minus;
443pub mod translate_inst_move;
444pub mod translate_inst_namecall;
445pub mod translate_inst_new_closure;
446pub mod translate_inst_new_table;
447pub mod translate_inst_not;
448pub mod translate_inst_or_x;
449pub mod translate_inst_set_global;
450pub mod translate_inst_set_table;
451pub mod translate_inst_set_table_ks;
452pub mod translate_inst_set_table_n;
453pub mod translate_inst_set_upval;
454pub mod try_create_linear_block;
455pub mod try_find_local;
456pub mod try_find_local_name;
457pub mod try_find_upvalue_name;
458pub mod try_get_luau_tag_for_bc_type;
459pub mod try_get_next_block_in_chain;
460pub mod try_get_operand_tag;
461pub mod try_get_tag_for_typename;
462pub mod try_replace_tag_with_full_store;
463pub mod try_replace_value_with_full_store;
464pub mod try_replace_vector_value_with_full_store;
465pub mod update_last_use_for_op;
466pub mod update_last_use_locations;
467pub mod update_last_use_locations_in_block;
468pub mod update_remaining_uses;
469pub mod update_use_counts;
470pub mod userdata_remapper_wrap;
471pub mod visit_arguments;
472pub mod visit_fde_entries;
473pub mod visit_vm_reg_defs_uses_ir_visit_use_def;
474pub mod visit_vm_reg_defs_uses_ir_visit_use_def_alt_b;
475pub mod vm_const_op;
476pub mod vm_exit_op;
477pub mod vm_reg_op;
478pub mod vm_upvalue_op;
479pub mod word_reg;
480pub mod writef_32;
481pub mod writef_64;
482pub mod writeu_16;
483pub mod writeu_32;
484pub mod writeu_64;
485pub mod writeu_8;
486pub mod writeuleb_128;