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 Change-Id: I043f493e0bb6c45bd3f4906fbe1d9f628815b015
This commit is contained in:
parent
f0c3d90913
commit
5f7ccea3ff
@ -40,14 +40,16 @@
|
|||||||
ENTRY(__strcat_chk)
|
ENTRY(__strcat_chk)
|
||||||
.cfi_startproc
|
.cfi_startproc
|
||||||
pld [r0, #0]
|
pld [r0, #0]
|
||||||
|
.save {r0, lr}
|
||||||
push {r0, lr}
|
push {r0, lr}
|
||||||
.cfi_def_cfa_offset 8
|
.cfi_def_cfa_offset 8
|
||||||
.cfi_rel_offset r0, 0
|
.cfi_rel_offset r0, 0
|
||||||
.cfi_rel_offset lr, 4
|
.cfi_rel_offset lr, 4
|
||||||
|
.save {r4, r5}
|
||||||
push {r4, r5}
|
push {r4, r5}
|
||||||
.cfi_adjust_cfa_offset 8
|
.cfi_adjust_cfa_offset 8
|
||||||
.cfi_rel_offset r4, 0
|
.cfi_rel_offset r4, 0
|
||||||
.cfi_rel_offset r5, 0
|
.cfi_rel_offset r5, 4
|
||||||
|
|
||||||
mov lr, r2
|
mov lr, r2
|
||||||
|
|
||||||
@ -185,6 +187,7 @@ ENTRY(__strcat_chk)
|
|||||||
pld [r1, #64]
|
pld [r1, #64]
|
||||||
mov r2, r4
|
mov r2, r4
|
||||||
add r0, r0, r3
|
add r0, r0, r3
|
||||||
|
.pad #-8
|
||||||
pop {r4, r5}
|
pop {r4, r5}
|
||||||
.cfi_adjust_cfa_offset -8
|
.cfi_adjust_cfa_offset -8
|
||||||
.cfi_restore r4
|
.cfi_restore r4
|
||||||
|
@ -39,6 +39,7 @@
|
|||||||
ENTRY(__strcpy_chk)
|
ENTRY(__strcpy_chk)
|
||||||
.cfi_startproc
|
.cfi_startproc
|
||||||
pld [r0, #0]
|
pld [r0, #0]
|
||||||
|
.save {r0, lr}
|
||||||
push {r0, lr}
|
push {r0, lr}
|
||||||
.cfi_def_cfa_offset 8
|
.cfi_def_cfa_offset 8
|
||||||
.cfi_rel_offset r0, 0
|
.cfi_rel_offset r0, 0
|
||||||
|
@ -74,18 +74,22 @@ END(__memcpy_chk)
|
|||||||
ENTRY(memcpy)
|
ENTRY(memcpy)
|
||||||
.cfi_startproc
|
.cfi_startproc
|
||||||
pld [r1, #64]
|
pld [r1, #64]
|
||||||
|
.save {r0, lr}
|
||||||
push {r0, lr}
|
push {r0, lr}
|
||||||
.cfi_def_cfa_offset 8
|
.cfi_def_cfa_offset 8
|
||||||
.cfi_rel_offset r0, 0
|
.cfi_rel_offset r0, 0
|
||||||
.cfi_rel_offset lr, 4
|
.cfi_rel_offset lr, 4
|
||||||
|
|
||||||
#include "memcpy_base.S"
|
#include "memcpy_base.S"
|
||||||
|
|
||||||
.cfi_endproc
|
.cfi_endproc
|
||||||
END(memcpy)
|
END(memcpy)
|
||||||
|
|
||||||
|
.fnstart
|
||||||
.cfi_startproc
|
.cfi_startproc
|
||||||
__memcpy_chk_fail:
|
__memcpy_chk_fail:
|
||||||
// Preserve lr for backtrace.
|
// Preserve lr for backtrace.
|
||||||
|
.save {lr}
|
||||||
push {lr}
|
push {lr}
|
||||||
.cfi_def_cfa_offset 4
|
.cfi_def_cfa_offset 4
|
||||||
.cfi_rel_offset lr, 0
|
.cfi_rel_offset lr, 0
|
||||||
@ -100,6 +104,7 @@ error_code:
|
|||||||
error_message:
|
error_message:
|
||||||
.word error_string-(1b+8)
|
.word error_string-(1b+8)
|
||||||
.cfi_endproc
|
.cfi_endproc
|
||||||
|
.fnend
|
||||||
|
|
||||||
.data
|
.data
|
||||||
error_string:
|
error_string:
|
||||||
|
@ -45,6 +45,7 @@ ENTRY(__memset_chk)
|
|||||||
bls .L_done
|
bls .L_done
|
||||||
|
|
||||||
// Preserve lr for backtrace.
|
// Preserve lr for backtrace.
|
||||||
|
.save {lr}
|
||||||
push {lr}
|
push {lr}
|
||||||
.cfi_def_cfa_offset 4
|
.cfi_def_cfa_offset 4
|
||||||
.cfi_rel_offset lr, 0
|
.cfi_rel_offset lr, 0
|
||||||
@ -73,6 +74,7 @@ END(bzero)
|
|||||||
|
|
||||||
ENTRY(memset)
|
ENTRY(memset)
|
||||||
.cfi_startproc
|
.cfi_startproc
|
||||||
|
.save {r0}
|
||||||
stmfd sp!, {r0}
|
stmfd sp!, {r0}
|
||||||
.cfi_def_cfa_offset 4
|
.cfi_def_cfa_offset 4
|
||||||
.cfi_rel_offset r0, 0
|
.cfi_rel_offset r0, 0
|
||||||
|
@ -122,9 +122,15 @@ ENTRY(strcmp)
|
|||||||
|
|
||||||
.macro init
|
.macro init
|
||||||
/* Macro to save temporary registers and prepare magic values. */
|
/* Macro to save temporary registers and prepare magic values. */
|
||||||
|
.save {r4-r7}
|
||||||
subs sp, sp, #16
|
subs sp, sp, #16
|
||||||
|
.cfi_def_cfa_offset 16
|
||||||
strd r4, r5, [sp, #8]
|
strd r4, r5, [sp, #8]
|
||||||
|
.cfi_rel_offset r4, 0
|
||||||
|
.cfi_rel_offset r5, 4
|
||||||
strd r6, r7, [sp]
|
strd r6, r7, [sp]
|
||||||
|
.cfi_rel_offset r6, 8
|
||||||
|
.cfi_rel_offset r7, 12
|
||||||
mvn r6, #0 /* all F */
|
mvn r6, #0 /* all F */
|
||||||
mov r7, #0 /* all 0 */
|
mov r7, #0 /* all 0 */
|
||||||
.endm /* init */
|
.endm /* init */
|
||||||
@ -165,6 +171,7 @@ ENTRY(strcmp)
|
|||||||
#endif /* not __ARMEB__ */
|
#endif /* not __ARMEB__ */
|
||||||
.endm /* setup_return */
|
.endm /* setup_return */
|
||||||
|
|
||||||
|
.cfi_startproc
|
||||||
pld [r0, #0]
|
pld [r0, #0]
|
||||||
pld [r1, #0]
|
pld [r1, #0]
|
||||||
|
|
||||||
@ -348,7 +355,13 @@ do_return:
|
|||||||
/* Restore temporaries early, before computing the return value. */
|
/* Restore temporaries early, before computing the return value. */
|
||||||
ldrd r6, r7, [sp]
|
ldrd r6, r7, [sp]
|
||||||
ldrd r4, r5, [sp, #8]
|
ldrd r4, r5, [sp, #8]
|
||||||
|
.pad #-16
|
||||||
adds sp, sp, #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. */
|
/* There is a zero or a different byte between r1 and r2. */
|
||||||
/* r0 contains a mask of all-zero bytes in r1. */
|
/* r0 contains a mask of all-zero bytes in r1. */
|
||||||
@ -374,4 +387,5 @@ compute_return_value:
|
|||||||
it ls
|
it ls
|
||||||
sbcls r0, r0, r0
|
sbcls r0, r0, r0
|
||||||
bx lr
|
bx lr
|
||||||
|
.cfi_endproc
|
||||||
END(strcmp)
|
END(strcmp)
|
||||||
|
@ -40,10 +40,12 @@
|
|||||||
ENTRY(__strcat_chk)
|
ENTRY(__strcat_chk)
|
||||||
.cfi_startproc
|
.cfi_startproc
|
||||||
pld [r0, #0]
|
pld [r0, #0]
|
||||||
|
.save {r0, lr}
|
||||||
push {r0, lr}
|
push {r0, lr}
|
||||||
.cfi_def_cfa_offset 8
|
.cfi_def_cfa_offset 8
|
||||||
.cfi_rel_offset r0, 0
|
.cfi_rel_offset r0, 0
|
||||||
.cfi_rel_offset lr, 4
|
.cfi_rel_offset lr, 4
|
||||||
|
.save {r4, r5}
|
||||||
push {r4, r5}
|
push {r4, r5}
|
||||||
.cfi_adjust_cfa_offset 8
|
.cfi_adjust_cfa_offset 8
|
||||||
.cfi_rel_offset r4, 0
|
.cfi_rel_offset r4, 0
|
||||||
@ -188,6 +190,7 @@ ENTRY(__strcat_chk)
|
|||||||
pld [r1, #64]
|
pld [r1, #64]
|
||||||
mov r2, r4
|
mov r2, r4
|
||||||
add r0, r0, r3
|
add r0, r0, r3
|
||||||
|
.pad #-8
|
||||||
pop {r4, r5}
|
pop {r4, r5}
|
||||||
.cfi_adjust_cfa_offset -8
|
.cfi_adjust_cfa_offset -8
|
||||||
.cfi_restore r4
|
.cfi_restore r4
|
||||||
|
@ -39,6 +39,7 @@
|
|||||||
ENTRY(__strcpy_chk)
|
ENTRY(__strcpy_chk)
|
||||||
.cfi_startproc
|
.cfi_startproc
|
||||||
pld [r0, #0]
|
pld [r0, #0]
|
||||||
|
.save {r0, lr}
|
||||||
push {r0, lr}
|
push {r0, lr}
|
||||||
.cfi_def_cfa_offset 8
|
.cfi_def_cfa_offset 8
|
||||||
.cfi_rel_offset r0, 0
|
.cfi_rel_offset r0, 0
|
||||||
|
@ -52,6 +52,7 @@ END(__memcpy_chk)
|
|||||||
ENTRY(memcpy)
|
ENTRY(memcpy)
|
||||||
.cfi_startproc
|
.cfi_startproc
|
||||||
pld [r1, #0]
|
pld [r1, #0]
|
||||||
|
.save {r0, lr}
|
||||||
stmfd sp!, {r0, lr}
|
stmfd sp!, {r0, lr}
|
||||||
.cfi_def_cfa_offset 8
|
.cfi_def_cfa_offset 8
|
||||||
.cfi_rel_offset r0, 0
|
.cfi_rel_offset r0, 0
|
||||||
|
@ -133,7 +133,14 @@
|
|||||||
bx lr
|
bx lr
|
||||||
11:
|
11:
|
||||||
/* Simple arm-only copy loop to handle aligned copy operations */
|
/* 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)]
|
pld [r1, #(32 * 4)]
|
||||||
|
|
||||||
/* Check alignment */
|
/* Check alignment */
|
||||||
|
@ -43,6 +43,7 @@ ENTRY(__memset_chk)
|
|||||||
bls .L_done
|
bls .L_done
|
||||||
|
|
||||||
// Preserve lr for backtrace.
|
// Preserve lr for backtrace.
|
||||||
|
.save {lr}
|
||||||
push {lr}
|
push {lr}
|
||||||
.cfi_def_cfa_offset 4
|
.cfi_def_cfa_offset 4
|
||||||
.cfi_rel_offset lr, 0
|
.cfi_rel_offset lr, 0
|
||||||
@ -77,6 +78,7 @@ ENTRY(memset)
|
|||||||
cmp r2, #132
|
cmp r2, #132
|
||||||
bhi 11f
|
bhi 11f
|
||||||
|
|
||||||
|
.save {r0}
|
||||||
stmfd sp!, {r0}
|
stmfd sp!, {r0}
|
||||||
.cfi_def_cfa_offset 4
|
.cfi_def_cfa_offset 4
|
||||||
.cfi_rel_offset r0, 0
|
.cfi_rel_offset r0, 0
|
||||||
@ -117,6 +119,7 @@ ENTRY(memset)
|
|||||||
* offset = (4-(src&3))&3 = -src & 3
|
* offset = (4-(src&3))&3 = -src & 3
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
.save {r0, r4-r7, lr}
|
||||||
stmfd sp!, {r0, r4-r7, lr}
|
stmfd sp!, {r0, r4-r7, lr}
|
||||||
.cfi_def_cfa_offset 24
|
.cfi_def_cfa_offset 24
|
||||||
.cfi_rel_offset r0, 0
|
.cfi_rel_offset r0, 0
|
||||||
|
@ -122,9 +122,15 @@ ENTRY(strcmp)
|
|||||||
|
|
||||||
.macro init
|
.macro init
|
||||||
/* Macro to save temporary registers and prepare magic values. */
|
/* Macro to save temporary registers and prepare magic values. */
|
||||||
|
.save {r4-r7}
|
||||||
subs sp, sp, #16
|
subs sp, sp, #16
|
||||||
|
.cfi_def_cfa_offset 16
|
||||||
strd r4, r5, [sp, #8]
|
strd r4, r5, [sp, #8]
|
||||||
|
.cfi_rel_offset r4, 0
|
||||||
|
.cfi_rel_offset r5, 4
|
||||||
strd r6, r7, [sp]
|
strd r6, r7, [sp]
|
||||||
|
.cfi_rel_offset r6, 8
|
||||||
|
.cfi_rel_offset r7, 12
|
||||||
mvn r6, #0 /* all F */
|
mvn r6, #0 /* all F */
|
||||||
mov r7, #0 /* all 0 */
|
mov r7, #0 /* all 0 */
|
||||||
.endm /* init */
|
.endm /* init */
|
||||||
@ -165,6 +171,7 @@ ENTRY(strcmp)
|
|||||||
#endif /* not __ARMEB__ */
|
#endif /* not __ARMEB__ */
|
||||||
.endm /* setup_return */
|
.endm /* setup_return */
|
||||||
|
|
||||||
|
.cfi_startproc
|
||||||
pld [r0, #0]
|
pld [r0, #0]
|
||||||
pld [r1, #0]
|
pld [r1, #0]
|
||||||
|
|
||||||
@ -334,7 +341,13 @@ do_return:
|
|||||||
/* Restore temporaries early, before computing the return value. */
|
/* Restore temporaries early, before computing the return value. */
|
||||||
ldrd r6, r7, [sp]
|
ldrd r6, r7, [sp]
|
||||||
ldrd r4, r5, [sp, #8]
|
ldrd r4, r5, [sp, #8]
|
||||||
|
.pad #-16
|
||||||
adds sp, sp, #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. */
|
/* There is a zero or a different byte between r1 and r2. */
|
||||||
/* r0 contains a mask of all-zero bytes in r1. */
|
/* r0 contains a mask of all-zero bytes in r1. */
|
||||||
@ -519,7 +532,13 @@ strcmp_unaligned:
|
|||||||
/* Restore registers and stack. */
|
/* Restore registers and stack. */
|
||||||
ldrd r6, r7, [sp]
|
ldrd r6, r7, [sp]
|
||||||
ldrd r4, r5, [sp, #8]
|
ldrd r4, r5, [sp, #8]
|
||||||
|
.pad #-16
|
||||||
adds sp, sp, #16
|
adds sp, sp, #16
|
||||||
|
.cfi_def_cfa_offset 0
|
||||||
|
.cfi_restore r4
|
||||||
|
.cfi_restore r5
|
||||||
|
.cfi_restore r6
|
||||||
|
.cfi_restore r7
|
||||||
|
|
||||||
bx lr
|
bx lr
|
||||||
|
|
||||||
@ -538,7 +557,14 @@ strcmp_unaligned:
|
|||||||
/* Restore registers and stack. */
|
/* Restore registers and stack. */
|
||||||
ldrd r6, r7, [sp]
|
ldrd r6, r7, [sp]
|
||||||
ldrd r4, r5, [sp, #8]
|
ldrd r4, r5, [sp, #8]
|
||||||
|
.pad #-16
|
||||||
adds sp, sp, #16
|
adds sp, sp, #16
|
||||||
|
.cfi_def_cfa_offset 0
|
||||||
|
.cfi_restore r4
|
||||||
|
.cfi_restore r5
|
||||||
|
.cfi_restore r6
|
||||||
|
.cfi_restore r7
|
||||||
|
|
||||||
bx lr
|
bx lr
|
||||||
|
.cfi_endproc
|
||||||
END(strcmp)
|
END(strcmp)
|
||||||
|
@ -40,10 +40,12 @@
|
|||||||
ENTRY(__strcat_chk)
|
ENTRY(__strcat_chk)
|
||||||
.cfi_startproc
|
.cfi_startproc
|
||||||
pld [r0, #0]
|
pld [r0, #0]
|
||||||
|
.save {r0, lr}
|
||||||
push {r0, lr}
|
push {r0, lr}
|
||||||
.cfi_def_cfa_offset 8
|
.cfi_def_cfa_offset 8
|
||||||
.cfi_rel_offset r0, 0
|
.cfi_rel_offset r0, 0
|
||||||
.cfi_rel_offset lr, 4
|
.cfi_rel_offset lr, 4
|
||||||
|
.save {r4, r5}
|
||||||
push {r4, r5}
|
push {r4, r5}
|
||||||
.cfi_adjust_cfa_offset 8
|
.cfi_adjust_cfa_offset 8
|
||||||
.cfi_rel_offset r4, 0
|
.cfi_rel_offset r4, 0
|
||||||
@ -185,6 +187,7 @@ ENTRY(__strcat_chk)
|
|||||||
pld [r1, #64]
|
pld [r1, #64]
|
||||||
mov r2, r4
|
mov r2, r4
|
||||||
add r0, r0, r3
|
add r0, r0, r3
|
||||||
|
.pad #-8
|
||||||
pop {r4, r5}
|
pop {r4, r5}
|
||||||
.cfi_adjust_cfa_offset -8
|
.cfi_adjust_cfa_offset -8
|
||||||
.cfi_restore r4
|
.cfi_restore r4
|
||||||
|
@ -39,6 +39,7 @@
|
|||||||
ENTRY(__strcpy_chk)
|
ENTRY(__strcpy_chk)
|
||||||
.cfi_startproc
|
.cfi_startproc
|
||||||
pld [r0, #0]
|
pld [r0, #0]
|
||||||
|
.save {r0, lr}
|
||||||
push {r0, lr}
|
push {r0, lr}
|
||||||
.cfi_def_cfa_offset 8
|
.cfi_def_cfa_offset 8
|
||||||
.cfi_rel_offset r0, 0
|
.cfi_rel_offset r0, 0
|
||||||
|
@ -55,6 +55,7 @@ END(__memcpy_chk)
|
|||||||
ENTRY(memcpy)
|
ENTRY(memcpy)
|
||||||
.cfi_startproc
|
.cfi_startproc
|
||||||
pld [r1, #64]
|
pld [r1, #64]
|
||||||
|
.save {r0, lr}
|
||||||
stmfd sp!, {r0, lr}
|
stmfd sp!, {r0, lr}
|
||||||
.cfi_def_cfa_offset 8
|
.cfi_def_cfa_offset 8
|
||||||
.cfi_rel_offset r0, 0
|
.cfi_rel_offset r0, 0
|
||||||
@ -64,9 +65,11 @@ ENTRY(memcpy)
|
|||||||
.cfi_endproc
|
.cfi_endproc
|
||||||
END(memcpy)
|
END(memcpy)
|
||||||
|
|
||||||
|
.fnstart
|
||||||
.cfi_startproc
|
.cfi_startproc
|
||||||
__memcpy_chk_fail:
|
__memcpy_chk_fail:
|
||||||
// Preserve lr for backtrace.
|
// Preserve lr for backtrace.
|
||||||
|
.save {lr}
|
||||||
push {lr}
|
push {lr}
|
||||||
.cfi_def_cfa_offset 4
|
.cfi_def_cfa_offset 4
|
||||||
.cfi_rel_offset lr, 0
|
.cfi_rel_offset lr, 0
|
||||||
@ -81,6 +84,7 @@ error_code:
|
|||||||
error_message:
|
error_message:
|
||||||
.word error_string-(1b+4)
|
.word error_string-(1b+4)
|
||||||
.cfi_endproc
|
.cfi_endproc
|
||||||
|
.fnend
|
||||||
|
|
||||||
.data
|
.data
|
||||||
error_string:
|
error_string:
|
||||||
|
@ -44,6 +44,7 @@ ENTRY(__memset_chk)
|
|||||||
bls .L_done
|
bls .L_done
|
||||||
|
|
||||||
// Preserve lr for backtrace.
|
// Preserve lr for backtrace.
|
||||||
|
.save {lr}
|
||||||
push {lr}
|
push {lr}
|
||||||
.cfi_def_cfa_offset 4
|
.cfi_def_cfa_offset 4
|
||||||
.cfi_rel_offset lr, 0
|
.cfi_rel_offset lr, 0
|
||||||
@ -74,6 +75,7 @@ END(bzero)
|
|||||||
/* memset() returns its first argument. */
|
/* memset() returns its first argument. */
|
||||||
ENTRY(memset)
|
ENTRY(memset)
|
||||||
.cfi_startproc
|
.cfi_startproc
|
||||||
|
.save {r0}
|
||||||
stmfd sp!, {r0}
|
stmfd sp!, {r0}
|
||||||
.cfi_def_cfa_offset 4
|
.cfi_def_cfa_offset 4
|
||||||
.cfi_rel_offset r0, 0
|
.cfi_rel_offset r0, 0
|
||||||
|
@ -122,9 +122,15 @@ ENTRY(strcmp)
|
|||||||
|
|
||||||
.macro init
|
.macro init
|
||||||
/* Macro to save temporary registers and prepare magic values. */
|
/* Macro to save temporary registers and prepare magic values. */
|
||||||
|
.save {r4-r7}
|
||||||
subs sp, sp, #16
|
subs sp, sp, #16
|
||||||
|
.cfi_def_cfa_offset 16
|
||||||
strd r4, r5, [sp, #8]
|
strd r4, r5, [sp, #8]
|
||||||
|
.cfi_rel_offset r4, 0
|
||||||
|
.cfi_rel_offset r5, 4
|
||||||
strd r6, r7, [sp]
|
strd r6, r7, [sp]
|
||||||
|
.cfi_rel_offset r6, 8
|
||||||
|
.cfi_rel_offset r7, 12
|
||||||
mvn r6, #0 /* all F */
|
mvn r6, #0 /* all F */
|
||||||
mov r7, #0 /* all 0 */
|
mov r7, #0 /* all 0 */
|
||||||
.endm /* init */
|
.endm /* init */
|
||||||
@ -165,6 +171,7 @@ ENTRY(strcmp)
|
|||||||
#endif /* not __ARMEB__ */
|
#endif /* not __ARMEB__ */
|
||||||
.endm /* setup_return */
|
.endm /* setup_return */
|
||||||
|
|
||||||
|
.cfi_startproc
|
||||||
pld [r0, #0]
|
pld [r0, #0]
|
||||||
pld [r1, #0]
|
pld [r1, #0]
|
||||||
|
|
||||||
@ -347,7 +354,13 @@ do_return:
|
|||||||
/* Restore temporaries early, before computing the return value. */
|
/* Restore temporaries early, before computing the return value. */
|
||||||
ldrd r6, r7, [sp]
|
ldrd r6, r7, [sp]
|
||||||
ldrd r4, r5, [sp, #8]
|
ldrd r4, r5, [sp, #8]
|
||||||
|
.pad #-16
|
||||||
adds sp, sp, #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. */
|
/* There is a zero or a different byte between r1 and r2. */
|
||||||
/* r0 contains a mask of all-zero bytes in r1. */
|
/* r0 contains a mask of all-zero bytes in r1. */
|
||||||
@ -452,7 +465,13 @@ miscmp_word_16:
|
|||||||
/* Restore registers and stack. */
|
/* Restore registers and stack. */
|
||||||
ldrd r6, r7, [sp]
|
ldrd r6, r7, [sp]
|
||||||
ldrd r4, r5, [sp, #8]
|
ldrd r4, r5, [sp, #8]
|
||||||
|
.pad #-16
|
||||||
adds sp, sp, #16
|
adds sp, sp, #16
|
||||||
|
.cfi_def_cfa_offset 0
|
||||||
|
.cfi_restore r4
|
||||||
|
.cfi_restore r5
|
||||||
|
.cfi_restore r6
|
||||||
|
.cfi_restore r7
|
||||||
|
|
||||||
bx lr
|
bx lr
|
||||||
|
|
||||||
@ -471,7 +490,14 @@ miscmp_word_16:
|
|||||||
/* Restore registers and stack. */
|
/* Restore registers and stack. */
|
||||||
ldrd r6, r7, [sp]
|
ldrd r6, r7, [sp]
|
||||||
ldrd r4, r5, [sp, #8]
|
ldrd r4, r5, [sp, #8]
|
||||||
|
.pad #-16
|
||||||
adds sp, sp, #16
|
adds sp, sp, #16
|
||||||
|
.cfi_def_cfa_offset 0
|
||||||
|
.cfi_restore r4
|
||||||
|
.cfi_restore r5
|
||||||
|
.cfi_restore r6
|
||||||
|
.cfi_restore r7
|
||||||
|
|
||||||
bx lr
|
bx lr
|
||||||
|
.cfi_endproc
|
||||||
END(strcmp)
|
END(strcmp)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user