Re: Debian #943425: [s390x] setjmp/longjmp do not save/restore all registers in use
Dixi quod…
>Jessica Clarke brought out docs saying f8‥f15 must be saved, the
>other FPU registers not:
This needs to be fixed in klibc.
>>• klibc does not really support the FPU anyway
>
>… GCC chooses to allocate an FPU register for a pointer value.
This is a curiosity.
>>• the half of v10 that equals f10 just HAPPENS to be saved by
>> glibc, but what if the upper half, that is outside of the FPU,
>> is used?
>
>The question here is, does GCC only use the halves of the half
>of the vector registers that match the FPU registers?
04:41⎜«jrtc27:#debian-x32» hephaistor: re s390x vector registers, reading the gcc and llvm sources they're
⎜ all call-clobbered by default, only the float parts are call-saved
04:41⎜«jrtc27:#debian-x32» so that's why setjmp/longjmp don't need to save/restore them
04:42⎜«jrtc27:#debian-x32» there *is* a vector calling convention, but it's not the default for the ABI,
⎜ it's opt-in, and setjmp/longjmp won't be annotated as such
So we indeed need to only save the registers glibc does.
>@klibc list: as indicated earlier, I can provide a patch if needed
>(though it should be obvious).
bye,
//mirabilos
--
[00:02] <Vutral> gecko: benutzt du emacs ?
[00:03] <gecko> nö [00:03] <gecko> nur n normalen mac
[00:04] <Vutral> argl [00:04] <Vutral> ne den editor
-- Vutral und gecko2 in #deutsch (NB: Editor? Betriebssystem.)
Reply to: