Re: [PATCH 2/3] vmsplice: make vmsplice a trivial wrapper for preadv2/pwritev2
Linus Torvalds <[email protected]>
| Newsgroups | org.kernel.vger.linux-api,dev.linux.lists.patches,org.kernel.vger.linux-fsdevel,org.kernel.vger.linux-kernel,org.kernel.vger.netdev,org.kvack.linux-mm |
|---|---|
| Message-ID | <CAHk-=wh1Avi8FGbWkt9k0Z-KXWB0spo5mQyowO8PB2sJ3unbkw@mail.gmail.com> |
On Thu, 4 Jun 2026 at 14:32, David Laight <[email protected]> wrote: > > I think riscv might sign extend 32bit values in 64bit registers. > x86 and arm both zero extend. That's different. x86 really doesn't *care*. If the caller zero-extends or leaves high bits set randomly, according to the x86 ABI that's perfectly fine: the callee will only care about the low 32 bits. So the high bits are simply not relevant for the ABI. The Powerpc ABI makes the the sign extension part of the calling conventions. So if a caller doesn't sign extend a 32-bit value, the result is random behavior - if you pass some function an 'int' argument, the function may end up looking at bit 63 to see if it's negative (except IBM calls it "bit 0" because they have to be different from everybody else) Linus