Update all debug directives.

The libcorkscrew stack unwinder does not understand cfi directives,
so add .save directives so that it can function properly.

Also add the directives in to strcmp.S and fix a missing set of
directives in cortex-a9/memcpy_base.S.

Bug: 10345269

Merge from internal master.

(cherry-picked from 5f7ccea3ffab05aeceecb85c821003cf580630d3)

Change-Id: If48a216203216a643807f5d61906015984987189
diff --git a/libc/arch-arm/krait/bionic/memcpy.S b/libc/arch-arm/krait/bionic/memcpy.S
index 75b2395..3b4fca4 100644
--- a/libc/arch-arm/krait/bionic/memcpy.S
+++ b/libc/arch-arm/krait/bionic/memcpy.S
@@ -55,6 +55,7 @@
 ENTRY(memcpy)
         .cfi_startproc
         pld     [r1, #64]
+        .save   {r0, lr}
         stmfd   sp!, {r0, lr}
         .cfi_def_cfa_offset 8
         .cfi_rel_offset r0, 0
@@ -64,9 +65,11 @@
         .cfi_endproc
 END(memcpy)
 
+        .fnstart
         .cfi_startproc
 __memcpy_chk_fail:
         // Preserve lr for backtrace.
+        .save   {lr}
         push    {lr}
         .cfi_def_cfa_offset 4
         .cfi_rel_offset lr, 0
@@ -81,6 +84,7 @@
 error_message:
         .word   error_string-(1b+4)
         .cfi_endproc
+        .fnend
 
         .data
 error_string: