Both of these calling conventions will never split arguments such that half of it gets passed in a register and half of it on the stack. However slices can considered to be two entirely separate arguments from the perspective of the calling convention and thus can get partially passed in a register and partially on the stack. Checking it again, this behavior currently only seems to happen with the Rust ABI though, not with the C ABI, though there are no guarantees about this. Compiler Explorer
1 Like