luaur_code_gen/methods/
assembly_builder_x_64_place_imm_32.rs1use crate::macros::codegen_assert::CODEGEN_ASSERT;
2use crate::records::assembly_builder_x_64::AssemblyBuilderX64;
3
4impl AssemblyBuilderX64 {
5 pub fn place_imm_32(&mut self, imm: i32) {
6 let pos = self.code_pos;
7 if !((pos as usize).wrapping_add(core::mem::size_of_val(&imm)) < self.code_end as usize) {
8 luaur_common::LUAU_DEBUGBREAK!();
9 }
10 unsafe {
11 core::ptr::copy_nonoverlapping(
12 imm.to_le_bytes().as_ptr(),
13 pos,
14 core::mem::size_of_val(&imm),
15 );
16 self.code_pos = pos.add(core::mem::size_of_val(&imm));
17 }
18 }
19}