Merge "Update all debug directives."
diff --git a/libc/arch-arm/cortex-a15/bionic/__strcat_chk.S b/libc/arch-arm/cortex-a15/bionic/__strcat_chk.S
index 08dc78a..4b125c8 100644
--- a/libc/arch-arm/cortex-a15/bionic/__strcat_chk.S
+++ b/libc/arch-arm/cortex-a15/bionic/__strcat_chk.S
@@ -40,14 +40,16 @@
ENTRY(__strcat_chk)
.cfi_startproc
pld [r0, #0]
+ .save {r0, lr}
push {r0, lr}
.cfi_def_cfa_offset 8
.cfi_rel_offset r0, 0
.cfi_rel_offset lr, 4
+ .save {r4, r5}
push {r4, r5}
.cfi_adjust_cfa_offset 8
.cfi_rel_offset r4, 0
- .cfi_rel_offset r5, 0
+ .cfi_rel_offset r5, 4
mov lr, r2
@@ -185,6 +187,7 @@
pld [r1, #64]
mov r2, r4
add r0, r0, r3
+ .pad #-8
pop {r4, r5}
.cfi_adjust_cfa_offset -8
.cfi_restore r4
diff --git a/libc/arch-arm/cortex-a15/bionic/__strcpy_chk.S b/libc/arch-arm/cortex-a15/bionic/__strcpy_chk.S
index 9fde590..a045816 100644
--- a/libc/arch-arm/cortex-a15/bionic/__strcpy_chk.S
+++ b/libc/arch-arm/cortex-a15/bionic/__strcpy_chk.S
@@ -39,6 +39,7 @@
ENTRY(__strcpy_chk)
.cfi_startproc
pld [r0, #0]
+ .save {r0, lr}
push {r0, lr}
.cfi_def_cfa_offset 8
.cfi_rel_offset r0, 0
diff --git a/libc/arch-arm/cortex-a15/bionic/memcpy.S b/libc/arch-arm/cortex-a15/bionic/memcpy.S
index 8052d62..16881d4 100644
--- a/libc/arch-arm/cortex-a15/bionic/memcpy.S
+++ b/libc/arch-arm/cortex-a15/bionic/memcpy.S
@@ -74,18 +74,22 @@
ENTRY(memcpy)
.cfi_startproc
pld [r1, #64]
+ .save {r0, lr}
push {r0, lr}
.cfi_def_cfa_offset 8
.cfi_rel_offset r0, 0
.cfi_rel_offset lr, 4
#include "memcpy_base.S"
+
.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
@@ -100,6 +104,7 @@
error_message:
.word error_string-(1b+8)
.cfi_endproc
+ .fnend
.data
error_string:
diff --git a/libc/arch-arm/cortex-a15/bionic/memset.S b/libc/arch-arm/cortex-a15/bionic/memset.S
index 5593be6..b5fc6ba 100644
--- a/libc/arch-arm/cortex-a15/bionic/memset.S
+++ b/libc/arch-arm/cortex-a15/bionic/memset.S
@@ -45,6 +45,7 @@
bls .L_done
// Preserve lr for backtrace.
+ .save {lr}
push {lr}
.cfi_def_cfa_offset 4
.cfi_rel_offset lr, 0
@@ -73,6 +74,7 @@
ENTRY(memset)
.cfi_startproc
+ .save {r0}
stmfd sp!, {r0}
.cfi_def_cfa_offset 4
.cfi_rel_offset r0, 0
diff --git a/libc/arch-arm/cortex-a15/bionic/strcmp.S b/libc/arch-arm/cortex-a15/bionic/strcmp.S
index 7aff7c4..2719bf7 100644
--- a/libc/arch-arm/cortex-a15/bionic/strcmp.S
+++ b/libc/arch-arm/cortex-a15/bionic/strcmp.S
@@ -122,9 +122,15 @@
.macro init
/* Macro to save temporary registers and prepare magic values. */
+ .save {r4-r7}
subs sp, sp, #16
+ .cfi_def_cfa_offset 16
strd r4, r5, [sp, #8]
+ .cfi_rel_offset r4, 0
+ .cfi_rel_offset r5, 4
strd r6, r7, [sp]
+ .cfi_rel_offset r6, 8
+ .cfi_rel_offset r7, 12
mvn r6, #0 /* all F */
mov r7, #0 /* all 0 */
.endm /* init */
@@ -165,6 +171,7 @@
#endif /* not __ARMEB__ */
.endm /* setup_return */
+ .cfi_startproc
pld [r0, #0]
pld [r1, #0]
@@ -348,7 +355,13 @@
/* Restore temporaries early, before computing the return value. */
ldrd r6, r7, [sp]
ldrd r4, r5, [sp, #8]
+ .pad #-16
adds sp, sp, #16
+ .cfi_def_cfa_offset 0
+ .cfi_restore r4
+ .cfi_restore r5
+ .cfi_restore r6
+ .cfi_restore r7
/* There is a zero or a different byte between r1 and r2. */
/* r0 contains a mask of all-zero bytes in r1. */
@@ -374,4 +387,5 @@
it ls
sbcls r0, r0, r0
bx lr
+ .cfi_endproc
END(strcmp)
diff --git a/libc/arch-arm/cortex-a9/bionic/__strcat_chk.S b/libc/arch-arm/cortex-a9/bionic/__strcat_chk.S
index 3f86636..1329c16 100644
--- a/libc/arch-arm/cortex-a9/bionic/__strcat_chk.S
+++ b/libc/arch-arm/cortex-a9/bionic/__strcat_chk.S
@@ -40,10 +40,12 @@
ENTRY(__strcat_chk)
.cfi_startproc
pld [r0, #0]
+ .save {r0, lr}
push {r0, lr}
.cfi_def_cfa_offset 8
.cfi_rel_offset r0, 0
.cfi_rel_offset lr, 4
+ .save {r4, r5}
push {r4, r5}
.cfi_adjust_cfa_offset 8
.cfi_rel_offset r4, 0
@@ -188,6 +190,7 @@
pld [r1, #64]
mov r2, r4
add r0, r0, r3
+ .pad #-8
pop {r4, r5}
.cfi_adjust_cfa_offset -8
.cfi_restore r4
diff --git a/libc/arch-arm/cortex-a9/bionic/__strcpy_chk.S b/libc/arch-arm/cortex-a9/bionic/__strcpy_chk.S
index 787b057..b697c1f 100644
--- a/libc/arch-arm/cortex-a9/bionic/__strcpy_chk.S
+++ b/libc/arch-arm/cortex-a9/bionic/__strcpy_chk.S
@@ -39,6 +39,7 @@
ENTRY(__strcpy_chk)
.cfi_startproc
pld [r0, #0]
+ .save {r0, lr}
push {r0, lr}
.cfi_def_cfa_offset 8
.cfi_rel_offset r0, 0
diff --git a/libc/arch-arm/cortex-a9/bionic/memcpy.S b/libc/arch-arm/cortex-a9/bionic/memcpy.S
index e7beb25..ab3b0a0 100644
--- a/libc/arch-arm/cortex-a9/bionic/memcpy.S
+++ b/libc/arch-arm/cortex-a9/bionic/memcpy.S
@@ -52,6 +52,7 @@
ENTRY(memcpy)
.cfi_startproc
pld [r1, #0]
+ .save {r0, lr}
stmfd sp!, {r0, lr}
.cfi_def_cfa_offset 8
.cfi_rel_offset r0, 0
diff --git a/libc/arch-arm/cortex-a9/bionic/memcpy_base.S b/libc/arch-arm/cortex-a9/bionic/memcpy_base.S
index 46b5a93..088d29e 100644
--- a/libc/arch-arm/cortex-a9/bionic/memcpy_base.S
+++ b/libc/arch-arm/cortex-a9/bionic/memcpy_base.S
@@ -133,7 +133,14 @@
bx lr
11:
/* Simple arm-only copy loop to handle aligned copy operations */
- stmfd sp!, {r4, r5, r6, r7, r8}
+ .save {r4-r8}
+ stmfd sp!, {r4-r8}
+ .cfi_def_cfa_offset 20
+ .cfi_rel_offset r4, 0
+ .cfi_rel_offset r5, 4
+ .cfi_rel_offset r6, 8
+ .cfi_rel_offset r7, 12
+ .cfi_rel_offset r8, 16
pld [r1, #(32 * 4)]
/* Check alignment */
diff --git a/libc/arch-arm/cortex-a9/bionic/memset.S b/libc/arch-arm/cortex-a9/bionic/memset.S
index bc25a3e..a7876fb 100644
--- a/libc/arch-arm/cortex-a9/bionic/memset.S
+++ b/libc/arch-arm/cortex-a9/bionic/memset.S
@@ -43,6 +43,7 @@
bls .L_done
// Preserve lr for backtrace.
+ .save {lr}
push {lr}
.cfi_def_cfa_offset 4
.cfi_rel_offset lr, 0
@@ -77,6 +78,7 @@
cmp r2, #132
bhi 11f
+ .save {r0}
stmfd sp!, {r0}
.cfi_def_cfa_offset 4
.cfi_rel_offset r0, 0
@@ -117,6 +119,7 @@
* offset = (4-(src&3))&3 = -src & 3
*/
+ .save {r0, r4-r7, lr}
stmfd sp!, {r0, r4-r7, lr}
.cfi_def_cfa_offset 24
.cfi_rel_offset r0, 0
diff --git a/libc/arch-arm/cortex-a9/bionic/strcmp.S b/libc/arch-arm/cortex-a9/bionic/strcmp.S
index 9597d0d..a84c047 100644
--- a/libc/arch-arm/cortex-a9/bionic/strcmp.S
+++ b/libc/arch-arm/cortex-a9/bionic/strcmp.S
@@ -122,9 +122,15 @@
.macro init
/* Macro to save temporary registers and prepare magic values. */
+ .save {r4-r7}
subs sp, sp, #16
+ .cfi_def_cfa_offset 16
strd r4, r5, [sp, #8]
+ .cfi_rel_offset r4, 0
+ .cfi_rel_offset r5, 4
strd r6, r7, [sp]
+ .cfi_rel_offset r6, 8
+ .cfi_rel_offset r7, 12
mvn r6, #0 /* all F */
mov r7, #0 /* all 0 */
.endm /* init */
@@ -165,6 +171,7 @@
#endif /* not __ARMEB__ */
.endm /* setup_return */
+ .cfi_startproc
pld [r0, #0]
pld [r1, #0]
@@ -334,7 +341,13 @@
/* Restore temporaries early, before computing the return value. */
ldrd r6, r7, [sp]
ldrd r4, r5, [sp, #8]
+ .pad #-16
adds sp, sp, #16
+ .cfi_def_cfa_offset 0
+ .cfi_restore r4
+ .cfi_restore r5
+ .cfi_restore r6
+ .cfi_restore r7
/* There is a zero or a different byte between r1 and r2. */
/* r0 contains a mask of all-zero bytes in r1. */
@@ -519,7 +532,13 @@
/* Restore registers and stack. */
ldrd r6, r7, [sp]
ldrd r4, r5, [sp, #8]
+ .pad #-16
adds sp, sp, #16
+ .cfi_def_cfa_offset 0
+ .cfi_restore r4
+ .cfi_restore r5
+ .cfi_restore r6
+ .cfi_restore r7
bx lr
@@ -538,7 +557,14 @@
/* Restore registers and stack. */
ldrd r6, r7, [sp]
ldrd r4, r5, [sp, #8]
+ .pad #-16
adds sp, sp, #16
+ .cfi_def_cfa_offset 0
+ .cfi_restore r4
+ .cfi_restore r5
+ .cfi_restore r6
+ .cfi_restore r7
bx lr
+ .cfi_endproc
END(strcmp)
diff --git a/libc/arch-arm/krait/bionic/__strcat_chk.S b/libc/arch-arm/krait/bionic/__strcat_chk.S
index 4516d30..4b125c8 100644
--- a/libc/arch-arm/krait/bionic/__strcat_chk.S
+++ b/libc/arch-arm/krait/bionic/__strcat_chk.S
@@ -40,10 +40,12 @@
ENTRY(__strcat_chk)
.cfi_startproc
pld [r0, #0]
+ .save {r0, lr}
push {r0, lr}
.cfi_def_cfa_offset 8
.cfi_rel_offset r0, 0
.cfi_rel_offset lr, 4
+ .save {r4, r5}
push {r4, r5}
.cfi_adjust_cfa_offset 8
.cfi_rel_offset r4, 0
@@ -185,6 +187,7 @@
pld [r1, #64]
mov r2, r4
add r0, r0, r3
+ .pad #-8
pop {r4, r5}
.cfi_adjust_cfa_offset -8
.cfi_restore r4
diff --git a/libc/arch-arm/krait/bionic/__strcpy_chk.S b/libc/arch-arm/krait/bionic/__strcpy_chk.S
index c57268c..d5e1db6 100644
--- a/libc/arch-arm/krait/bionic/__strcpy_chk.S
+++ b/libc/arch-arm/krait/bionic/__strcpy_chk.S
@@ -39,6 +39,7 @@
ENTRY(__strcpy_chk)
.cfi_startproc
pld [r0, #0]
+ .save {r0, lr}
push {r0, lr}
.cfi_def_cfa_offset 8
.cfi_rel_offset r0, 0
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:
diff --git a/libc/arch-arm/krait/bionic/memset.S b/libc/arch-arm/krait/bionic/memset.S
index 1566132..005dfd8 100644
--- a/libc/arch-arm/krait/bionic/memset.S
+++ b/libc/arch-arm/krait/bionic/memset.S
@@ -44,6 +44,7 @@
bls .L_done
// Preserve lr for backtrace.
+ .save {lr}
push {lr}
.cfi_def_cfa_offset 4
.cfi_rel_offset lr, 0
@@ -74,6 +75,7 @@
/* memset() returns its first argument. */
ENTRY(memset)
.cfi_startproc
+ .save {r0}
stmfd sp!, {r0}
.cfi_def_cfa_offset 4
.cfi_rel_offset r0, 0
diff --git a/libc/arch-arm/krait/bionic/strcmp.S b/libc/arch-arm/krait/bionic/strcmp.S
index d614b9d..f26aaf1 100644
--- a/libc/arch-arm/krait/bionic/strcmp.S
+++ b/libc/arch-arm/krait/bionic/strcmp.S
@@ -122,9 +122,15 @@
.macro init
/* Macro to save temporary registers and prepare magic values. */
+ .save {r4-r7}
subs sp, sp, #16
+ .cfi_def_cfa_offset 16
strd r4, r5, [sp, #8]
+ .cfi_rel_offset r4, 0
+ .cfi_rel_offset r5, 4
strd r6, r7, [sp]
+ .cfi_rel_offset r6, 8
+ .cfi_rel_offset r7, 12
mvn r6, #0 /* all F */
mov r7, #0 /* all 0 */
.endm /* init */
@@ -165,6 +171,7 @@
#endif /* not __ARMEB__ */
.endm /* setup_return */
+ .cfi_startproc
pld [r0, #0]
pld [r1, #0]
@@ -347,7 +354,13 @@
/* Restore temporaries early, before computing the return value. */
ldrd r6, r7, [sp]
ldrd r4, r5, [sp, #8]
+ .pad #-16
adds sp, sp, #16
+ .cfi_def_cfa_offset 0
+ .cfi_restore r4
+ .cfi_restore r5
+ .cfi_restore r6
+ .cfi_restore r7
/* There is a zero or a different byte between r1 and r2. */
/* r0 contains a mask of all-zero bytes in r1. */
@@ -452,7 +465,13 @@
/* Restore registers and stack. */
ldrd r6, r7, [sp]
ldrd r4, r5, [sp, #8]
+ .pad #-16
adds sp, sp, #16
+ .cfi_def_cfa_offset 0
+ .cfi_restore r4
+ .cfi_restore r5
+ .cfi_restore r6
+ .cfi_restore r7
bx lr
@@ -471,7 +490,14 @@
/* Restore registers and stack. */
ldrd r6, r7, [sp]
ldrd r4, r5, [sp, #8]
+ .pad #-16
adds sp, sp, #16
+ .cfi_def_cfa_offset 0
+ .cfi_restore r4
+ .cfi_restore r5
+ .cfi_restore r6
+ .cfi_restore r7
bx lr
+ .cfi_endproc
END(strcmp)