luaur_code_gen/methods/
assembly_builder_x_64_commit.rs1use crate::records::assembly_builder_x_64::AssemblyBuilderX64;
2
3impl AssemblyBuilderX64 {
4 pub fn commit(&mut self) {
5 self.instruction_count = self.instruction_count.wrapping_add(1);
7
8 let code_pos = self.code_pos as usize;
9 let code_end = self.code_end as usize;
10
11 if (code_end.wrapping_sub(code_pos)) < u32::from(u16::MAX) as usize {
12 self.extend();
13 }
14 }
15
16 pub fn extend(&mut self) {
17 let count = self.get_code_size();
18
19 let new_size = self.code.len().wrapping_mul(2);
20 self.code.resize(new_size, 0);
21
22 let data_ptr = self.code.as_mut_ptr();
23 self.code_pos = unsafe { data_ptr.add(count as usize) };
24 self.code_end = unsafe { data_ptr.add(self.code.len()) };
25 }
26}