<feed xmlns='http://www.w3.org/2005/Atom'>
<title>musl/src/setjmp, branch master</title>
<subtitle>musl - an implementation of the standard library for Linux-based systems</subtitle>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/'/>
<entry>
<title>riscv: fix setjmp assembly when compiling for ilp32f/lp64f.</title>
<updated>2025-08-17T03:17:56+00:00</updated>
<author>
<name>Alex Rønne Petersen</name>
<email>alex@alexrp.com</email>
</author>
<published>2024-06-29T02:04:34+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=0b86d60badad6a69b37fc06d18b5763fbbf47b58'/>
<id>0b86d60badad6a69b37fc06d18b5763fbbf47b58</id>
<content type='text'>
per the psABI, floating point register contents beyond the register
size of the targeted ABI variant are never call-saved, so no
hwcap-conditional logic is needed here and the assembly-time
conditions are based purely on ABI variant macros, not the targeted
ISA level.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
per the psABI, floating point register contents beyond the register
size of the targeted ABI variant are never call-saved, so no
hwcap-conditional logic is needed here and the assembly-time
conditions are based purely on ABI variant macros, not the targeted
ISA level.
</pre>
</div>
</content>
</entry>
<entry>
<title>riscv32: add setjmp/longjmp and sigreturn</title>
<updated>2024-02-29T21:36:55+00:00</updated>
<author>
<name>Stefan O'Rear</name>
<email>sorear@fastmail.com</email>
</author>
<published>2020-09-03T09:54:44+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=c34a8eedff904b7f3d8479bbec0be534e7a01fbb'/>
<id>c34a8eedff904b7f3d8479bbec0be534e7a01fbb</id>
<content type='text'>
Largely copied from riscv64 but required recalculation of offsets.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Largely copied from riscv64 but required recalculation of offsets.
</pre>
</div>
</content>
</entry>
<entry>
<title>add loongarch64 port</title>
<updated>2024-02-16T14:33:10+00:00</updated>
<author>
<name>Hongliang Wang</name>
<email>wanghongliang@loongson.cn</email>
</author>
<published>2023-09-26T01:12:01+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=522bd54edaa2fa404fd428f8ad0bcb0f0bec5639'/>
<id>522bd54edaa2fa404fd428f8ad0bcb0f0bec5639</id>
<content type='text'>
Author: Xiaojuan Zhai &lt;zhaixiaojuan@loongson.cn&gt;
Author: Meidan Li &lt;limeidan@loongson.cn&gt;
Author: Guoqi Chen &lt;chenguoqi@loongson.cn&gt;
Author: Xiaolin Zhao &lt;zhaoxiaolin@loongson.cn&gt;
Author: Fan peng &lt;fanpeng@loongson.cn&gt;
Author: Jiantao Shan &lt;shanjiantao@loongson.cn&gt;
Author: Xuhui Qiang &lt;qiangxuhui@loongson.cn&gt;
Author: Jingyun Hua &lt;huajingyun@loongson.cn&gt;
Author: Liu xue &lt;liuxue@loongson.cn&gt;
Author: Hongliang Wang &lt;wanghongliang@loongson.cn&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Author: Xiaojuan Zhai &lt;zhaixiaojuan@loongson.cn&gt;
Author: Meidan Li &lt;limeidan@loongson.cn&gt;
Author: Guoqi Chen &lt;chenguoqi@loongson.cn&gt;
Author: Xiaolin Zhao &lt;zhaoxiaolin@loongson.cn&gt;
Author: Fan peng &lt;fanpeng@loongson.cn&gt;
Author: Jiantao Shan &lt;shanjiantao@loongson.cn&gt;
Author: Xuhui Qiang &lt;qiangxuhui@loongson.cn&gt;
Author: Jingyun Hua &lt;huajingyun@loongson.cn&gt;
Author: Liu xue &lt;liuxue@loongson.cn&gt;
Author: Hongliang Wang &lt;wanghongliang@loongson.cn&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>powerpc-sf longjmp clobbering of val argument</title>
<updated>2023-02-11T15:00:31+00:00</updated>
<author>
<name>Rich Felker</name>
<email>dalias@aerifal.cx</email>
</author>
<published>2023-02-11T14:43:29+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=115149c023485a69f5bff05efd5339c0c5f77798'/>
<id>115149c023485a69f5bff05efd5339c0c5f77798</id>
<content type='text'>
the logic to check hwcap for SPE register file inadvertently clobbered
the val argument before use. switch to a different work register so
this doesn't happen.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
the logic to check hwcap for SPE register file inadvertently clobbered
the val argument before use. switch to a different work register so
this doesn't happen.
</pre>
</div>
</content>
</entry>
<entry>
<title>fix hwcap access in powerpc-sf setjmp/longjmp</title>
<updated>2021-11-29T22:41:43+00:00</updated>
<author>
<name>Rich Felker</name>
<email>dalias@aerifal.cx</email>
</author>
<published>2021-11-29T22:41:43+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=8274aaaaa1948c50c661aa32e21b3db27a5c0eab'/>
<id>8274aaaaa1948c50c661aa32e21b3db27a5c0eab</id>
<content type='text'>
commit 7be59733d71ada3a32a98622507399253f1d5e48 introduced the
hwcap-based branches to support the SPE FPU, but wrongly coded them as
bitwise tests on the computed address of __hwcap, not a value loaded
from that address. replace the add with indexed load to fix it.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 7be59733d71ada3a32a98622507399253f1d5e48 introduced the
hwcap-based branches to support the SPE FPU, but wrongly coded them as
bitwise tests on the computed address of __hwcap, not a value loaded
from that address. replace the add with indexed load to fix it.
</pre>
</div>
</content>
</entry>
<entry>
<title>add SPE FPU support to powerpc-sf</title>
<updated>2021-09-23T23:11:46+00:00</updated>
<author>
<name>Rich Felker</name>
<email>dalias@aerifal.cx</email>
</author>
<published>2021-09-23T23:11:46+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=7be59733d71ada3a32a98622507399253f1d5e48'/>
<id>7be59733d71ada3a32a98622507399253f1d5e48</id>
<content type='text'>
When the soft-float ABI for PowerPC was added in commit
5a92dd95c77cee81755f1a441ae0b71e3ae2bcdb, with Freescale cpus using
the alternative SPE FPU as the main use case, it was noted that we
could probably support hard float on them, but that it would involve
determining some difficult ABI constraints. This commit is the
completion of that work.

The Power-Arch-32 ABI supplement defines the ABI profiles, and indeed
ATR-SPE is built on ATR-SOFT-FLOAT. But setjmp/longjmp compatibility
are problematic for the same reason they're problematic on ARM, where
optional float-related parts of the register file are "call-saved if
present". This requires testing __hwcap, which is now done.

In keeping with the existing powerpc-sf subarch definition, which did
not have fenv, the fenv macros are not defined for SPE and the SPEFSCR
control register is left (and assumed to start in) the default mode.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When the soft-float ABI for PowerPC was added in commit
5a92dd95c77cee81755f1a441ae0b71e3ae2bcdb, with Freescale cpus using
the alternative SPE FPU as the main use case, it was noted that we
could probably support hard float on them, but that it would involve
determining some difficult ABI constraints. This commit is the
completion of that work.

The Power-Arch-32 ABI supplement defines the ABI profiles, and indeed
ATR-SPE is built on ATR-SOFT-FLOAT. But setjmp/longjmp compatibility
are problematic for the same reason they're problematic on ARM, where
optional float-related parts of the register file are "call-saved if
present". This requires testing __hwcap, which is now done.

In keeping with the existing powerpc-sf subarch definition, which did
not have fenv, the fenv macros are not defined for SPE and the SPEFSCR
control register is left (and assumed to start in) the default mode.
</pre>
</div>
</content>
</entry>
<entry>
<title>aarch64: fix setjmp return value</title>
<updated>2020-08-13T01:53:25+00:00</updated>
<author>
<name>Szabolcs Nagy</name>
<email>nsz@port70.net</email>
</author>
<published>2020-08-12T21:00:26+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=22359b54ab9a3ff0a854490f3eb0fcb838e785af'/>
<id>22359b54ab9a3ff0a854490f3eb0fcb838e785af</id>
<content type='text'>
longjmp should set the return value of setjmp, but 64bit
registers were used for the 0 check while the type is int.

use the code that gcc generates for return val ? val : 1;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
longjmp should set the return value of setjmp, but 64bit
registers were used for the 0 check while the type is int.

use the code that gcc generates for return val ? val : 1;
</pre>
</div>
</content>
</entry>
<entry>
<title>setjmp: optimize longjmp prologues</title>
<updated>2020-08-13T01:52:56+00:00</updated>
<author>
<name>Alexander Monakov</name>
<email>amonakov@ispras.ru</email>
</author>
<published>2020-08-12T11:34:30+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=4554f155dd23a65fcdfd39f1d5af8af55ba37694'/>
<id>4554f155dd23a65fcdfd39f1d5af8af55ba37694</id>
<content type='text'>
Use a branchless sequence that is one byte shorter on 64-bit, same size
on 32-bit. Thanks to Pete Cawley for suggesting this variant.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Use a branchless sequence that is one byte shorter on 64-bit, same size
on 32-bit. Thanks to Pete Cawley for suggesting this variant.
</pre>
</div>
</content>
</entry>
<entry>
<title>setjmp: optimize x86 longjmp epilogues</title>
<updated>2020-08-11T18:43:20+00:00</updated>
<author>
<name>Alexander Monakov</name>
<email>amonakov@ispras.ru</email>
</author>
<published>2020-08-11T18:11:16+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=59b64ff686cef2a87e9552658b2c8d2531f87176'/>
<id>59b64ff686cef2a87e9552658b2c8d2531f87176</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>setjmp: avoid useless REX-prefix on xor %eax, %eax</title>
<updated>2020-08-11T18:43:12+00:00</updated>
<author>
<name>Alexander Monakov</name>
<email>amonakov@ispras.ru</email>
</author>
<published>2020-08-11T18:11:15+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=c6a6fe4ccdba92c518dfbf337cda1bf0f697527d'/>
<id>c6a6fe4ccdba92c518dfbf337cda1bf0f697527d</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
