tree 610965e1e1b6546ae88573ca4205b66cea88bb6d
parent 1a6b0413e047a390dc7759b2ea558bad83e7f1cf
author Schrodinger ZHU Yifan <yifanzhu@rochester.edu> 1745959045 -0400
committer GitHub <noreply@github.com> 1745959045 -0400
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsFcBAABCAAQBQJoETiFCRC1aQ7uu5UhlAAAtXEQAJlyojpil99QlNEo1P4pDMbM
 25VYLvF/gpni5uVRD8PyoCHE3hWBJzoEL4XHp8OBl9B4nCw90SnfSs1MTVW1bVfi
 +uVhmGWBKrRb24OLkKiWKVCzSBp+Ym5JJ3ww83NQAtYK9TkgwfjrR6mRjY9056Ts
 kebxGABi5kiD/wl5bwp9YMxuQwQ4YDLy+qBEsrDiRH9OYW+3zYt1Au9J7xm4ow4l
 5ElFHV66Vb94YXUojPqFkWJ0JdHaiwpHuO8EPQQw/vNtLAnB/lKUDTfgwCY7Pgdn
 EBRS7F9HbEXtPNSiF++vO/Lrsv4Os9AHL2f/ynq0Y6mAZHhNnNvCMSSN1RubuZzY
 qUztCd617zDrm7a7CpGeDt5KZQj3dGYS+jXssCEPo2rq25UBnKaHJCW0co1J87ig
 bEp1040dRUSXvbenlhzyz86ul7bhzKyhNbuDKbwhGohVq+FJqxAxy8J2rKLNu7Qp
 EcK4FVaX785PM8djdnxZ+iTxXdR0N0Ev9gJJKUYi+fJ/u9Jy0irn5w0ErRcv2pqY
 EXvTMOGr/ntvL5gzIV3UKPPcnyueJH+eynBxFFJVr+h0SML6aPUvvwCugBx1d7KH
 VOCSl3kv0B3fLOLglFcBIK7KO1dxAjZ5jDkPxPcCoYjmIEaIjkhcNOXLg0UyiFuL
 t01LZViuTHYCzbNMZzGG
 =35l3
 -----END PGP SIGNATURE-----
 

[libc] implement aarch64 sigsetjmp (#136706)

- **[libc][aarch64] implement sigsetjmp**

On top of https://github.com/llvm/llvm-project/pull/136072
See also https://github.com/llvm/llvm-project/issues/137055 for remarks
on naked attributes.

```c++
//===-- Implementation of setjmp ------------------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//

#include "src/setjmp/sigsetjmp.h"
#include "hdr/offsetof_macros.h"
#include "src/__support/common.h"
#include "src/__support/macros/config.h"
#include "src/setjmp/setjmp_impl.h"
#include "src/setjmp/sigsetjmp_epilogue.h"

namespace LIBC_NAMESPACE_DECL {
[[gnu::naked]]
LLVM_LIBC_FUNCTION(int, sigsetjmp, (sigjmp_buf, int)) {
  asm(R"(
      cbz w1, %c[setjmp]
      str x30, [x0, %c[retaddr]]
      str x19, [x0, %c[extra]]
      mov x19, x0
      bl %c[setjmp]
      mov w1, w0
      mov x0, x19
      ldr x30, [x0, %c[retaddr]]
      ldr x19, [x0, %c[extra]]
      b %c[epilogue])" ::[retaddr] "i"(offsetof(__jmp_buf, sig_retaddr)),
      [extra] "i"(offsetof(__jmp_buf, sig_extra)), [setjmp] "i"(setjmp),
      [epilogue] "i"(sigsetjmp_epilogue)
      : "x0", "x1", "x19", "x30");
}
} // namespace LIBC_NAMESPACE_DECL
```