va_arg: remove unused argument

This commit is contained in:
Folkert de Vries
2026-02-13 13:10:46 +01:00
parent 0169aaea31
commit 45f98b9aa7
+8 -14
View File
@@ -11,7 +11,7 @@
use rustc_target::spec::{Arch, Env, LlvmAbi, RustcAbi};
use crate::builder::Builder;
use crate::llvm::{Type, Value};
use crate::llvm::Value;
use crate::type_of::LayoutLlvmExt;
fn round_up_to_alignment<'ll>(
@@ -27,12 +27,11 @@ fn round_pointer_up_to_alignment<'ll>(
bx: &mut Builder<'_, 'll, '_>,
addr: &'ll Value,
align: Align,
ptr_ty: &'ll Type,
) -> &'ll Value {
let ptr = bx.inbounds_ptradd(addr, bx.const_i32(align.bytes() as i32 - 1));
bx.call_intrinsic(
"llvm.ptrmask",
&[ptr_ty, bx.type_i32()],
&[bx.type_ptr(), bx.type_i32()],
&[ptr, bx.const_int(bx.isize_ty, -(align.bytes() as isize) as i64)],
)
}
@@ -53,7 +52,7 @@ fn emit_direct_ptr_va_arg<'ll, 'tcx>(
let ptr = bx.load(va_list_ty, va_list_addr, ptr_align_abi);
let (addr, addr_align) = if allow_higher_align && align > slot_size {
(round_pointer_up_to_alignment(bx, ptr, align, bx.type_ptr()), align)
(round_pointer_up_to_alignment(bx, ptr, align), align)
} else {
(ptr, slot_size)
};
@@ -358,12 +357,8 @@ fn emit_powerpc_va_arg<'ll, 'tcx>(
// Round up address of argument to alignment
if layout.layout.align.abi > overflow_area_align {
overflow_area = round_pointer_up_to_alignment(
bx,
overflow_area,
layout.layout.align.abi,
bx.type_ptr(),
);
overflow_area =
round_pointer_up_to_alignment(bx, overflow_area, layout.layout.align.abi);
}
let mem_addr = overflow_area;
@@ -828,7 +823,7 @@ fn emit_hexagon_va_arg_musl<'ll, 'tcx>(
} else {
Align::from_bytes(4).unwrap()
};
let aligned_current = round_pointer_up_to_alignment(bx, current_ptr, arg_align, bx.type_ptr());
let aligned_current = round_pointer_up_to_alignment(bx, current_ptr, arg_align);
// Calculate next pointer position (following LLVM's logic)
// Arguments <= 32 bits take 4 bytes, > 32 bits take 8 bytes
@@ -850,8 +845,7 @@ fn emit_hexagon_va_arg_musl<'ll, 'tcx>(
bx.switch_to_block(from_overflow);
// Align overflow pointer using the same alignment rules
let aligned_overflow =
round_pointer_up_to_alignment(bx, overflow_ptr, arg_align, bx.type_ptr());
let aligned_overflow = round_pointer_up_to_alignment(bx, overflow_ptr, arg_align);
let overflow_value_addr = aligned_overflow;
// Update overflow pointer - use the same size calculation
@@ -891,7 +885,7 @@ fn emit_hexagon_va_arg_bare_metal<'ll, 'tcx>(
let aligned_ptr = if ty_align.bytes() > 4 {
// Ensure alignment is a power of 2
debug_assert!(ty_align.bytes().is_power_of_two(), "Alignment is not power of 2!");
round_pointer_up_to_alignment(bx, current_ptr, ty_align, bx.type_ptr())
round_pointer_up_to_alignment(bx, current_ptr, ty_align)
} else {
current_ptr
};