Fix cfi directives for memmove/strlcpy.

Bug: 27227225
Change-Id: I47ca82daaadb3ec24cefc3c9aa4df7ed1798aced
diff --git a/libc/arch-x86/atom/string/ssse3-strcpy-atom.S b/libc/arch-x86/atom/string/ssse3-strcpy-atom.S
index 30254ca..3690b0d 100644
--- a/libc/arch-x86/atom/string/ssse3-strcpy-atom.S
+++ b/libc/arch-x86/atom/string/ssse3-strcpy-atom.S
@@ -3147,7 +3147,7 @@
 #endif
 
 #ifdef USE_AS_STRNCPY
-# ifndef USE_AS_STRCAT
+# if !defined(USE_AS_STRCAT) && !defined(USE_AS_STRLCPY)
 	CFI_PUSH (%esi)
 	CFI_PUSH (%edi)
 # endif
diff --git a/libc/arch-x86/silvermont/string/sse2-memmove-slm.S b/libc/arch-x86/silvermont/string/sse2-memmove-slm.S
index b971f0b..6a8f067 100644
--- a/libc/arch-x86/silvermont/string/sse2-memmove-slm.S
+++ b/libc/arch-x86/silvermont/string/sse2-memmove-slm.S
@@ -327,6 +327,9 @@
 	movq	%xmm1, -8(%edx, %ecx)
 	jmp	L(mm_return)
 
+	CFI_POP (%edi)
+	CFI_POP (%esi)
+
 L(mm_recalc_len):
 /* Compute in %ecx how many bytes are left to copy after
 	the main loop stops.  */