@@ -19,21 +19,22 @@ namespace LIBC_NAMESPACE_DECL {
1919
2020[[gnu::naked]]
2121LLVM_LIBC_FUNCTION (int , setjmp, (__jmp_buf * buf)) {
22- asm (" mov %%rbx, %c[rbx](%%rdi)\n\t "
23- " mov %%rbp, %c[rbp](%%rdi)\n\t "
24- " mov %%r12, %c[r12](%%rdi)\n\t "
25- " mov %%r13, %c[r13](%%rdi)\n\t "
26- " mov %%r14, %c[r14](%%rdi)\n\t "
27- " mov %%r15, %c[r15](%%rdi)\n\t "
28-
29- " lea 8(%%rsp), %%rax\n\t "
30- " mov %%rax, %c[rsp](%%rdi)\n\t "
31-
32- " mov (%%rsp), %%rax\n\t "
33- " mov %%rax, %c[rip](%%rdi)\n\t "
34-
35- " xorl %%eax, %%eax\n\t "
36- " retq" ::[rbx] " i" (offsetof (__jmp_buf, rbx)),
22+ asm (R"(
23+ mov %%rbx, %c[rbx](%%rdi)
24+ mov %%rbp, %c[rbp](%%rdi)
25+ mov %%r12, %c[r12](%%rdi)
26+ mov %%r13, %c[r13](%%rdi)
27+ mov %%r14, %c[r14](%%rdi)
28+ mov %%r15, %c[r15](%%rdi)
29+
30+ lea 8(%%rsp), %%rax
31+ mov %%rax, %c[rsp](%%rdi)
32+
33+ mov (%%rsp), %%rax
34+ mov %%rax, %c[rip](%%rdi)
35+
36+ xorl %%eax, %%eax
37+ retq)" ::[rbx] " i" (offsetof (__jmp_buf, rbx)),
3738 [rbp] " i" (offsetof (__jmp_buf, rbp)), [r12] " i" (offsetof (__jmp_buf, r12)),
3839 [r13] " i" (offsetof (__jmp_buf, r13)), [r14] " i" (offsetof (__jmp_buf, r14)),
3940 [r15] " i" (offsetof (__jmp_buf, r15)), [rsp] " i" (offsetof (__jmp_buf, rsp)),
0 commit comments