Merge "Add missing register preserve in x86/x86_64 longjmp."
diff --git a/libc/arch-x86/bionic/setjmp.S b/libc/arch-x86/bionic/setjmp.S
index 8a2f30c..86e6e3c 100644
--- a/libc/arch-x86/bionic/setjmp.S
+++ b/libc/arch-x86/bionic/setjmp.S
@@ -151,9 +151,11 @@
PIC_PROLOGUE
pushl %eax
+ pushl %ecx
pushl (_JB_SIGFLAG * 4)(%edx)
call PIC_PLT(__bionic_setjmp_cookie_check)
addl $4,%esp
+ popl %ecx
popl %eax
PIC_EPILOGUE
diff --git a/libc/arch-x86_64/bionic/setjmp.S b/libc/arch-x86_64/bionic/setjmp.S
index 09d61f5..56ebb07 100644
--- a/libc/arch-x86_64/bionic/setjmp.S
+++ b/libc/arch-x86_64/bionic/setjmp.S
@@ -159,8 +159,10 @@
// Check the cookie.
pushq %rax
+ pushq %r11
movq %rcx, %rdi
call PIC_PLT(__bionic_setjmp_cookie_check)
+ popq %r11
popq %rax
// Return 1 if value is 0.