Skip to main content

luaur_code_gen/functions/
translate_inst_binary_rk.rs

1use crate::functions::translate_inst_binary_numeric::translate_inst_binary_numeric;
2use crate::records::ir_builder::IrBuilder;
3use crate::type_aliases::instruction_ir_builder::Instruction;
4use luaur_common::macros::luau_insn_a::LUAU_INSN_A;
5use luaur_common::macros::luau_insn_b::LUAU_INSN_B;
6use luaur_common::macros::luau_insn_c::LUAU_INSN_C;
7use luaur_vm::type_aliases::tms::TMS;
8
9pub fn translate_inst_binary_rk(
10    build: &mut IrBuilder,
11    pc: *const Instruction,
12    pcpos: i32,
13    tm: TMS,
14) {
15    let ra = LUAU_INSN_A(unsafe { *pc }) as u8;
16    let rb = LUAU_INSN_B(unsafe { *pc }) as u8;
17    let rc = LUAU_INSN_C(unsafe { *pc }) as u8;
18
19    let opb = build.vm_const(rb as u32);
20    let opc = build.vm_reg(rc);
21
22    translate_inst_binary_numeric(build, ra as i32, -1, rc as i32, opb, opc, pcpos, tm);
23}