Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.debian.kernel > #71222

Bug#943425: Debian #943425: [s390x] setjmp/longjmp do not save/restore all registers in use

From Thorsten Glaser <tg@mirbsd.de>
Newsgroups linux.debian.bugs.dist, linux.debian.ports.s390, linux.debian.kernel
Subject Bug#943425: Debian #943425: [s390x] setjmp/longjmp do not save/restore all registers in use
Date 2021-05-05 05:00 +0200
Message-ID <CbfVv-21l-1@gated-at.bofh.it> (permalink)
References (1 earlier) <yUOWe-6BM-7@gated-at.bofh.it> <CaNPA-1R6-7@gated-at.bofh.it> <CaQaJ-3m8-1@gated-at.bofh.it> <yUOWe-6BM-7@gated-at.bofh.it> <CaQaJ-3m8-1@gated-at.bofh.it>
Organization linux.* mail to news gateway

Cross-posted to 3 groups.

Show all headers | View raw


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.)

Back to linux.debian.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Bug#943425: klibc: [s390x] SIGSEGV in mksh testcase funsub-2 Thorsten Glaser <tg@debian.org> - 2021-05-03 22:20 +0200
  Bug#943425: Use of $v10 register (was Re: klibc: [s390x] SIGSEGV in mksh testcase funsub-2) Thorsten Glaser <tg@debian.org> - 2021-05-03 23:00 +0200
    Processed: Use of $v10 register (was Re: klibc: [s390x] SIGSEGV  in mksh testcase funsub-2) "Debian Bug Tracking System" <owner@bugs.debian.org> - 2021-05-03 23:00 +0200
    Bug#943425: Debian #943425: [s390x] setjmp/longjmp do not save/restore all registers in use Thorsten Glaser <tg@mirbsd.de> - 2021-05-05 05:00 +0200
      Bug#943425: [klibc] Bug#943425: Debian #943425: klibc: [s390x] setjmp/longjmp do not save/restore all registers in use Thorsten Glaser <tg@mirbsd.de> - 2021-05-06 00:30 +0200

csiph-web