luaur_code_gen/functions/
jump_if_truthy.rs1use crate::enums::condition_x_64::ConditionX64;
2use crate::functions::jump_if_tag_is::jump_if_tag_is;
3use crate::functions::jump_if_tag_is_not::jump_if_tag_is_not;
4use crate::functions::luau_reg_value_int::luau_reg_value_int;
5use crate::records::assembly_builder_x_64::AssemblyBuilderX64;
6use crate::records::label::Label;
7use luaur_vm::enums::lua_type::lua_Type;
8
9pub fn jump_if_truthy(
10 build: &mut AssemblyBuilderX64,
11 ri: i32,
12 target: &mut Label,
13 fallthrough: &mut Label,
14) {
15 jump_if_tag_is(build, ri, lua_Type::LUA_TNIL, fallthrough); jump_if_tag_is_not(build, ri, lua_Type::LUA_TBOOLEAN, target); build.cmp(luau_reg_value_int(ri), 0.into());
19 build.jcc(ConditionX64::NotEqual, target); }