luaur_code_gen/functions/align_position.rs
1use crate::functions::writeu_8::writeu_8;
2
3const K_DWARF_ALIGN: usize = core::mem::size_of::<usize>();
4const DW_CFA_NOP: u8 = 0;
5
6pub unsafe fn align_position(start: *mut u8, mut pos: *mut u8) -> *mut u8 {
7 let size = (pos as usize).wrapping_sub(start as usize);
8 let pad = ((size + K_DWARF_ALIGN - 1) & !(K_DWARF_ALIGN - 1)) - size;
9
10 for _ in 0..pad {
11 pos = writeu_8(pos, DW_CFA_NOP);
12 }
13
14 pos
15}