Merge "Add unwind information for r7 in arm syscalls."
diff --git a/libc/arch-arm/syscalls/___clock_nanosleep.S b/libc/arch-arm/syscalls/___clock_nanosleep.S
index 31420bb..ef8f065 100644
--- a/libc/arch-arm/syscalls/___clock_nanosleep.S
+++ b/libc/arch-arm/syscalls/___clock_nanosleep.S
@@ -4,9 +4,11 @@
 
 ENTRY(___clock_nanosleep)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_clock_nanosleep
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/___close.S b/libc/arch-arm/syscalls/___close.S
index db8a230..05d3352 100644
--- a/libc/arch-arm/syscalls/___close.S
+++ b/libc/arch-arm/syscalls/___close.S
@@ -4,9 +4,11 @@
 
 ENTRY(___close)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_close
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/___faccessat.S b/libc/arch-arm/syscalls/___faccessat.S
index 1d09cf7..8bb4cf8 100644
--- a/libc/arch-arm/syscalls/___faccessat.S
+++ b/libc/arch-arm/syscalls/___faccessat.S
@@ -4,9 +4,11 @@
 
 ENTRY(___faccessat)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_faccessat
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/___fchmod.S b/libc/arch-arm/syscalls/___fchmod.S
index c6da4f8..b2312cb 100644
--- a/libc/arch-arm/syscalls/___fchmod.S
+++ b/libc/arch-arm/syscalls/___fchmod.S
@@ -4,9 +4,11 @@
 
 ENTRY(___fchmod)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_fchmod
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/___fchmodat.S b/libc/arch-arm/syscalls/___fchmodat.S
index 91bbda5..4773610 100644
--- a/libc/arch-arm/syscalls/___fchmodat.S
+++ b/libc/arch-arm/syscalls/___fchmodat.S
@@ -4,9 +4,11 @@
 
 ENTRY(___fchmodat)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_fchmodat
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/___fgetxattr.S b/libc/arch-arm/syscalls/___fgetxattr.S
index e776cd6..25be039 100644
--- a/libc/arch-arm/syscalls/___fgetxattr.S
+++ b/libc/arch-arm/syscalls/___fgetxattr.S
@@ -4,9 +4,11 @@
 
 ENTRY(___fgetxattr)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_fgetxattr
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/___flistxattr.S b/libc/arch-arm/syscalls/___flistxattr.S
index 8ae8b7e..904e4ca 100644
--- a/libc/arch-arm/syscalls/___flistxattr.S
+++ b/libc/arch-arm/syscalls/___flistxattr.S
@@ -4,9 +4,11 @@
 
 ENTRY(___flistxattr)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_flistxattr
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/___rt_sigqueueinfo.S b/libc/arch-arm/syscalls/___rt_sigqueueinfo.S
index 25b0d57..1367e56 100644
--- a/libc/arch-arm/syscalls/___rt_sigqueueinfo.S
+++ b/libc/arch-arm/syscalls/___rt_sigqueueinfo.S
@@ -4,9 +4,11 @@
 
 ENTRY(___rt_sigqueueinfo)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_rt_sigqueueinfo
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/__accept4.S b/libc/arch-arm/syscalls/__accept4.S
index dca5699..42aa47c 100644
--- a/libc/arch-arm/syscalls/__accept4.S
+++ b/libc/arch-arm/syscalls/__accept4.S
@@ -4,9 +4,11 @@
 
 ENTRY(__accept4)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_accept4
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/__brk.S b/libc/arch-arm/syscalls/__brk.S
index be304da..246924c 100644
--- a/libc/arch-arm/syscalls/__brk.S
+++ b/libc/arch-arm/syscalls/__brk.S
@@ -4,9 +4,11 @@
 
 ENTRY(__brk)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_brk
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/__connect.S b/libc/arch-arm/syscalls/__connect.S
index a2a997e..873b14d 100644
--- a/libc/arch-arm/syscalls/__connect.S
+++ b/libc/arch-arm/syscalls/__connect.S
@@ -4,9 +4,11 @@
 
 ENTRY(__connect)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_connect
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/__exit.S b/libc/arch-arm/syscalls/__exit.S
index 6ebd5b3..4ed31b0 100644
--- a/libc/arch-arm/syscalls/__exit.S
+++ b/libc/arch-arm/syscalls/__exit.S
@@ -4,9 +4,11 @@
 
 ENTRY(__exit)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_exit
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/__fcntl64.S b/libc/arch-arm/syscalls/__fcntl64.S
index 229c5c6..0afdbee 100644
--- a/libc/arch-arm/syscalls/__fcntl64.S
+++ b/libc/arch-arm/syscalls/__fcntl64.S
@@ -4,9 +4,11 @@
 
 ENTRY(__fcntl64)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_fcntl64
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/__fstatfs64.S b/libc/arch-arm/syscalls/__fstatfs64.S
index 9c0c439..9117313 100644
--- a/libc/arch-arm/syscalls/__fstatfs64.S
+++ b/libc/arch-arm/syscalls/__fstatfs64.S
@@ -4,9 +4,11 @@
 
 ENTRY(__fstatfs64)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_fstatfs64
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/__getcpu.S b/libc/arch-arm/syscalls/__getcpu.S
index d523d8e..430acb3 100644
--- a/libc/arch-arm/syscalls/__getcpu.S
+++ b/libc/arch-arm/syscalls/__getcpu.S
@@ -4,9 +4,11 @@
 
 ENTRY(__getcpu)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_getcpu
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/__getcwd.S b/libc/arch-arm/syscalls/__getcwd.S
index 4ff6667..53000b8 100644
--- a/libc/arch-arm/syscalls/__getcwd.S
+++ b/libc/arch-arm/syscalls/__getcwd.S
@@ -4,9 +4,11 @@
 
 ENTRY(__getcwd)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_getcwd
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/__getdents64.S b/libc/arch-arm/syscalls/__getdents64.S
index dac3bfc..0ea61b8 100644
--- a/libc/arch-arm/syscalls/__getdents64.S
+++ b/libc/arch-arm/syscalls/__getdents64.S
@@ -4,9 +4,11 @@
 
 ENTRY(__getdents64)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_getdents64
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/__getpid.S b/libc/arch-arm/syscalls/__getpid.S
index dbb192e..b555385 100644
--- a/libc/arch-arm/syscalls/__getpid.S
+++ b/libc/arch-arm/syscalls/__getpid.S
@@ -4,9 +4,11 @@
 
 ENTRY(__getpid)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_getpid
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/__getpriority.S b/libc/arch-arm/syscalls/__getpriority.S
index e637d6f..34f4bea 100644
--- a/libc/arch-arm/syscalls/__getpriority.S
+++ b/libc/arch-arm/syscalls/__getpriority.S
@@ -4,9 +4,11 @@
 
 ENTRY(__getpriority)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_getpriority
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/__ioctl.S b/libc/arch-arm/syscalls/__ioctl.S
index fcd1157..5871e58 100644
--- a/libc/arch-arm/syscalls/__ioctl.S
+++ b/libc/arch-arm/syscalls/__ioctl.S
@@ -4,9 +4,11 @@
 
 ENTRY(__ioctl)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_ioctl
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/__openat.S b/libc/arch-arm/syscalls/__openat.S
index 9b774db..403d9b5 100644
--- a/libc/arch-arm/syscalls/__openat.S
+++ b/libc/arch-arm/syscalls/__openat.S
@@ -4,9 +4,11 @@
 
 ENTRY(__openat)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_openat
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/__ptrace.S b/libc/arch-arm/syscalls/__ptrace.S
index 975ab0f..8ad554d 100644
--- a/libc/arch-arm/syscalls/__ptrace.S
+++ b/libc/arch-arm/syscalls/__ptrace.S
@@ -4,9 +4,11 @@
 
 ENTRY(__ptrace)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_ptrace
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/__reboot.S b/libc/arch-arm/syscalls/__reboot.S
index 03f8c89..15ca814 100644
--- a/libc/arch-arm/syscalls/__reboot.S
+++ b/libc/arch-arm/syscalls/__reboot.S
@@ -4,9 +4,11 @@
 
 ENTRY(__reboot)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_reboot
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/__rt_sigaction.S b/libc/arch-arm/syscalls/__rt_sigaction.S
index 2c21012..21d9977 100644
--- a/libc/arch-arm/syscalls/__rt_sigaction.S
+++ b/libc/arch-arm/syscalls/__rt_sigaction.S
@@ -4,9 +4,11 @@
 
 ENTRY(__rt_sigaction)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_rt_sigaction
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/__rt_sigpending.S b/libc/arch-arm/syscalls/__rt_sigpending.S
index 6a32e50..b726b85 100644
--- a/libc/arch-arm/syscalls/__rt_sigpending.S
+++ b/libc/arch-arm/syscalls/__rt_sigpending.S
@@ -4,9 +4,11 @@
 
 ENTRY(__rt_sigpending)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_rt_sigpending
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/__rt_sigprocmask.S b/libc/arch-arm/syscalls/__rt_sigprocmask.S
index 136dc79..11b326f 100644
--- a/libc/arch-arm/syscalls/__rt_sigprocmask.S
+++ b/libc/arch-arm/syscalls/__rt_sigprocmask.S
@@ -4,9 +4,11 @@
 
 ENTRY(__rt_sigprocmask)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_rt_sigprocmask
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/__rt_sigsuspend.S b/libc/arch-arm/syscalls/__rt_sigsuspend.S
index 2cef4a4..5d06418 100644
--- a/libc/arch-arm/syscalls/__rt_sigsuspend.S
+++ b/libc/arch-arm/syscalls/__rt_sigsuspend.S
@@ -4,9 +4,11 @@
 
 ENTRY(__rt_sigsuspend)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_rt_sigsuspend
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/__rt_sigtimedwait.S b/libc/arch-arm/syscalls/__rt_sigtimedwait.S
index cb43ad1..dc7c3e7 100644
--- a/libc/arch-arm/syscalls/__rt_sigtimedwait.S
+++ b/libc/arch-arm/syscalls/__rt_sigtimedwait.S
@@ -4,9 +4,11 @@
 
 ENTRY(__rt_sigtimedwait)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_rt_sigtimedwait
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/__sched_getaffinity.S b/libc/arch-arm/syscalls/__sched_getaffinity.S
index 6613ea5..21f8330 100644
--- a/libc/arch-arm/syscalls/__sched_getaffinity.S
+++ b/libc/arch-arm/syscalls/__sched_getaffinity.S
@@ -4,9 +4,11 @@
 
 ENTRY(__sched_getaffinity)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_sched_getaffinity
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/__set_tid_address.S b/libc/arch-arm/syscalls/__set_tid_address.S
index d3558f5..79dfd7f 100644
--- a/libc/arch-arm/syscalls/__set_tid_address.S
+++ b/libc/arch-arm/syscalls/__set_tid_address.S
@@ -4,9 +4,11 @@
 
 ENTRY(__set_tid_address)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_set_tid_address
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/__set_tls.S b/libc/arch-arm/syscalls/__set_tls.S
index 4d5d963..a9a4b9a 100644
--- a/libc/arch-arm/syscalls/__set_tls.S
+++ b/libc/arch-arm/syscalls/__set_tls.S
@@ -4,9 +4,11 @@
 
 ENTRY(__set_tls)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__ARM_NR_set_tls
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/__sigaction.S b/libc/arch-arm/syscalls/__sigaction.S
index 600593d..8f3f143 100644
--- a/libc/arch-arm/syscalls/__sigaction.S
+++ b/libc/arch-arm/syscalls/__sigaction.S
@@ -4,9 +4,11 @@
 
 ENTRY(__sigaction)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_sigaction
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/__signalfd4.S b/libc/arch-arm/syscalls/__signalfd4.S
index 630a71f..51a27c8 100644
--- a/libc/arch-arm/syscalls/__signalfd4.S
+++ b/libc/arch-arm/syscalls/__signalfd4.S
@@ -4,9 +4,11 @@
 
 ENTRY(__signalfd4)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_signalfd4
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/__socket.S b/libc/arch-arm/syscalls/__socket.S
index fffe0cc..c50cd6f 100644
--- a/libc/arch-arm/syscalls/__socket.S
+++ b/libc/arch-arm/syscalls/__socket.S
@@ -4,9 +4,11 @@
 
 ENTRY(__socket)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_socket
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/__statfs64.S b/libc/arch-arm/syscalls/__statfs64.S
index ec43218..320b0ee 100644
--- a/libc/arch-arm/syscalls/__statfs64.S
+++ b/libc/arch-arm/syscalls/__statfs64.S
@@ -4,9 +4,11 @@
 
 ENTRY(__statfs64)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_statfs64
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/__timer_create.S b/libc/arch-arm/syscalls/__timer_create.S
index 2e4c634..fd7567b 100644
--- a/libc/arch-arm/syscalls/__timer_create.S
+++ b/libc/arch-arm/syscalls/__timer_create.S
@@ -4,9 +4,11 @@
 
 ENTRY(__timer_create)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_timer_create
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/__timer_delete.S b/libc/arch-arm/syscalls/__timer_delete.S
index 237024c..6761abb 100644
--- a/libc/arch-arm/syscalls/__timer_delete.S
+++ b/libc/arch-arm/syscalls/__timer_delete.S
@@ -4,9 +4,11 @@
 
 ENTRY(__timer_delete)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_timer_delete
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/__timer_getoverrun.S b/libc/arch-arm/syscalls/__timer_getoverrun.S
index f29d5b3..a925d83 100644
--- a/libc/arch-arm/syscalls/__timer_getoverrun.S
+++ b/libc/arch-arm/syscalls/__timer_getoverrun.S
@@ -4,9 +4,11 @@
 
 ENTRY(__timer_getoverrun)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_timer_getoverrun
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/__timer_gettime.S b/libc/arch-arm/syscalls/__timer_gettime.S
index e6dc2ed..c0da770 100644
--- a/libc/arch-arm/syscalls/__timer_gettime.S
+++ b/libc/arch-arm/syscalls/__timer_gettime.S
@@ -4,9 +4,11 @@
 
 ENTRY(__timer_gettime)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_timer_gettime
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/__timer_settime.S b/libc/arch-arm/syscalls/__timer_settime.S
index 4aea279..de4e7e6 100644
--- a/libc/arch-arm/syscalls/__timer_settime.S
+++ b/libc/arch-arm/syscalls/__timer_settime.S
@@ -4,9 +4,11 @@
 
 ENTRY(__timer_settime)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_timer_settime
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/_exit.S b/libc/arch-arm/syscalls/_exit.S
index 77da743..1c3d174 100644
--- a/libc/arch-arm/syscalls/_exit.S
+++ b/libc/arch-arm/syscalls/_exit.S
@@ -4,9 +4,11 @@
 
 ENTRY(_exit)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_exit_group
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/acct.S b/libc/arch-arm/syscalls/acct.S
index dbc5d58..cdf1099 100644
--- a/libc/arch-arm/syscalls/acct.S
+++ b/libc/arch-arm/syscalls/acct.S
@@ -4,9 +4,11 @@
 
 ENTRY(acct)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_acct
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/adjtimex.S b/libc/arch-arm/syscalls/adjtimex.S
index 614036e..6ebae7e 100644
--- a/libc/arch-arm/syscalls/adjtimex.S
+++ b/libc/arch-arm/syscalls/adjtimex.S
@@ -4,9 +4,11 @@
 
 ENTRY(adjtimex)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_adjtimex
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/bind.S b/libc/arch-arm/syscalls/bind.S
index c901417..af518d8 100644
--- a/libc/arch-arm/syscalls/bind.S
+++ b/libc/arch-arm/syscalls/bind.S
@@ -4,9 +4,11 @@
 
 ENTRY(bind)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_bind
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/cacheflush.S b/libc/arch-arm/syscalls/cacheflush.S
index 76f4623..752749a 100644
--- a/libc/arch-arm/syscalls/cacheflush.S
+++ b/libc/arch-arm/syscalls/cacheflush.S
@@ -4,9 +4,11 @@
 
 ENTRY(cacheflush)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__ARM_NR_cacheflush
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/capget.S b/libc/arch-arm/syscalls/capget.S
index 59a5a3c..9be110b 100644
--- a/libc/arch-arm/syscalls/capget.S
+++ b/libc/arch-arm/syscalls/capget.S
@@ -4,9 +4,11 @@
 
 ENTRY(capget)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_capget
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/capset.S b/libc/arch-arm/syscalls/capset.S
index af284ab..0bd5009 100644
--- a/libc/arch-arm/syscalls/capset.S
+++ b/libc/arch-arm/syscalls/capset.S
@@ -4,9 +4,11 @@
 
 ENTRY(capset)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_capset
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/chdir.S b/libc/arch-arm/syscalls/chdir.S
index 25f27ba..c75f5e2 100644
--- a/libc/arch-arm/syscalls/chdir.S
+++ b/libc/arch-arm/syscalls/chdir.S
@@ -4,9 +4,11 @@
 
 ENTRY(chdir)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_chdir
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/chroot.S b/libc/arch-arm/syscalls/chroot.S
index 6f829a6..d197d42 100644
--- a/libc/arch-arm/syscalls/chroot.S
+++ b/libc/arch-arm/syscalls/chroot.S
@@ -4,9 +4,11 @@
 
 ENTRY(chroot)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_chroot
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/clock_adjtime.S b/libc/arch-arm/syscalls/clock_adjtime.S
index fa778e1..e59a240 100644
--- a/libc/arch-arm/syscalls/clock_adjtime.S
+++ b/libc/arch-arm/syscalls/clock_adjtime.S
@@ -4,9 +4,11 @@
 
 ENTRY(clock_adjtime)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_clock_adjtime
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/clock_getres.S b/libc/arch-arm/syscalls/clock_getres.S
index 48fa07c..e101127 100644
--- a/libc/arch-arm/syscalls/clock_getres.S
+++ b/libc/arch-arm/syscalls/clock_getres.S
@@ -4,9 +4,11 @@
 
 ENTRY(clock_getres)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_clock_getres
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/clock_gettime.S b/libc/arch-arm/syscalls/clock_gettime.S
index 317481d..61a95dd 100644
--- a/libc/arch-arm/syscalls/clock_gettime.S
+++ b/libc/arch-arm/syscalls/clock_gettime.S
@@ -4,9 +4,11 @@
 
 ENTRY(clock_gettime)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_clock_gettime
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/clock_settime.S b/libc/arch-arm/syscalls/clock_settime.S
index bf54702..f00a072 100644
--- a/libc/arch-arm/syscalls/clock_settime.S
+++ b/libc/arch-arm/syscalls/clock_settime.S
@@ -4,9 +4,11 @@
 
 ENTRY(clock_settime)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_clock_settime
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/delete_module.S b/libc/arch-arm/syscalls/delete_module.S
index 57580c9..80dd0f5 100644
--- a/libc/arch-arm/syscalls/delete_module.S
+++ b/libc/arch-arm/syscalls/delete_module.S
@@ -4,9 +4,11 @@
 
 ENTRY(delete_module)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_delete_module
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/dup.S b/libc/arch-arm/syscalls/dup.S
index 2cd69d7..0d06bdc 100644
--- a/libc/arch-arm/syscalls/dup.S
+++ b/libc/arch-arm/syscalls/dup.S
@@ -4,9 +4,11 @@
 
 ENTRY(dup)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_dup
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/dup3.S b/libc/arch-arm/syscalls/dup3.S
index 4613d63..7dea858 100644
--- a/libc/arch-arm/syscalls/dup3.S
+++ b/libc/arch-arm/syscalls/dup3.S
@@ -4,9 +4,11 @@
 
 ENTRY(dup3)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_dup3
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/epoll_create1.S b/libc/arch-arm/syscalls/epoll_create1.S
index 108c24f..8b413d9 100644
--- a/libc/arch-arm/syscalls/epoll_create1.S
+++ b/libc/arch-arm/syscalls/epoll_create1.S
@@ -4,9 +4,11 @@
 
 ENTRY(epoll_create1)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_epoll_create1
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/epoll_ctl.S b/libc/arch-arm/syscalls/epoll_ctl.S
index 473af6a..807dd69 100644
--- a/libc/arch-arm/syscalls/epoll_ctl.S
+++ b/libc/arch-arm/syscalls/epoll_ctl.S
@@ -4,9 +4,11 @@
 
 ENTRY(epoll_ctl)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_epoll_ctl
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/eventfd.S b/libc/arch-arm/syscalls/eventfd.S
index ca6bcee..51f4a49 100644
--- a/libc/arch-arm/syscalls/eventfd.S
+++ b/libc/arch-arm/syscalls/eventfd.S
@@ -4,9 +4,11 @@
 
 ENTRY(eventfd)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_eventfd2
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/execve.S b/libc/arch-arm/syscalls/execve.S
index 3eca810..1b72f0e 100644
--- a/libc/arch-arm/syscalls/execve.S
+++ b/libc/arch-arm/syscalls/execve.S
@@ -4,9 +4,11 @@
 
 ENTRY(execve)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_execve
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/fchdir.S b/libc/arch-arm/syscalls/fchdir.S
index 705ad32..dca18c4 100644
--- a/libc/arch-arm/syscalls/fchdir.S
+++ b/libc/arch-arm/syscalls/fchdir.S
@@ -4,9 +4,11 @@
 
 ENTRY(fchdir)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_fchdir
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/fchown.S b/libc/arch-arm/syscalls/fchown.S
index 45ad9bf..51ee60c 100644
--- a/libc/arch-arm/syscalls/fchown.S
+++ b/libc/arch-arm/syscalls/fchown.S
@@ -4,9 +4,11 @@
 
 ENTRY(fchown)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_fchown32
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/fdatasync.S b/libc/arch-arm/syscalls/fdatasync.S
index 7fefd22..f97adc6 100644
--- a/libc/arch-arm/syscalls/fdatasync.S
+++ b/libc/arch-arm/syscalls/fdatasync.S
@@ -4,9 +4,11 @@
 
 ENTRY(fdatasync)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_fdatasync
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/flock.S b/libc/arch-arm/syscalls/flock.S
index c946fe9..e2874f6 100644
--- a/libc/arch-arm/syscalls/flock.S
+++ b/libc/arch-arm/syscalls/flock.S
@@ -4,9 +4,11 @@
 
 ENTRY(flock)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_flock
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/fremovexattr.S b/libc/arch-arm/syscalls/fremovexattr.S
index f4e950b..89be704 100644
--- a/libc/arch-arm/syscalls/fremovexattr.S
+++ b/libc/arch-arm/syscalls/fremovexattr.S
@@ -4,9 +4,11 @@
 
 ENTRY(fremovexattr)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_fremovexattr
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/fstat64.S b/libc/arch-arm/syscalls/fstat64.S
index 798bba7..c2c7101 100644
--- a/libc/arch-arm/syscalls/fstat64.S
+++ b/libc/arch-arm/syscalls/fstat64.S
@@ -4,9 +4,11 @@
 
 ENTRY(fstat64)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_fstat64
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/fstatat64.S b/libc/arch-arm/syscalls/fstatat64.S
index 03e0052..545dc16 100644
--- a/libc/arch-arm/syscalls/fstatat64.S
+++ b/libc/arch-arm/syscalls/fstatat64.S
@@ -4,9 +4,11 @@
 
 ENTRY(fstatat64)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_fstatat64
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/fsync.S b/libc/arch-arm/syscalls/fsync.S
index 1dfff05..24b9a87 100644
--- a/libc/arch-arm/syscalls/fsync.S
+++ b/libc/arch-arm/syscalls/fsync.S
@@ -4,9 +4,11 @@
 
 ENTRY(fsync)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_fsync
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/ftruncate64.S b/libc/arch-arm/syscalls/ftruncate64.S
index ac0caa8..ee1a2a6 100644
--- a/libc/arch-arm/syscalls/ftruncate64.S
+++ b/libc/arch-arm/syscalls/ftruncate64.S
@@ -4,9 +4,11 @@
 
 ENTRY(ftruncate64)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_ftruncate64
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/getegid.S b/libc/arch-arm/syscalls/getegid.S
index afa9cc8..f4e17b5 100644
--- a/libc/arch-arm/syscalls/getegid.S
+++ b/libc/arch-arm/syscalls/getegid.S
@@ -4,9 +4,11 @@
 
 ENTRY(getegid)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_getegid32
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/geteuid.S b/libc/arch-arm/syscalls/geteuid.S
index 10c8a25..01898f8 100644
--- a/libc/arch-arm/syscalls/geteuid.S
+++ b/libc/arch-arm/syscalls/geteuid.S
@@ -4,9 +4,11 @@
 
 ENTRY(geteuid)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_geteuid32
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/getgid.S b/libc/arch-arm/syscalls/getgid.S
index 8772762..ee124a6 100644
--- a/libc/arch-arm/syscalls/getgid.S
+++ b/libc/arch-arm/syscalls/getgid.S
@@ -4,9 +4,11 @@
 
 ENTRY(getgid)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_getgid32
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/getgroups.S b/libc/arch-arm/syscalls/getgroups.S
index 366299b..4c1bfdb 100644
--- a/libc/arch-arm/syscalls/getgroups.S
+++ b/libc/arch-arm/syscalls/getgroups.S
@@ -4,9 +4,11 @@
 
 ENTRY(getgroups)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_getgroups32
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/getitimer.S b/libc/arch-arm/syscalls/getitimer.S
index 80fb0f2..b9773ad 100644
--- a/libc/arch-arm/syscalls/getitimer.S
+++ b/libc/arch-arm/syscalls/getitimer.S
@@ -4,9 +4,11 @@
 
 ENTRY(getitimer)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_getitimer
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/getpeername.S b/libc/arch-arm/syscalls/getpeername.S
index 25f0026..6bf6002 100644
--- a/libc/arch-arm/syscalls/getpeername.S
+++ b/libc/arch-arm/syscalls/getpeername.S
@@ -4,9 +4,11 @@
 
 ENTRY(getpeername)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_getpeername
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/getpgid.S b/libc/arch-arm/syscalls/getpgid.S
index 36c4c19..d5c9c8a 100644
--- a/libc/arch-arm/syscalls/getpgid.S
+++ b/libc/arch-arm/syscalls/getpgid.S
@@ -4,9 +4,11 @@
 
 ENTRY(getpgid)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_getpgid
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/getppid.S b/libc/arch-arm/syscalls/getppid.S
index 606b2e0..91db24e 100644
--- a/libc/arch-arm/syscalls/getppid.S
+++ b/libc/arch-arm/syscalls/getppid.S
@@ -4,9 +4,11 @@
 
 ENTRY(getppid)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_getppid
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/getresgid.S b/libc/arch-arm/syscalls/getresgid.S
index a5e4689..8fb7f28 100644
--- a/libc/arch-arm/syscalls/getresgid.S
+++ b/libc/arch-arm/syscalls/getresgid.S
@@ -4,9 +4,11 @@
 
 ENTRY(getresgid)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_getresgid32
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/getresuid.S b/libc/arch-arm/syscalls/getresuid.S
index 74c26a7..ebec6e1 100644
--- a/libc/arch-arm/syscalls/getresuid.S
+++ b/libc/arch-arm/syscalls/getresuid.S
@@ -4,9 +4,11 @@
 
 ENTRY(getresuid)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_getresuid32
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/getrlimit.S b/libc/arch-arm/syscalls/getrlimit.S
index 166da63..0c9e662 100644
--- a/libc/arch-arm/syscalls/getrlimit.S
+++ b/libc/arch-arm/syscalls/getrlimit.S
@@ -4,9 +4,11 @@
 
 ENTRY(getrlimit)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_ugetrlimit
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/getrusage.S b/libc/arch-arm/syscalls/getrusage.S
index 93979c6..e74a4ad 100644
--- a/libc/arch-arm/syscalls/getrusage.S
+++ b/libc/arch-arm/syscalls/getrusage.S
@@ -4,9 +4,11 @@
 
 ENTRY(getrusage)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_getrusage
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/getsid.S b/libc/arch-arm/syscalls/getsid.S
index 87d38fb..c918820 100644
--- a/libc/arch-arm/syscalls/getsid.S
+++ b/libc/arch-arm/syscalls/getsid.S
@@ -4,9 +4,11 @@
 
 ENTRY(getsid)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_getsid
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/getsockname.S b/libc/arch-arm/syscalls/getsockname.S
index 5dc4eab..a30a291 100644
--- a/libc/arch-arm/syscalls/getsockname.S
+++ b/libc/arch-arm/syscalls/getsockname.S
@@ -4,9 +4,11 @@
 
 ENTRY(getsockname)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_getsockname
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/gettimeofday.S b/libc/arch-arm/syscalls/gettimeofday.S
index 174f94b..f5ed674 100644
--- a/libc/arch-arm/syscalls/gettimeofday.S
+++ b/libc/arch-arm/syscalls/gettimeofday.S
@@ -4,9 +4,11 @@
 
 ENTRY(gettimeofday)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_gettimeofday
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/getuid.S b/libc/arch-arm/syscalls/getuid.S
index 3d07d3c..cdc86bc 100644
--- a/libc/arch-arm/syscalls/getuid.S
+++ b/libc/arch-arm/syscalls/getuid.S
@@ -4,9 +4,11 @@
 
 ENTRY(getuid)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_getuid32
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/getxattr.S b/libc/arch-arm/syscalls/getxattr.S
index 6661aaf..116d917 100644
--- a/libc/arch-arm/syscalls/getxattr.S
+++ b/libc/arch-arm/syscalls/getxattr.S
@@ -4,9 +4,11 @@
 
 ENTRY(getxattr)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_getxattr
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/init_module.S b/libc/arch-arm/syscalls/init_module.S
index 8251533..8fecf68 100644
--- a/libc/arch-arm/syscalls/init_module.S
+++ b/libc/arch-arm/syscalls/init_module.S
@@ -4,9 +4,11 @@
 
 ENTRY(init_module)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_init_module
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/inotify_add_watch.S b/libc/arch-arm/syscalls/inotify_add_watch.S
index b945bd1..61e666c 100644
--- a/libc/arch-arm/syscalls/inotify_add_watch.S
+++ b/libc/arch-arm/syscalls/inotify_add_watch.S
@@ -4,9 +4,11 @@
 
 ENTRY(inotify_add_watch)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_inotify_add_watch
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/inotify_init1.S b/libc/arch-arm/syscalls/inotify_init1.S
index 32090de..6cf066e 100644
--- a/libc/arch-arm/syscalls/inotify_init1.S
+++ b/libc/arch-arm/syscalls/inotify_init1.S
@@ -4,9 +4,11 @@
 
 ENTRY(inotify_init1)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_inotify_init1
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/inotify_rm_watch.S b/libc/arch-arm/syscalls/inotify_rm_watch.S
index e8230e2..1455da1 100644
--- a/libc/arch-arm/syscalls/inotify_rm_watch.S
+++ b/libc/arch-arm/syscalls/inotify_rm_watch.S
@@ -4,9 +4,11 @@
 
 ENTRY(inotify_rm_watch)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_inotify_rm_watch
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/kill.S b/libc/arch-arm/syscalls/kill.S
index 0b5f4a4..82df861 100644
--- a/libc/arch-arm/syscalls/kill.S
+++ b/libc/arch-arm/syscalls/kill.S
@@ -4,9 +4,11 @@
 
 ENTRY(kill)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_kill
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/klogctl.S b/libc/arch-arm/syscalls/klogctl.S
index b76b2b5..47a03c6 100644
--- a/libc/arch-arm/syscalls/klogctl.S
+++ b/libc/arch-arm/syscalls/klogctl.S
@@ -4,9 +4,11 @@
 
 ENTRY(klogctl)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_syslog
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/lgetxattr.S b/libc/arch-arm/syscalls/lgetxattr.S
index b033a9a..157271c 100644
--- a/libc/arch-arm/syscalls/lgetxattr.S
+++ b/libc/arch-arm/syscalls/lgetxattr.S
@@ -4,9 +4,11 @@
 
 ENTRY(lgetxattr)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_lgetxattr
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/listen.S b/libc/arch-arm/syscalls/listen.S
index 3aaa801..5ad75c0 100644
--- a/libc/arch-arm/syscalls/listen.S
+++ b/libc/arch-arm/syscalls/listen.S
@@ -4,9 +4,11 @@
 
 ENTRY(listen)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_listen
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/listxattr.S b/libc/arch-arm/syscalls/listxattr.S
index 51ff267..093927d 100644
--- a/libc/arch-arm/syscalls/listxattr.S
+++ b/libc/arch-arm/syscalls/listxattr.S
@@ -4,9 +4,11 @@
 
 ENTRY(listxattr)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_listxattr
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/llistxattr.S b/libc/arch-arm/syscalls/llistxattr.S
index 46e8116..5d0e7c8 100644
--- a/libc/arch-arm/syscalls/llistxattr.S
+++ b/libc/arch-arm/syscalls/llistxattr.S
@@ -4,9 +4,11 @@
 
 ENTRY(llistxattr)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_llistxattr
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/lremovexattr.S b/libc/arch-arm/syscalls/lremovexattr.S
index a945062..4e0bcec 100644
--- a/libc/arch-arm/syscalls/lremovexattr.S
+++ b/libc/arch-arm/syscalls/lremovexattr.S
@@ -4,9 +4,11 @@
 
 ENTRY(lremovexattr)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_lremovexattr
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/lseek.S b/libc/arch-arm/syscalls/lseek.S
index 00aeab3..cbdc441 100644
--- a/libc/arch-arm/syscalls/lseek.S
+++ b/libc/arch-arm/syscalls/lseek.S
@@ -4,9 +4,11 @@
 
 ENTRY(lseek)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_lseek
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/madvise.S b/libc/arch-arm/syscalls/madvise.S
index 4d3cdcd..c2d7d20 100644
--- a/libc/arch-arm/syscalls/madvise.S
+++ b/libc/arch-arm/syscalls/madvise.S
@@ -4,9 +4,11 @@
 
 ENTRY(madvise)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_madvise
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/mincore.S b/libc/arch-arm/syscalls/mincore.S
index f1154d0..c93fe94 100644
--- a/libc/arch-arm/syscalls/mincore.S
+++ b/libc/arch-arm/syscalls/mincore.S
@@ -4,9 +4,11 @@
 
 ENTRY(mincore)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_mincore
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/mkdirat.S b/libc/arch-arm/syscalls/mkdirat.S
index 1f8957b..4f93c61 100644
--- a/libc/arch-arm/syscalls/mkdirat.S
+++ b/libc/arch-arm/syscalls/mkdirat.S
@@ -4,9 +4,11 @@
 
 ENTRY(mkdirat)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_mkdirat
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/mknodat.S b/libc/arch-arm/syscalls/mknodat.S
index 1a2bf6f..91baae8 100644
--- a/libc/arch-arm/syscalls/mknodat.S
+++ b/libc/arch-arm/syscalls/mknodat.S
@@ -4,9 +4,11 @@
 
 ENTRY(mknodat)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_mknodat
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/mlock.S b/libc/arch-arm/syscalls/mlock.S
index 8a4fc7a..eb72f6f 100644
--- a/libc/arch-arm/syscalls/mlock.S
+++ b/libc/arch-arm/syscalls/mlock.S
@@ -4,9 +4,11 @@
 
 ENTRY(mlock)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_mlock
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/mlockall.S b/libc/arch-arm/syscalls/mlockall.S
index b49ca05..2984087 100644
--- a/libc/arch-arm/syscalls/mlockall.S
+++ b/libc/arch-arm/syscalls/mlockall.S
@@ -4,9 +4,11 @@
 
 ENTRY(mlockall)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_mlockall
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/mprotect.S b/libc/arch-arm/syscalls/mprotect.S
index cb51306..9bb1282 100644
--- a/libc/arch-arm/syscalls/mprotect.S
+++ b/libc/arch-arm/syscalls/mprotect.S
@@ -4,9 +4,11 @@
 
 ENTRY(mprotect)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_mprotect
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/msync.S b/libc/arch-arm/syscalls/msync.S
index 220fb4d..bcbab04 100644
--- a/libc/arch-arm/syscalls/msync.S
+++ b/libc/arch-arm/syscalls/msync.S
@@ -4,9 +4,11 @@
 
 ENTRY(msync)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_msync
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/munlock.S b/libc/arch-arm/syscalls/munlock.S
index 05bf941..bf1b814 100644
--- a/libc/arch-arm/syscalls/munlock.S
+++ b/libc/arch-arm/syscalls/munlock.S
@@ -4,9 +4,11 @@
 
 ENTRY(munlock)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_munlock
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/munlockall.S b/libc/arch-arm/syscalls/munlockall.S
index e2c5dd5..b45a5a2 100644
--- a/libc/arch-arm/syscalls/munlockall.S
+++ b/libc/arch-arm/syscalls/munlockall.S
@@ -4,9 +4,11 @@
 
 ENTRY(munlockall)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_munlockall
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/munmap.S b/libc/arch-arm/syscalls/munmap.S
index 740c360..2b7a121 100644
--- a/libc/arch-arm/syscalls/munmap.S
+++ b/libc/arch-arm/syscalls/munmap.S
@@ -4,9 +4,11 @@
 
 ENTRY(munmap)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_munmap
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/nanosleep.S b/libc/arch-arm/syscalls/nanosleep.S
index fcd6e90..83fd323 100644
--- a/libc/arch-arm/syscalls/nanosleep.S
+++ b/libc/arch-arm/syscalls/nanosleep.S
@@ -4,9 +4,11 @@
 
 ENTRY(nanosleep)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_nanosleep
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/personality.S b/libc/arch-arm/syscalls/personality.S
index d43d763..5ad6132 100644
--- a/libc/arch-arm/syscalls/personality.S
+++ b/libc/arch-arm/syscalls/personality.S
@@ -4,9 +4,11 @@
 
 ENTRY(personality)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_personality
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/pipe2.S b/libc/arch-arm/syscalls/pipe2.S
index 1cbdfb2..f543f9d 100644
--- a/libc/arch-arm/syscalls/pipe2.S
+++ b/libc/arch-arm/syscalls/pipe2.S
@@ -4,9 +4,11 @@
 
 ENTRY(pipe2)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_pipe2
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/prlimit64.S b/libc/arch-arm/syscalls/prlimit64.S
index 3ae9e1b..0f04aaa 100644
--- a/libc/arch-arm/syscalls/prlimit64.S
+++ b/libc/arch-arm/syscalls/prlimit64.S
@@ -4,9 +4,11 @@
 
 ENTRY(prlimit64)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_prlimit64
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/quotactl.S b/libc/arch-arm/syscalls/quotactl.S
index 831d229..fde17f4 100644
--- a/libc/arch-arm/syscalls/quotactl.S
+++ b/libc/arch-arm/syscalls/quotactl.S
@@ -4,9 +4,11 @@
 
 ENTRY(quotactl)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_quotactl
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/read.S b/libc/arch-arm/syscalls/read.S
index 1c3b395..5051358 100644
--- a/libc/arch-arm/syscalls/read.S
+++ b/libc/arch-arm/syscalls/read.S
@@ -4,9 +4,11 @@
 
 ENTRY(read)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_read
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/readlinkat.S b/libc/arch-arm/syscalls/readlinkat.S
index e7cc8ff..36d46fa 100644
--- a/libc/arch-arm/syscalls/readlinkat.S
+++ b/libc/arch-arm/syscalls/readlinkat.S
@@ -4,9 +4,11 @@
 
 ENTRY(readlinkat)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_readlinkat
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/readv.S b/libc/arch-arm/syscalls/readv.S
index c7807bd..565af6a 100644
--- a/libc/arch-arm/syscalls/readv.S
+++ b/libc/arch-arm/syscalls/readv.S
@@ -4,9 +4,11 @@
 
 ENTRY(readv)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_readv
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/recvmsg.S b/libc/arch-arm/syscalls/recvmsg.S
index 995a9e3..19a9fca 100644
--- a/libc/arch-arm/syscalls/recvmsg.S
+++ b/libc/arch-arm/syscalls/recvmsg.S
@@ -4,9 +4,11 @@
 
 ENTRY(recvmsg)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_recvmsg
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/removexattr.S b/libc/arch-arm/syscalls/removexattr.S
index 3a32e5c..46f847d 100644
--- a/libc/arch-arm/syscalls/removexattr.S
+++ b/libc/arch-arm/syscalls/removexattr.S
@@ -4,9 +4,11 @@
 
 ENTRY(removexattr)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_removexattr
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/renameat.S b/libc/arch-arm/syscalls/renameat.S
index 98e86dc..89fc513 100644
--- a/libc/arch-arm/syscalls/renameat.S
+++ b/libc/arch-arm/syscalls/renameat.S
@@ -4,9 +4,11 @@
 
 ENTRY(renameat)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_renameat
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/sched_get_priority_max.S b/libc/arch-arm/syscalls/sched_get_priority_max.S
index 187e680..23b1d62 100644
--- a/libc/arch-arm/syscalls/sched_get_priority_max.S
+++ b/libc/arch-arm/syscalls/sched_get_priority_max.S
@@ -4,9 +4,11 @@
 
 ENTRY(sched_get_priority_max)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_sched_get_priority_max
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/sched_get_priority_min.S b/libc/arch-arm/syscalls/sched_get_priority_min.S
index 68bf7df..65a967c 100644
--- a/libc/arch-arm/syscalls/sched_get_priority_min.S
+++ b/libc/arch-arm/syscalls/sched_get_priority_min.S
@@ -4,9 +4,11 @@
 
 ENTRY(sched_get_priority_min)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_sched_get_priority_min
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/sched_getparam.S b/libc/arch-arm/syscalls/sched_getparam.S
index 32b97b8..700041e 100644
--- a/libc/arch-arm/syscalls/sched_getparam.S
+++ b/libc/arch-arm/syscalls/sched_getparam.S
@@ -4,9 +4,11 @@
 
 ENTRY(sched_getparam)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_sched_getparam
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/sched_getscheduler.S b/libc/arch-arm/syscalls/sched_getscheduler.S
index 330c208..b4f5d13 100644
--- a/libc/arch-arm/syscalls/sched_getscheduler.S
+++ b/libc/arch-arm/syscalls/sched_getscheduler.S
@@ -4,9 +4,11 @@
 
 ENTRY(sched_getscheduler)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_sched_getscheduler
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/sched_rr_get_interval.S b/libc/arch-arm/syscalls/sched_rr_get_interval.S
index 5d176ac..ea30b62 100644
--- a/libc/arch-arm/syscalls/sched_rr_get_interval.S
+++ b/libc/arch-arm/syscalls/sched_rr_get_interval.S
@@ -4,9 +4,11 @@
 
 ENTRY(sched_rr_get_interval)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_sched_rr_get_interval
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/sched_setaffinity.S b/libc/arch-arm/syscalls/sched_setaffinity.S
index 6653471..636845b 100644
--- a/libc/arch-arm/syscalls/sched_setaffinity.S
+++ b/libc/arch-arm/syscalls/sched_setaffinity.S
@@ -4,9 +4,11 @@
 
 ENTRY(sched_setaffinity)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_sched_setaffinity
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/sched_setparam.S b/libc/arch-arm/syscalls/sched_setparam.S
index 16e1997..f24b96e 100644
--- a/libc/arch-arm/syscalls/sched_setparam.S
+++ b/libc/arch-arm/syscalls/sched_setparam.S
@@ -4,9 +4,11 @@
 
 ENTRY(sched_setparam)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_sched_setparam
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/sched_setscheduler.S b/libc/arch-arm/syscalls/sched_setscheduler.S
index 2ec9fec..5bfa202 100644
--- a/libc/arch-arm/syscalls/sched_setscheduler.S
+++ b/libc/arch-arm/syscalls/sched_setscheduler.S
@@ -4,9 +4,11 @@
 
 ENTRY(sched_setscheduler)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_sched_setscheduler
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/sched_yield.S b/libc/arch-arm/syscalls/sched_yield.S
index 1ec328f..7b93a6e 100644
--- a/libc/arch-arm/syscalls/sched_yield.S
+++ b/libc/arch-arm/syscalls/sched_yield.S
@@ -4,9 +4,11 @@
 
 ENTRY(sched_yield)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_sched_yield
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/sendfile.S b/libc/arch-arm/syscalls/sendfile.S
index afae021..52e78d0 100644
--- a/libc/arch-arm/syscalls/sendfile.S
+++ b/libc/arch-arm/syscalls/sendfile.S
@@ -4,9 +4,11 @@
 
 ENTRY(sendfile)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_sendfile
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/sendfile64.S b/libc/arch-arm/syscalls/sendfile64.S
index d0ad0b8..416e9d2 100644
--- a/libc/arch-arm/syscalls/sendfile64.S
+++ b/libc/arch-arm/syscalls/sendfile64.S
@@ -4,9 +4,11 @@
 
 ENTRY(sendfile64)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_sendfile64
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/sendmmsg.S b/libc/arch-arm/syscalls/sendmmsg.S
index 8bb5f80..f97d264 100644
--- a/libc/arch-arm/syscalls/sendmmsg.S
+++ b/libc/arch-arm/syscalls/sendmmsg.S
@@ -4,9 +4,11 @@
 
 ENTRY(sendmmsg)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_sendmmsg
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/sendmsg.S b/libc/arch-arm/syscalls/sendmsg.S
index fd38140..215219a 100644
--- a/libc/arch-arm/syscalls/sendmsg.S
+++ b/libc/arch-arm/syscalls/sendmsg.S
@@ -4,9 +4,11 @@
 
 ENTRY(sendmsg)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_sendmsg
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/setdomainname.S b/libc/arch-arm/syscalls/setdomainname.S
index 20f1f6f..4014a48 100644
--- a/libc/arch-arm/syscalls/setdomainname.S
+++ b/libc/arch-arm/syscalls/setdomainname.S
@@ -4,9 +4,11 @@
 
 ENTRY(setdomainname)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_setdomainname
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/setfsgid.S b/libc/arch-arm/syscalls/setfsgid.S
index f677a94..2f0f08c 100644
--- a/libc/arch-arm/syscalls/setfsgid.S
+++ b/libc/arch-arm/syscalls/setfsgid.S
@@ -4,9 +4,11 @@
 
 ENTRY(setfsgid)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_setfsgid
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/setfsuid.S b/libc/arch-arm/syscalls/setfsuid.S
index 5d27a4d..ce663e0 100644
--- a/libc/arch-arm/syscalls/setfsuid.S
+++ b/libc/arch-arm/syscalls/setfsuid.S
@@ -4,9 +4,11 @@
 
 ENTRY(setfsuid)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_setfsuid
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/setgid.S b/libc/arch-arm/syscalls/setgid.S
index d9b2b88..6f1cbed 100644
--- a/libc/arch-arm/syscalls/setgid.S
+++ b/libc/arch-arm/syscalls/setgid.S
@@ -4,9 +4,11 @@
 
 ENTRY(setgid)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_setgid32
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/setgroups.S b/libc/arch-arm/syscalls/setgroups.S
index 169de73..1fb494c 100644
--- a/libc/arch-arm/syscalls/setgroups.S
+++ b/libc/arch-arm/syscalls/setgroups.S
@@ -4,9 +4,11 @@
 
 ENTRY(setgroups)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_setgroups32
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/sethostname.S b/libc/arch-arm/syscalls/sethostname.S
index 0a98fd3..c4c2db5 100644
--- a/libc/arch-arm/syscalls/sethostname.S
+++ b/libc/arch-arm/syscalls/sethostname.S
@@ -4,9 +4,11 @@
 
 ENTRY(sethostname)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_sethostname
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/setitimer.S b/libc/arch-arm/syscalls/setitimer.S
index 31b277b..511a5d1 100644
--- a/libc/arch-arm/syscalls/setitimer.S
+++ b/libc/arch-arm/syscalls/setitimer.S
@@ -4,9 +4,11 @@
 
 ENTRY(setitimer)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_setitimer
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/setns.S b/libc/arch-arm/syscalls/setns.S
index 59203ef..b1902dc 100644
--- a/libc/arch-arm/syscalls/setns.S
+++ b/libc/arch-arm/syscalls/setns.S
@@ -4,9 +4,11 @@
 
 ENTRY(setns)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_setns
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/setpgid.S b/libc/arch-arm/syscalls/setpgid.S
index 4a91520..fe05fc9 100644
--- a/libc/arch-arm/syscalls/setpgid.S
+++ b/libc/arch-arm/syscalls/setpgid.S
@@ -4,9 +4,11 @@
 
 ENTRY(setpgid)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_setpgid
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/setpriority.S b/libc/arch-arm/syscalls/setpriority.S
index 2053ce1..960eee0 100644
--- a/libc/arch-arm/syscalls/setpriority.S
+++ b/libc/arch-arm/syscalls/setpriority.S
@@ -4,9 +4,11 @@
 
 ENTRY(setpriority)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_setpriority
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/setregid.S b/libc/arch-arm/syscalls/setregid.S
index f1bdc60..0b5f444 100644
--- a/libc/arch-arm/syscalls/setregid.S
+++ b/libc/arch-arm/syscalls/setregid.S
@@ -4,9 +4,11 @@
 
 ENTRY(setregid)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_setregid32
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/setresgid.S b/libc/arch-arm/syscalls/setresgid.S
index 9b8968a..64677d3 100644
--- a/libc/arch-arm/syscalls/setresgid.S
+++ b/libc/arch-arm/syscalls/setresgid.S
@@ -4,9 +4,11 @@
 
 ENTRY(setresgid)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_setresgid32
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/setresuid.S b/libc/arch-arm/syscalls/setresuid.S
index c26a955..e3888f6 100644
--- a/libc/arch-arm/syscalls/setresuid.S
+++ b/libc/arch-arm/syscalls/setresuid.S
@@ -4,9 +4,11 @@
 
 ENTRY(setresuid)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_setresuid32
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/setreuid.S b/libc/arch-arm/syscalls/setreuid.S
index 796191a..15c2665 100644
--- a/libc/arch-arm/syscalls/setreuid.S
+++ b/libc/arch-arm/syscalls/setreuid.S
@@ -4,9 +4,11 @@
 
 ENTRY(setreuid)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_setreuid32
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/setrlimit.S b/libc/arch-arm/syscalls/setrlimit.S
index c87b21b..b9014eb 100644
--- a/libc/arch-arm/syscalls/setrlimit.S
+++ b/libc/arch-arm/syscalls/setrlimit.S
@@ -4,9 +4,11 @@
 
 ENTRY(setrlimit)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_setrlimit
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/setsid.S b/libc/arch-arm/syscalls/setsid.S
index 83bda1b..fb71474 100644
--- a/libc/arch-arm/syscalls/setsid.S
+++ b/libc/arch-arm/syscalls/setsid.S
@@ -4,9 +4,11 @@
 
 ENTRY(setsid)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_setsid
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/settimeofday.S b/libc/arch-arm/syscalls/settimeofday.S
index 5763f40..00dfdeb 100644
--- a/libc/arch-arm/syscalls/settimeofday.S
+++ b/libc/arch-arm/syscalls/settimeofday.S
@@ -4,9 +4,11 @@
 
 ENTRY(settimeofday)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_settimeofday
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/setuid.S b/libc/arch-arm/syscalls/setuid.S
index 55b349c..447ed1b 100644
--- a/libc/arch-arm/syscalls/setuid.S
+++ b/libc/arch-arm/syscalls/setuid.S
@@ -4,9 +4,11 @@
 
 ENTRY(setuid)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_setuid32
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/shutdown.S b/libc/arch-arm/syscalls/shutdown.S
index 889934a..51ed0cf 100644
--- a/libc/arch-arm/syscalls/shutdown.S
+++ b/libc/arch-arm/syscalls/shutdown.S
@@ -4,9 +4,11 @@
 
 ENTRY(shutdown)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_shutdown
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/sigaltstack.S b/libc/arch-arm/syscalls/sigaltstack.S
index b61b25d..2f97800 100644
--- a/libc/arch-arm/syscalls/sigaltstack.S
+++ b/libc/arch-arm/syscalls/sigaltstack.S
@@ -4,9 +4,11 @@
 
 ENTRY(sigaltstack)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_sigaltstack
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/socketpair.S b/libc/arch-arm/syscalls/socketpair.S
index f3c8a4b..e537235 100644
--- a/libc/arch-arm/syscalls/socketpair.S
+++ b/libc/arch-arm/syscalls/socketpair.S
@@ -4,9 +4,11 @@
 
 ENTRY(socketpair)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_socketpair
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/swapoff.S b/libc/arch-arm/syscalls/swapoff.S
index a7aaa82..25832ef 100644
--- a/libc/arch-arm/syscalls/swapoff.S
+++ b/libc/arch-arm/syscalls/swapoff.S
@@ -4,9 +4,11 @@
 
 ENTRY(swapoff)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_swapoff
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/swapon.S b/libc/arch-arm/syscalls/swapon.S
index 6ea93c3..df4c71e 100644
--- a/libc/arch-arm/syscalls/swapon.S
+++ b/libc/arch-arm/syscalls/swapon.S
@@ -4,9 +4,11 @@
 
 ENTRY(swapon)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_swapon
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/symlinkat.S b/libc/arch-arm/syscalls/symlinkat.S
index d330a54..ec2ee4f 100644
--- a/libc/arch-arm/syscalls/symlinkat.S
+++ b/libc/arch-arm/syscalls/symlinkat.S
@@ -4,9 +4,11 @@
 
 ENTRY(symlinkat)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_symlinkat
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/sync.S b/libc/arch-arm/syscalls/sync.S
index 48ecfc0..b73dcaa 100644
--- a/libc/arch-arm/syscalls/sync.S
+++ b/libc/arch-arm/syscalls/sync.S
@@ -4,9 +4,11 @@
 
 ENTRY(sync)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_sync
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/sysinfo.S b/libc/arch-arm/syscalls/sysinfo.S
index 709478e..1584ea4 100644
--- a/libc/arch-arm/syscalls/sysinfo.S
+++ b/libc/arch-arm/syscalls/sysinfo.S
@@ -4,9 +4,11 @@
 
 ENTRY(sysinfo)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_sysinfo
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/tee.S b/libc/arch-arm/syscalls/tee.S
index a019c00..efd12ca 100644
--- a/libc/arch-arm/syscalls/tee.S
+++ b/libc/arch-arm/syscalls/tee.S
@@ -4,9 +4,11 @@
 
 ENTRY(tee)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_tee
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/tgkill.S b/libc/arch-arm/syscalls/tgkill.S
index 2068465..43fe62c 100644
--- a/libc/arch-arm/syscalls/tgkill.S
+++ b/libc/arch-arm/syscalls/tgkill.S
@@ -4,9 +4,11 @@
 
 ENTRY(tgkill)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_tgkill
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/timerfd_create.S b/libc/arch-arm/syscalls/timerfd_create.S
index 89a80cd..4aa3107 100644
--- a/libc/arch-arm/syscalls/timerfd_create.S
+++ b/libc/arch-arm/syscalls/timerfd_create.S
@@ -4,9 +4,11 @@
 
 ENTRY(timerfd_create)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_timerfd_create
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/timerfd_gettime.S b/libc/arch-arm/syscalls/timerfd_gettime.S
index 4a7df76..6ae93e4 100644
--- a/libc/arch-arm/syscalls/timerfd_gettime.S
+++ b/libc/arch-arm/syscalls/timerfd_gettime.S
@@ -4,9 +4,11 @@
 
 ENTRY(timerfd_gettime)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_timerfd_gettime
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/timerfd_settime.S b/libc/arch-arm/syscalls/timerfd_settime.S
index 2e0fe93..2dd4aac 100644
--- a/libc/arch-arm/syscalls/timerfd_settime.S
+++ b/libc/arch-arm/syscalls/timerfd_settime.S
@@ -4,9 +4,11 @@
 
 ENTRY(timerfd_settime)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_timerfd_settime
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/times.S b/libc/arch-arm/syscalls/times.S
index 289c185..1ff636d 100644
--- a/libc/arch-arm/syscalls/times.S
+++ b/libc/arch-arm/syscalls/times.S
@@ -4,9 +4,11 @@
 
 ENTRY(times)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_times
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/truncate.S b/libc/arch-arm/syscalls/truncate.S
index bb33beb..0bee4d2 100644
--- a/libc/arch-arm/syscalls/truncate.S
+++ b/libc/arch-arm/syscalls/truncate.S
@@ -4,9 +4,11 @@
 
 ENTRY(truncate)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_truncate
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/truncate64.S b/libc/arch-arm/syscalls/truncate64.S
index 9cafbb5..74e9eb2 100644
--- a/libc/arch-arm/syscalls/truncate64.S
+++ b/libc/arch-arm/syscalls/truncate64.S
@@ -4,9 +4,11 @@
 
 ENTRY(truncate64)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_truncate64
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/umask.S b/libc/arch-arm/syscalls/umask.S
index 5dc4461..ca3e058 100644
--- a/libc/arch-arm/syscalls/umask.S
+++ b/libc/arch-arm/syscalls/umask.S
@@ -4,9 +4,11 @@
 
 ENTRY(umask)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_umask
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/umount2.S b/libc/arch-arm/syscalls/umount2.S
index 435eda4..6e1ba32 100644
--- a/libc/arch-arm/syscalls/umount2.S
+++ b/libc/arch-arm/syscalls/umount2.S
@@ -4,9 +4,11 @@
 
 ENTRY(umount2)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_umount2
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/uname.S b/libc/arch-arm/syscalls/uname.S
index 8af6123..4f2b8a20 100644
--- a/libc/arch-arm/syscalls/uname.S
+++ b/libc/arch-arm/syscalls/uname.S
@@ -4,9 +4,11 @@
 
 ENTRY(uname)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_uname
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/unlinkat.S b/libc/arch-arm/syscalls/unlinkat.S
index 96257e6..ac7bfae 100644
--- a/libc/arch-arm/syscalls/unlinkat.S
+++ b/libc/arch-arm/syscalls/unlinkat.S
@@ -4,9 +4,11 @@
 
 ENTRY(unlinkat)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_unlinkat
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/unshare.S b/libc/arch-arm/syscalls/unshare.S
index 8054171..4558a60 100644
--- a/libc/arch-arm/syscalls/unshare.S
+++ b/libc/arch-arm/syscalls/unshare.S
@@ -4,9 +4,11 @@
 
 ENTRY(unshare)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_unshare
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/utimensat.S b/libc/arch-arm/syscalls/utimensat.S
index f3c2fa2..9524507 100644
--- a/libc/arch-arm/syscalls/utimensat.S
+++ b/libc/arch-arm/syscalls/utimensat.S
@@ -4,9 +4,11 @@
 
 ENTRY(utimensat)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_utimensat
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/vmsplice.S b/libc/arch-arm/syscalls/vmsplice.S
index cc12ca5..90ab8b4 100644
--- a/libc/arch-arm/syscalls/vmsplice.S
+++ b/libc/arch-arm/syscalls/vmsplice.S
@@ -4,9 +4,11 @@
 
 ENTRY(vmsplice)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_vmsplice
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/wait4.S b/libc/arch-arm/syscalls/wait4.S
index 26a4929..40bb5a5 100644
--- a/libc/arch-arm/syscalls/wait4.S
+++ b/libc/arch-arm/syscalls/wait4.S
@@ -4,9 +4,11 @@
 
 ENTRY(wait4)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_wait4
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/write.S b/libc/arch-arm/syscalls/write.S
index bf89d7f..4abbe6b 100644
--- a/libc/arch-arm/syscalls/write.S
+++ b/libc/arch-arm/syscalls/write.S
@@ -4,9 +4,11 @@
 
 ENTRY(write)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_write
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/arch-arm/syscalls/writev.S b/libc/arch-arm/syscalls/writev.S
index 15b5275..3103237 100644
--- a/libc/arch-arm/syscalls/writev.S
+++ b/libc/arch-arm/syscalls/writev.S
@@ -4,9 +4,11 @@
 
 ENTRY(writev)
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =__NR_writev
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0
diff --git a/libc/tools/gensyscalls.py b/libc/tools/gensyscalls.py
index f7785d6..04ccf39 100755
--- a/libc/tools/gensyscalls.py
+++ b/libc/tools/gensyscalls.py
@@ -62,9 +62,11 @@
 
 arm_eabi_call_default = syscall_stub_header + """\
     mov     ip, r7
+    .cfi_register r7, ip
     ldr     r7, =%(__NR_name)s
     swi     #0
     mov     r7, ip
+    .cfi_restore r7
     cmn     r0, #(MAX_ERRNO + 1)
     bxls    lr
     neg     r0, r0