* commit '47580cc01768dcb67ab152915a2e78a98e36b463': Add .cfi_startproc/.cfi_endproc to ENTRY/END.
This commit is contained in:
		| @@ -38,7 +38,6 @@ | |||||||
| // Check that the two lengths together don't exceed the threshold, then | // Check that the two lengths together don't exceed the threshold, then | ||||||
| // do a memcpy of the data. | // do a memcpy of the data. | ||||||
| ENTRY(__strcat_chk) | ENTRY(__strcat_chk) | ||||||
|     .cfi_startproc |  | ||||||
|     pld     [r0, #0] |     pld     [r0, #0] | ||||||
|     push    {r0, lr} |     push    {r0, lr} | ||||||
|     .save   {r0, lr} |     .save   {r0, lr} | ||||||
| @@ -188,8 +187,6 @@ ENTRY(__strcat_chk) | |||||||
|     mov     r2, r4 |     mov     r2, r4 | ||||||
|     add     r0, r0, r3 |     add     r0, r0, r3 | ||||||
|     pop     {r4, r5} |     pop     {r4, r5} | ||||||
|  |  | ||||||
|     .cfi_endproc |  | ||||||
| END(__strcat_chk) | END(__strcat_chk) | ||||||
|  |  | ||||||
| #define MEMCPY_BASE         __strcat_chk_memcpy_base | #define MEMCPY_BASE         __strcat_chk_memcpy_base | ||||||
| @@ -198,7 +195,6 @@ END(__strcat_chk) | |||||||
| #include "memcpy_base.S" | #include "memcpy_base.S" | ||||||
|  |  | ||||||
| ENTRY_PRIVATE(__strcat_chk_failed) | ENTRY_PRIVATE(__strcat_chk_failed) | ||||||
|     .cfi_startproc |  | ||||||
|     .save   {r0, lr} |     .save   {r0, lr} | ||||||
|     .save   {r4, r5} |     .save   {r4, r5} | ||||||
|  |  | ||||||
| @@ -218,8 +214,6 @@ error_code: | |||||||
|     .word   BIONIC_EVENT_STRCAT_BUFFER_OVERFLOW |     .word   BIONIC_EVENT_STRCAT_BUFFER_OVERFLOW | ||||||
| error_message: | error_message: | ||||||
|     .word   error_string-(1b+4) |     .word   error_string-(1b+4) | ||||||
|  |  | ||||||
|     .cfi_endproc |  | ||||||
| END(__strcat_chk_failed) | END(__strcat_chk_failed) | ||||||
|  |  | ||||||
|     .data |     .data | ||||||
|   | |||||||
| @@ -37,7 +37,6 @@ | |||||||
| // Get the length of the source string first, then do a memcpy of the data | // Get the length of the source string first, then do a memcpy of the data | ||||||
| // instead of a strcpy. | // instead of a strcpy. | ||||||
| ENTRY(__strcpy_chk) | ENTRY(__strcpy_chk) | ||||||
|     .cfi_startproc |  | ||||||
|     pld     [r0, #0] |     pld     [r0, #0] | ||||||
|     push    {r0, lr} |     push    {r0, lr} | ||||||
|     .save   {r0, lr} |     .save   {r0, lr} | ||||||
| @@ -155,8 +154,6 @@ ENTRY(__strcpy_chk) | |||||||
|  |  | ||||||
|     // Add 1 for copy length to get the string terminator. |     // Add 1 for copy length to get the string terminator. | ||||||
|     add     r2, r3, #1 |     add     r2, r3, #1 | ||||||
|  |  | ||||||
|     .cfi_endproc |  | ||||||
| END(__strcpy_chk) | END(__strcpy_chk) | ||||||
|  |  | ||||||
| #define MEMCPY_BASE         __strcpy_chk_memcpy_base | #define MEMCPY_BASE         __strcpy_chk_memcpy_base | ||||||
| @@ -164,7 +161,6 @@ END(__strcpy_chk) | |||||||
| #include "memcpy_base.S" | #include "memcpy_base.S" | ||||||
|  |  | ||||||
| ENTRY_PRIVATE(__strcpy_chk_failed) | ENTRY_PRIVATE(__strcpy_chk_failed) | ||||||
|     .cfi_startproc |  | ||||||
|     .save   {r0, lr} |     .save   {r0, lr} | ||||||
|     .cfi_def_cfa_offset 8 |     .cfi_def_cfa_offset 8 | ||||||
|     .cfi_rel_offset r0, 0 |     .cfi_rel_offset r0, 0 | ||||||
| @@ -179,8 +175,6 @@ error_code: | |||||||
|     .word   BIONIC_EVENT_STRCPY_BUFFER_OVERFLOW |     .word   BIONIC_EVENT_STRCPY_BUFFER_OVERFLOW | ||||||
| error_message: | error_message: | ||||||
|     .word   error_string-(1b+4) |     .word   error_string-(1b+4) | ||||||
|  |  | ||||||
|     .cfi_endproc |  | ||||||
| END(__strcpy_chk_failed) | END(__strcpy_chk_failed) | ||||||
|  |  | ||||||
|     .data |     .data | ||||||
|   | |||||||
| @@ -63,24 +63,19 @@ | |||||||
|         .fpu    neon |         .fpu    neon | ||||||
|  |  | ||||||
| ENTRY(__memcpy_chk) | ENTRY(__memcpy_chk) | ||||||
|         .cfi_startproc |  | ||||||
|         cmp     r2, r3 |         cmp     r2, r3 | ||||||
|         bhi     __memcpy_chk_fail |         bhi     __memcpy_chk_fail | ||||||
|  |  | ||||||
|         // Fall through to memcpy... |         // Fall through to memcpy... | ||||||
|         .cfi_endproc |  | ||||||
| END(__memcpy_chk) | END(__memcpy_chk) | ||||||
|  |  | ||||||
| ENTRY(memcpy) | ENTRY(memcpy) | ||||||
|         .cfi_startproc |  | ||||||
|         pld     [r1, #64] |         pld     [r1, #64] | ||||||
|         push    {r0, lr} |         push    {r0, lr} | ||||||
|         .save   {r0, lr} |         .save   {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 | ||||||
|  |  | ||||||
|         .cfi_endproc |  | ||||||
| END(memcpy) | END(memcpy) | ||||||
|  |  | ||||||
| #define MEMCPY_BASE         __memcpy_base | #define MEMCPY_BASE         __memcpy_base | ||||||
| @@ -88,7 +83,6 @@ END(memcpy) | |||||||
| #include "memcpy_base.S" | #include "memcpy_base.S" | ||||||
|  |  | ||||||
| ENTRY_PRIVATE(__memcpy_chk_fail) | ENTRY_PRIVATE(__memcpy_chk_fail) | ||||||
|         .cfi_startproc |  | ||||||
|         // Preserve lr for backtrace. |         // Preserve lr for backtrace. | ||||||
|         push    {lr} |         push    {lr} | ||||||
|         .save   {lr} |         .save   {lr} | ||||||
| @@ -104,7 +98,6 @@ error_code: | |||||||
|         .word   BIONIC_EVENT_MEMCPY_BUFFER_OVERFLOW |         .word   BIONIC_EVENT_MEMCPY_BUFFER_OVERFLOW | ||||||
| error_message: | error_message: | ||||||
|         .word   error_string-(1b+8) |         .word   error_string-(1b+8) | ||||||
|         .cfi_endproc |  | ||||||
| END(__memcpy_chk_fail) | END(__memcpy_chk_fail) | ||||||
|  |  | ||||||
|         .data |         .data | ||||||
|   | |||||||
| @@ -54,7 +54,6 @@ | |||||||
|  */ |  */ | ||||||
|  |  | ||||||
| ENTRY_PRIVATE(MEMCPY_BASE) | ENTRY_PRIVATE(MEMCPY_BASE) | ||||||
|         .cfi_startproc |  | ||||||
|         .save   {r0, lr} |         .save   {r0, lr} | ||||||
|         .cfi_def_cfa_offset 8 |         .cfi_def_cfa_offset 8 | ||||||
|         .cfi_rel_offset r0, 0 |         .cfi_rel_offset r0, 0 | ||||||
| @@ -170,12 +169,9 @@ ENTRY_PRIVATE(MEMCPY_BASE) | |||||||
|         eor     r3, r0, r1 |         eor     r3, r0, r1 | ||||||
|         ands    r3, r3, #0x3 |         ands    r3, r3, #0x3 | ||||||
|         bne     .L_copy_unknown_alignment |         bne     .L_copy_unknown_alignment | ||||||
|  |  | ||||||
|         .cfi_endproc |  | ||||||
| END(MEMCPY_BASE) | END(MEMCPY_BASE) | ||||||
|  |  | ||||||
| ENTRY_PRIVATE(MEMCPY_BASE_ALIGNED) | ENTRY_PRIVATE(MEMCPY_BASE_ALIGNED) | ||||||
|         .cfi_startproc |  | ||||||
|         .save   {r0, lr} |         .save   {r0, lr} | ||||||
|         .cfi_def_cfa_offset 8 |         .cfi_def_cfa_offset 8 | ||||||
|         .cfi_rel_offset r0, 0 |         .cfi_rel_offset r0, 0 | ||||||
| @@ -324,6 +320,4 @@ ENTRY_PRIVATE(MEMCPY_BASE_ALIGNED) | |||||||
|  |  | ||||||
|         // Src is guaranteed to be at least word aligned by this point. |         // Src is guaranteed to be at least word aligned by this point. | ||||||
|         b       .L_word_aligned |         b       .L_word_aligned | ||||||
|  |  | ||||||
|         .cfi_endproc |  | ||||||
| END(MEMCPY_BASE_ALIGNED) | END(MEMCPY_BASE_ALIGNED) | ||||||
|   | |||||||
| @@ -40,7 +40,6 @@ | |||||||
|         .syntax     unified |         .syntax     unified | ||||||
|  |  | ||||||
| ENTRY(__memset_chk) | ENTRY(__memset_chk) | ||||||
|         .cfi_startproc |  | ||||||
|         cmp         r2, r3 |         cmp         r2, r3 | ||||||
|         bls         .L_done |         bls         .L_done | ||||||
|  |  | ||||||
| @@ -59,21 +58,16 @@ error_code: | |||||||
|         .word       BIONIC_EVENT_MEMSET_BUFFER_OVERFLOW |         .word       BIONIC_EVENT_MEMSET_BUFFER_OVERFLOW | ||||||
| error_message: | error_message: | ||||||
|         .word       error_string-(1b+8) |         .word       error_string-(1b+8) | ||||||
|  |  | ||||||
|         .cfi_endproc |  | ||||||
| END(__memset_chk) | END(__memset_chk) | ||||||
|  |  | ||||||
| ENTRY(bzero) | ENTRY(bzero) | ||||||
|         .cfi_startproc |  | ||||||
|         mov         r2, r1 |         mov         r2, r1 | ||||||
|         mov         r1, #0 |         mov         r1, #0 | ||||||
| .L_done: | .L_done: | ||||||
|         // Fall through to memset... |         // Fall through to memset... | ||||||
|         .cfi_endproc |  | ||||||
| END(bzero) | END(bzero) | ||||||
|  |  | ||||||
| ENTRY(memset) | ENTRY(memset) | ||||||
|         .cfi_startproc |  | ||||||
|         .save       {r0} |         .save       {r0} | ||||||
|         stmfd       sp!, {r0} |         stmfd       sp!, {r0} | ||||||
|         .cfi_def_cfa_offset 4 |         .cfi_def_cfa_offset 4 | ||||||
| @@ -192,7 +186,6 @@ ENTRY(memset) | |||||||
|         strbcs      r1, [r0], #1 |         strbcs      r1, [r0], #1 | ||||||
|         ldmfd       sp!, {r0} |         ldmfd       sp!, {r0} | ||||||
|         bx          lr |         bx          lr | ||||||
|         .cfi_endproc |  | ||||||
| END(memset) | END(memset) | ||||||
|  |  | ||||||
|         .data |         .data | ||||||
|   | |||||||
| @@ -159,7 +159,6 @@ 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] | ||||||
|  |  | ||||||
| @@ -375,5 +374,4 @@ ENTRY(strcmp) | |||||||
|         it      ls |         it      ls | ||||||
|         sbcls   r0, r0, r0 |         sbcls   r0, r0, r0 | ||||||
|         bx      lr |         bx      lr | ||||||
|         .cfi_endproc |  | ||||||
| END(strcmp) | END(strcmp) | ||||||
|   | |||||||
| @@ -38,7 +38,6 @@ | |||||||
| // Check that the two lengths together don't exceed the threshold, then | // Check that the two lengths together don't exceed the threshold, then | ||||||
| // do a memcpy of the data. | // do a memcpy of the data. | ||||||
| ENTRY(__strcat_chk) | ENTRY(__strcat_chk) | ||||||
|     .cfi_startproc |  | ||||||
|     pld     [r0, #0] |     pld     [r0, #0] | ||||||
|     push    {r0, lr} |     push    {r0, lr} | ||||||
|     .save   {r0, lr} |     .save   {r0, lr} | ||||||
| @@ -193,7 +192,6 @@ ENTRY(__strcat_chk) | |||||||
|     pop     {r4, r5} |     pop     {r4, r5} | ||||||
|  |  | ||||||
|     // Fall through into the memcpy_base function. |     // Fall through into the memcpy_base function. | ||||||
|     .cfi_endproc |  | ||||||
| END(__strcat_chk) | END(__strcat_chk) | ||||||
|  |  | ||||||
| #define MEMCPY_BASE         __strcat_chk_memcpy_base | #define MEMCPY_BASE         __strcat_chk_memcpy_base | ||||||
| @@ -201,8 +199,6 @@ END(__strcat_chk) | |||||||
| #include "memcpy_base.S" | #include "memcpy_base.S" | ||||||
|  |  | ||||||
| ENTRY_PRIVATE(__strcat_chk_fail) | ENTRY_PRIVATE(__strcat_chk_fail) | ||||||
|     .cfi_startproc |  | ||||||
|  |  | ||||||
|     .save   {r0, lr} |     .save   {r0, lr} | ||||||
|     .save   {r4, r5} |     .save   {r4, r5} | ||||||
|     .cfi_def_cfa_offset 8 |     .cfi_def_cfa_offset 8 | ||||||
| @@ -221,8 +217,6 @@ error_code: | |||||||
|     .word   BIONIC_EVENT_STRCAT_BUFFER_OVERFLOW |     .word   BIONIC_EVENT_STRCAT_BUFFER_OVERFLOW | ||||||
| error_message: | error_message: | ||||||
|     .word   error_string-(1b+4) |     .word   error_string-(1b+4) | ||||||
|  |  | ||||||
|     .cfi_endproc |  | ||||||
| END(__strcat_chk_fail) | END(__strcat_chk_fail) | ||||||
|  |  | ||||||
|     .data |     .data | ||||||
|   | |||||||
| @@ -37,7 +37,6 @@ | |||||||
| // Get the length of the source string first, then do a memcpy of the data | // Get the length of the source string first, then do a memcpy of the data | ||||||
| // instead of a strcpy. | // instead of a strcpy. | ||||||
| ENTRY(__strcpy_chk) | ENTRY(__strcpy_chk) | ||||||
|     .cfi_startproc |  | ||||||
|     pld     [r0, #0] |     pld     [r0, #0] | ||||||
|     push    {r0, lr} |     push    {r0, lr} | ||||||
|     .save   {r0, lr} |     .save   {r0, lr} | ||||||
| @@ -158,8 +157,6 @@ ENTRY(__strcpy_chk) | |||||||
|     // Add 1 for copy length to get the string terminator. |     // Add 1 for copy length to get the string terminator. | ||||||
|     add     r2, r3, #1 |     add     r2, r3, #1 | ||||||
|  |  | ||||||
|     .cfi_endproc |  | ||||||
|  |  | ||||||
|     // Fall through into the memcpy_base function. |     // Fall through into the memcpy_base function. | ||||||
| END(__strcpy_chk) | END(__strcpy_chk) | ||||||
|  |  | ||||||
| @@ -168,8 +165,6 @@ END(__strcpy_chk) | |||||||
| #include "memcpy_base.S" | #include "memcpy_base.S" | ||||||
|  |  | ||||||
| ENTRY_PRIVATE(__strcpy_chk_fail) | ENTRY_PRIVATE(__strcpy_chk_fail) | ||||||
|     .cfi_startproc |  | ||||||
|  |  | ||||||
|     .save   {r0, lr} |     .save   {r0, lr} | ||||||
|     .cfi_def_cfa_offset 8 |     .cfi_def_cfa_offset 8 | ||||||
|     .cfi_rel_offset r0, 0 |     .cfi_rel_offset r0, 0 | ||||||
| @@ -185,8 +180,6 @@ error_code: | |||||||
|     .word   BIONIC_EVENT_STRCPY_BUFFER_OVERFLOW |     .word   BIONIC_EVENT_STRCPY_BUFFER_OVERFLOW | ||||||
| error_message: | error_message: | ||||||
|     .word   error_string-(1b+4) |     .word   error_string-(1b+4) | ||||||
|  |  | ||||||
|     .cfi_endproc |  | ||||||
| END(__strcpy_chk_fail) | END(__strcpy_chk_fail) | ||||||
|  |  | ||||||
|     .data |     .data | ||||||
|   | |||||||
| @@ -41,17 +41,13 @@ | |||||||
|         .thumb_func |         .thumb_func | ||||||
|  |  | ||||||
| ENTRY(__memcpy_chk) | ENTRY(__memcpy_chk) | ||||||
|         .cfi_startproc |  | ||||||
|         cmp         r2, r3 |         cmp         r2, r3 | ||||||
|         bhi         __memcpy_chk_fail |         bhi         __memcpy_chk_fail | ||||||
|  |  | ||||||
|         // Fall through to memcpy... |         // Fall through to memcpy... | ||||||
|         .cfi_endproc |  | ||||||
| END(__memcpy_chk) | END(__memcpy_chk) | ||||||
|  |  | ||||||
| ENTRY(memcpy) | ENTRY(memcpy) | ||||||
|         .cfi_startproc |  | ||||||
|  |  | ||||||
|         pld     [r1, #0] |         pld     [r1, #0] | ||||||
|         stmfd   sp!, {r0, lr} |         stmfd   sp!, {r0, lr} | ||||||
|         .save   {r0, lr} |         .save   {r0, lr} | ||||||
| @@ -59,8 +55,6 @@ ENTRY(memcpy) | |||||||
|         .cfi_rel_offset r0, 0 |         .cfi_rel_offset r0, 0 | ||||||
|         .cfi_rel_offset lr, 4 |         .cfi_rel_offset lr, 4 | ||||||
|         pld     [r1, #64] |         pld     [r1, #64] | ||||||
|  |  | ||||||
|         .cfi_endproc |  | ||||||
| END(memcpy) | END(memcpy) | ||||||
|  |  | ||||||
| #define MEMCPY_BASE         __memcpy_base | #define MEMCPY_BASE         __memcpy_base | ||||||
| @@ -68,7 +62,6 @@ END(memcpy) | |||||||
| #include "memcpy_base.S" | #include "memcpy_base.S" | ||||||
|  |  | ||||||
| ENTRY_PRIVATE(__memcpy_chk_fail) | ENTRY_PRIVATE(__memcpy_chk_fail) | ||||||
|         .cfi_startproc |  | ||||||
|         // Preserve lr for backtrace. |         // Preserve lr for backtrace. | ||||||
|         push    {lr} |         push    {lr} | ||||||
|         .save   {lr} |         .save   {lr} | ||||||
| @@ -84,7 +77,6 @@ error_code: | |||||||
|         .word   BIONIC_EVENT_MEMCPY_BUFFER_OVERFLOW |         .word   BIONIC_EVENT_MEMCPY_BUFFER_OVERFLOW | ||||||
| error_message: | error_message: | ||||||
|         .word   error_string-(1b+4) |         .word   error_string-(1b+4) | ||||||
|         .cfi_endproc |  | ||||||
| END(__memcpy_chk_fail) | END(__memcpy_chk_fail) | ||||||
|  |  | ||||||
|         .data |         .data | ||||||
|   | |||||||
| @@ -33,7 +33,6 @@ | |||||||
|  */ |  */ | ||||||
|  |  | ||||||
| ENTRY_PRIVATE(MEMCPY_BASE) | ENTRY_PRIVATE(MEMCPY_BASE) | ||||||
|         .cfi_startproc |  | ||||||
|         .save       {r0, lr} |         .save       {r0, lr} | ||||||
|         .cfi_def_cfa_offset 8 |         .cfi_def_cfa_offset 8 | ||||||
|         .cfi_rel_offset r0, 0 |         .cfi_rel_offset r0, 0 | ||||||
| @@ -137,13 +136,9 @@ ENTRY_PRIVATE(MEMCPY_BASE) | |||||||
|  |  | ||||||
|         ldmfd       sp!, {r0, lr} |         ldmfd       sp!, {r0, lr} | ||||||
|         bx          lr |         bx          lr | ||||||
|  |  | ||||||
|         .cfi_endproc |  | ||||||
| END(MEMCPY_BASE) | END(MEMCPY_BASE) | ||||||
|  |  | ||||||
| ENTRY_PRIVATE(MEMCPY_BASE_ALIGNED) | ENTRY_PRIVATE(MEMCPY_BASE_ALIGNED) | ||||||
|         .cfi_startproc |  | ||||||
|  |  | ||||||
|         .save       {r0, lr} |         .save       {r0, lr} | ||||||
|         .cfi_def_cfa_offset 8 |         .cfi_def_cfa_offset 8 | ||||||
|         .cfi_rel_offset r0, 0 |         .cfi_rel_offset r0, 0 | ||||||
| @@ -228,6 +223,4 @@ ENTRY_PRIVATE(MEMCPY_BASE_ALIGNED) | |||||||
| 6: | 6: | ||||||
|         ldmfd       sp!, {r4-r8} |         ldmfd       sp!, {r4-r8} | ||||||
|         ldmfd       sp!, {r0, pc} |         ldmfd       sp!, {r0, pc} | ||||||
|  |  | ||||||
|         .cfi_endproc |  | ||||||
| END(MEMCPY_BASE_ALIGNED) | END(MEMCPY_BASE_ALIGNED) | ||||||
|   | |||||||
| @@ -38,7 +38,6 @@ | |||||||
|     .fpu    neon |     .fpu    neon | ||||||
|  |  | ||||||
| ENTRY(__memset_chk) | ENTRY(__memset_chk) | ||||||
|         .cfi_startproc |  | ||||||
|         cmp         r2, r3 |         cmp         r2, r3 | ||||||
|         bls         .L_done |         bls         .L_done | ||||||
|  |  | ||||||
| @@ -57,25 +56,19 @@ error_code: | |||||||
|         .word       BIONIC_EVENT_MEMSET_BUFFER_OVERFLOW |         .word       BIONIC_EVENT_MEMSET_BUFFER_OVERFLOW | ||||||
| error_message: | error_message: | ||||||
|         .word       error_string-(1b+8) |         .word       error_string-(1b+8) | ||||||
|  |  | ||||||
|         .cfi_endproc |  | ||||||
| END(__memset_chk) | END(__memset_chk) | ||||||
|  |  | ||||||
| ENTRY(bzero) | ENTRY(bzero) | ||||||
|         .cfi_startproc |  | ||||||
|         mov     r2, r1 |         mov     r2, r1 | ||||||
|         mov     r1, #0 |         mov     r1, #0 | ||||||
|  |  | ||||||
| .L_done: | .L_done: | ||||||
|         // Fall through to memset... |         // Fall through to memset... | ||||||
|         .cfi_endproc |  | ||||||
| END(bzero) | END(bzero) | ||||||
|  |  | ||||||
| /* memset() returns its first argument.  */ | /* memset() returns its first argument.  */ | ||||||
| ENTRY(memset) | ENTRY(memset) | ||||||
|         .cfi_startproc |         // The neon memset only wins for less than 132. | ||||||
|  |  | ||||||
|         # The neon memset only wins for less than 132. |  | ||||||
|         cmp         r2, #132 |         cmp         r2, #132 | ||||||
|         bhi         __memset_large_copy |         bhi         __memset_large_copy | ||||||
|  |  | ||||||
| @@ -115,13 +108,9 @@ ENTRY(memset) | |||||||
|         strcsb      r1, [r0], #1 |         strcsb      r1, [r0], #1 | ||||||
|         ldmfd       sp!, {r0} |         ldmfd       sp!, {r0} | ||||||
|         bx          lr |         bx          lr | ||||||
|  |  | ||||||
|         .cfi_endproc |  | ||||||
| END(memset) | END(memset) | ||||||
|  |  | ||||||
| ENTRY_PRIVATE(__memset_large_copy) | ENTRY_PRIVATE(__memset_large_copy) | ||||||
|         .cfi_startproc |  | ||||||
|  |  | ||||||
|         /* compute the offset to align the destination |         /* compute the offset to align the destination | ||||||
|          * offset = (4-(src&3))&3 = -src & 3 |          * offset = (4-(src&3))&3 = -src & 3 | ||||||
|          */ |          */ | ||||||
| @@ -196,7 +185,6 @@ ENTRY_PRIVATE(__memset_large_copy) | |||||||
|         strcsb      r1, [r0] |         strcsb      r1, [r0] | ||||||
|         ldmfd       sp!, {r0, r4-r7, lr} |         ldmfd       sp!, {r0, r4-r7, lr} | ||||||
|         bx          lr |         bx          lr | ||||||
|         .cfi_endproc |  | ||||||
| END(__memset_large_copy) | END(__memset_large_copy) | ||||||
|  |  | ||||||
|         .data |         .data | ||||||
|   | |||||||
| @@ -159,7 +159,6 @@ 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] | ||||||
|  |  | ||||||
| @@ -547,5 +546,4 @@ ENTRY(strcmp) | |||||||
|     adds    sp, sp, #16 |     adds    sp, sp, #16 | ||||||
|  |  | ||||||
| 	bx	lr | 	bx	lr | ||||||
|     .cfi_endproc |  | ||||||
| END(strcmp) | END(strcmp) | ||||||
|   | |||||||
| @@ -70,12 +70,12 @@ | |||||||
| #define _ASM_TYPE_FUNCTION	#function | #define _ASM_TYPE_FUNCTION	#function | ||||||
| #define _ASM_TYPE_OBJECT	#object | #define _ASM_TYPE_OBJECT	#object | ||||||
| #define _ENTRY(x) \ | #define _ENTRY(x) \ | ||||||
| 	.text; _ALIGN_TEXT; .globl x; .type x,_ASM_TYPE_FUNCTION; x: .fnstart | 	.text; _ALIGN_TEXT; .globl x; .type x,_ASM_TYPE_FUNCTION; x: .fnstart; .cfi_startproc; | ||||||
|  |  | ||||||
| #define _ASM_SIZE(x)	.size x, .-x; | #define _ASM_SIZE(x)	.size x, .-x; | ||||||
|  |  | ||||||
| #define _END(x) \ | #define _END(x) \ | ||||||
| 	.fnend; \ | 	.fnend; .cfi_endproc; \ | ||||||
| 	_ASM_SIZE(x) | 	_ASM_SIZE(x) | ||||||
|  |  | ||||||
| #ifdef GPROF | #ifdef GPROF | ||||||
|   | |||||||
| @@ -38,7 +38,6 @@ | |||||||
| // Check that the two lengths together don't exceed the threshold, then | // Check that the two lengths together don't exceed the threshold, then | ||||||
| // do a memcpy of the data. | // do a memcpy of the data. | ||||||
| ENTRY(__strcat_chk) | ENTRY(__strcat_chk) | ||||||
|     .cfi_startproc |  | ||||||
|     pld     [r0, #0] |     pld     [r0, #0] | ||||||
|     push    {r0, lr} |     push    {r0, lr} | ||||||
|     .save   {r0, lr} |     .save   {r0, lr} | ||||||
| @@ -188,8 +187,6 @@ ENTRY(__strcat_chk) | |||||||
|     mov     r2, r4 |     mov     r2, r4 | ||||||
|     add     r0, r0, r3 |     add     r0, r0, r3 | ||||||
|     pop     {r4, r5} |     pop     {r4, r5} | ||||||
|  |  | ||||||
|     .cfi_endproc |  | ||||||
| END(__strcat_chk) | END(__strcat_chk) | ||||||
|  |  | ||||||
| #define MEMCPY_BASE         __strcat_chk_memcpy_base | #define MEMCPY_BASE         __strcat_chk_memcpy_base | ||||||
| @@ -197,7 +194,6 @@ END(__strcat_chk) | |||||||
| #include "memcpy_base.S" | #include "memcpy_base.S" | ||||||
|  |  | ||||||
| ENTRY_PRIVATE(__strcat_chk_failed) | ENTRY_PRIVATE(__strcat_chk_failed) | ||||||
|     .cfi_startproc |  | ||||||
|     .save   {r0, lr} |     .save   {r0, lr} | ||||||
|     .save   {r4, r5} |     .save   {r4, r5} | ||||||
|     .cfi_def_cfa_offset 8 |     .cfi_def_cfa_offset 8 | ||||||
| @@ -216,8 +212,6 @@ error_code: | |||||||
|     .word   BIONIC_EVENT_STRCAT_BUFFER_OVERFLOW |     .word   BIONIC_EVENT_STRCAT_BUFFER_OVERFLOW | ||||||
| error_message: | error_message: | ||||||
|     .word   error_string-(1b+4) |     .word   error_string-(1b+4) | ||||||
|  |  | ||||||
|     .cfi_endproc |  | ||||||
| END(__strcat_chk_failed) | END(__strcat_chk_failed) | ||||||
|  |  | ||||||
|     .data |     .data | ||||||
|   | |||||||
| @@ -37,7 +37,6 @@ | |||||||
| // Get the length of the source string first, then do a memcpy of the data | // Get the length of the source string first, then do a memcpy of the data | ||||||
| // instead of a strcpy. | // instead of a strcpy. | ||||||
| ENTRY(__strcpy_chk) | ENTRY(__strcpy_chk) | ||||||
|     .cfi_startproc |  | ||||||
|     pld     [r0, #0] |     pld     [r0, #0] | ||||||
|     push    {r0, lr} |     push    {r0, lr} | ||||||
|     .save   {r0, lr} |     .save   {r0, lr} | ||||||
| @@ -155,8 +154,6 @@ ENTRY(__strcpy_chk) | |||||||
|  |  | ||||||
|     // Add 1 for copy length to get the string terminator. |     // Add 1 for copy length to get the string terminator. | ||||||
|     add     r2, r3, #1 |     add     r2, r3, #1 | ||||||
|  |  | ||||||
|     .cfi_endproc |  | ||||||
| END(__strcpy_chk) | END(__strcpy_chk) | ||||||
|  |  | ||||||
| #define MEMCPY_BASE         __strcpy_chk_memcpy_base | #define MEMCPY_BASE         __strcpy_chk_memcpy_base | ||||||
| @@ -164,7 +161,6 @@ END(__strcpy_chk) | |||||||
| #include "memcpy_base.S" | #include "memcpy_base.S" | ||||||
|  |  | ||||||
| ENTRY_PRIVATE(__strcpy_chk_failed) | ENTRY_PRIVATE(__strcpy_chk_failed) | ||||||
|     .cfi_startproc |  | ||||||
|     .save   {r0, lr} |     .save   {r0, lr} | ||||||
|     .cfi_def_cfa_offset 8 |     .cfi_def_cfa_offset 8 | ||||||
|     .cfi_rel_offset r0, 0 |     .cfi_rel_offset r0, 0 | ||||||
| @@ -179,7 +175,6 @@ error_code: | |||||||
|     .word   BIONIC_EVENT_STRCPY_BUFFER_OVERFLOW |     .word   BIONIC_EVENT_STRCPY_BUFFER_OVERFLOW | ||||||
| error_message: | error_message: | ||||||
|     .word   error_string-(1b+4) |     .word   error_string-(1b+4) | ||||||
|     .cfi_endproc |  | ||||||
| END(__strcpy_chk_failed) | END(__strcpy_chk_failed) | ||||||
|  |  | ||||||
|     .data |     .data | ||||||
|   | |||||||
| @@ -44,23 +44,19 @@ | |||||||
|         .thumb_func |         .thumb_func | ||||||
|  |  | ||||||
| ENTRY(__memcpy_chk) | ENTRY(__memcpy_chk) | ||||||
|         .cfi_startproc |  | ||||||
|         cmp         r2, r3 |         cmp         r2, r3 | ||||||
|         bhi         __memcpy_chk_fail |         bhi         __memcpy_chk_fail | ||||||
|  |  | ||||||
|         // Fall through to memcpy... |         // Fall through to memcpy... | ||||||
|         .cfi_endproc |  | ||||||
| END(__memcpy_chk) | END(__memcpy_chk) | ||||||
|  |  | ||||||
| ENTRY(memcpy) | ENTRY(memcpy) | ||||||
|         .cfi_startproc |  | ||||||
|         pld     [r1, #64] |         pld     [r1, #64] | ||||||
|         stmfd   sp!, {r0, lr} |         stmfd   sp!, {r0, lr} | ||||||
|         .save   {r0, lr} |         .save   {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 | ||||||
|         .cfi_endproc |  | ||||||
| END(memcpy) | END(memcpy) | ||||||
|  |  | ||||||
| #define MEMCPY_BASE         __memcpy_base | #define MEMCPY_BASE         __memcpy_base | ||||||
| @@ -68,7 +64,6 @@ END(memcpy) | |||||||
| #include "memcpy_base.S" | #include "memcpy_base.S" | ||||||
|  |  | ||||||
| ENTRY_PRIVATE(__memcpy_chk_fail) | ENTRY_PRIVATE(__memcpy_chk_fail) | ||||||
|         .cfi_startproc |  | ||||||
|         // Preserve lr for backtrace. |         // Preserve lr for backtrace. | ||||||
|         push    {lr} |         push    {lr} | ||||||
|         .save   {lr} |         .save   {lr} | ||||||
| @@ -84,7 +79,6 @@ error_code: | |||||||
|         .word   BIONIC_EVENT_MEMCPY_BUFFER_OVERFLOW |         .word   BIONIC_EVENT_MEMCPY_BUFFER_OVERFLOW | ||||||
| error_message: | error_message: | ||||||
|         .word   error_string-(1b+4) |         .word   error_string-(1b+4) | ||||||
|         .cfi_endproc |  | ||||||
| END(__memcpy_chk_fail) | END(__memcpy_chk_fail) | ||||||
|  |  | ||||||
|         .data |         .data | ||||||
|   | |||||||
| @@ -36,7 +36,6 @@ | |||||||
| // Assumes neon instructions and a cache line size of 32 bytes. | // Assumes neon instructions and a cache line size of 32 bytes. | ||||||
|  |  | ||||||
| ENTRY_PRIVATE(MEMCPY_BASE) | ENTRY_PRIVATE(MEMCPY_BASE) | ||||||
|         .cfi_startproc |  | ||||||
|         .save {r0, lr} |         .save {r0, lr} | ||||||
|         .cfi_def_cfa_offset 8 |         .cfi_def_cfa_offset 8 | ||||||
|         .cfi_rel_offset r0, 0 |         .cfi_rel_offset r0, 0 | ||||||
| @@ -122,6 +121,4 @@ ENTRY_PRIVATE(MEMCPY_BASE) | |||||||
|  |  | ||||||
|         ldmfd       sp!, {r0, lr} |         ldmfd       sp!, {r0, lr} | ||||||
|         bx          lr |         bx          lr | ||||||
|  |  | ||||||
|         .cfi_endproc |  | ||||||
| END(MEMCPY_BASE) | END(MEMCPY_BASE) | ||||||
|   | |||||||
| @@ -39,7 +39,6 @@ | |||||||
|     .fpu    neon |     .fpu    neon | ||||||
|  |  | ||||||
| ENTRY(__memset_chk) | ENTRY(__memset_chk) | ||||||
|         .cfi_startproc |  | ||||||
|         cmp         r2, r3 |         cmp         r2, r3 | ||||||
|         bls         .L_done |         bls         .L_done | ||||||
|  |  | ||||||
| @@ -58,23 +57,18 @@ error_code: | |||||||
|         .word       BIONIC_EVENT_MEMSET_BUFFER_OVERFLOW |         .word       BIONIC_EVENT_MEMSET_BUFFER_OVERFLOW | ||||||
| error_message: | error_message: | ||||||
|         .word       error_string-(1b+8) |         .word       error_string-(1b+8) | ||||||
|  |  | ||||||
|         .cfi_endproc |  | ||||||
| END(__memset_chk) | END(__memset_chk) | ||||||
|  |  | ||||||
| ENTRY(bzero) | ENTRY(bzero) | ||||||
|         .cfi_startproc |  | ||||||
|         mov     r2, r1 |         mov     r2, r1 | ||||||
|         mov     r1, #0 |         mov     r1, #0 | ||||||
|  |  | ||||||
| .L_done: | .L_done: | ||||||
|         // Fall through to memset... |         // Fall through to memset... | ||||||
|         .cfi_endproc |  | ||||||
| END(bzero) | END(bzero) | ||||||
|  |  | ||||||
| /* memset() returns its first argument.  */ | /* memset() returns its first argument.  */ | ||||||
| ENTRY(memset) | ENTRY(memset) | ||||||
|         .cfi_startproc |  | ||||||
|         .save       {r0} |         .save       {r0} | ||||||
|         stmfd       sp!, {r0} |         stmfd       sp!, {r0} | ||||||
|         .cfi_def_cfa_offset 4 |         .cfi_def_cfa_offset 4 | ||||||
| @@ -111,7 +105,6 @@ ENTRY(memset) | |||||||
|         strcsb      r1, [r0], #1 |         strcsb      r1, [r0], #1 | ||||||
|         ldmfd       sp!, {r0} |         ldmfd       sp!, {r0} | ||||||
|         bx          lr |         bx          lr | ||||||
|         .cfi_endproc |  | ||||||
| END(memset) | END(memset) | ||||||
|  |  | ||||||
|         .data |         .data | ||||||
|   | |||||||
| @@ -159,7 +159,6 @@ 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] | ||||||
|  |  | ||||||
| @@ -485,5 +484,4 @@ ENTRY(strcmp) | |||||||
|     .cfi_restore r7 |     .cfi_restore r7 | ||||||
|  |  | ||||||
| 	bx	lr | 	bx	lr | ||||||
|     .cfi_endproc |  | ||||||
| END(strcmp) | END(strcmp) | ||||||
|   | |||||||
| @@ -94,7 +94,7 @@ | |||||||
| #endif | #endif | ||||||
|  |  | ||||||
| #define _ENTRY(x) \ | #define _ENTRY(x) \ | ||||||
| 	.text; _ALIGN_TEXT; .globl x; .type x,@function; x: | 	.text; _ALIGN_TEXT; .globl x; .type x,@function; x: .cfi_startproc; | ||||||
| #define _LABEL(x) \ | #define _LABEL(x) \ | ||||||
| 	.globl x; x: | 	.globl x; x: | ||||||
|  |  | ||||||
| @@ -175,7 +175,7 @@ | |||||||
| #define	NENTRY(y)	_ENTRY(_C_LABEL(y)) | #define	NENTRY(y)	_ENTRY(_C_LABEL(y)) | ||||||
| #define	ASENTRY(y)	_ENTRY(_ASM_LABEL(y)); _PROF_PROLOGUE | #define	ASENTRY(y)	_ENTRY(_ASM_LABEL(y)); _PROF_PROLOGUE | ||||||
| #define	LABEL(y)	_LABEL(_C_LABEL(y)) | #define	LABEL(y)	_LABEL(_C_LABEL(y)) | ||||||
| #define	END(y)		.size y, . - y | #define	END(y)		.cfi_endproc; .size y, . - y | ||||||
|  |  | ||||||
| #define	ASMSTR		.asciz | #define	ASMSTR		.asciz | ||||||
|  |  | ||||||
|   | |||||||
| @@ -38,14 +38,12 @@ | |||||||
| 	 *  ws@tools.de     (Wolfgang Solfrank, TooLs GmbH) +49-228-985800 | 	 *  ws@tools.de     (Wolfgang Solfrank, TooLs GmbH) +49-228-985800 | ||||||
| 	 */ | 	 */ | ||||||
|  |  | ||||||
| #ifdef MEMCOPY | #if defined(MEMCOPY) | ||||||
| ENTRY(memcpy) | ENTRY(memcpy) | ||||||
| #else | #elif defined(MEMMOVE) | ||||||
| #ifdef MEMMOVE |  | ||||||
| ENTRY(memmove) | ENTRY(memmove) | ||||||
| #else | #else | ||||||
| ENTRY(bcopy) | ENTRY(bcopy) | ||||||
| #endif |  | ||||||
| #endif | #endif | ||||||
| 	pushl	%esi | 	pushl	%esi | ||||||
| 	pushl	%edi | 	pushl	%edi | ||||||
| @@ -91,3 +89,10 @@ ENTRY(bcopy) | |||||||
| 	popl	%esi | 	popl	%esi | ||||||
| 	cld | 	cld | ||||||
| 	ret | 	ret | ||||||
|  | #if defined(MEMCOPY) | ||||||
|  | END(memcpy) | ||||||
|  | #elif defined(MEMMOVE) | ||||||
|  | END(memmove) | ||||||
|  | #else | ||||||
|  | END(bcopy) | ||||||
|  | #endif | ||||||
|   | |||||||
| @@ -70,3 +70,4 @@ ENTRY(__bionic_clone) | |||||||
|         hlt |         hlt | ||||||
| 2: | 2: | ||||||
|         ret |         ret | ||||||
|  | END(__bionic_clone) | ||||||
|   | |||||||
| @@ -63,6 +63,7 @@ ENTRY(_setjmp) | |||||||
|  |  | ||||||
| 	xorl	%eax,%eax | 	xorl	%eax,%eax | ||||||
| 	ret | 	ret | ||||||
|  | END(_setjmp) | ||||||
|  |  | ||||||
| ENTRY(_longjmp) | ENTRY(_longjmp) | ||||||
| 	movq    (_JB_RBX * 8)(%rdi),%rbx | 	movq    (_JB_RBX * 8)(%rdi),%rbx | ||||||
| @@ -80,3 +81,4 @@ ENTRY(_longjmp) | |||||||
| 	incl	%eax | 	incl	%eax | ||||||
| 1:	movq	%r11,0(%rsp) | 1:	movq	%r11,0(%rsp) | ||||||
| 	ret | 	ret | ||||||
|  | END(_longjmp) | ||||||
|   | |||||||
| @@ -42,7 +42,7 @@ ENTRY(__futex_wait) | |||||||
|     mov     $__NR_futex, %eax |     mov     $__NR_futex, %eax | ||||||
|     syscall |     syscall | ||||||
|     ret |     ret | ||||||
|  | END(__futex_wait) | ||||||
|  |  | ||||||
| /* int __futex_wake(volatile void *ftx, int count) */ | /* int __futex_wake(volatile void *ftx, int count) */ | ||||||
|  |  | ||||||
| @@ -52,12 +52,14 @@ ENTRY(__futex_wake) | |||||||
|     mov     $__NR_futex, %eax |     mov     $__NR_futex, %eax | ||||||
|     syscall |     syscall | ||||||
|     ret |     ret | ||||||
|  | END(__futex_wake) | ||||||
|  |  | ||||||
| /* int __futex_syscall3(volatile void *ftx, int op, int count) */ | /* int __futex_syscall3(volatile void *ftx, int op, int count) */ | ||||||
| ENTRY(__futex_syscall3) | ENTRY(__futex_syscall3) | ||||||
|     mov     $__NR_futex, %eax |     mov     $__NR_futex, %eax | ||||||
|     syscall |     syscall | ||||||
|     ret |     ret | ||||||
|  | END(__futex_syscall3) | ||||||
|  |  | ||||||
| /* int __futex_syscall4(volatile void *ftx, int op, int val, const struct timespec *timeout) */ | /* int __futex_syscall4(volatile void *ftx, int op, int val, const struct timespec *timeout) */ | ||||||
| ENTRY(__futex_syscall4) | ENTRY(__futex_syscall4) | ||||||
| @@ -65,3 +67,4 @@ ENTRY(__futex_syscall4) | |||||||
|     mov     $__NR_futex, %eax |     mov     $__NR_futex, %eax | ||||||
|     syscall |     syscall | ||||||
|     ret |     ret | ||||||
|  | END(__futex_syscall4) | ||||||
|   | |||||||
| @@ -73,6 +73,7 @@ ENTRY(setjmp) | |||||||
|  |  | ||||||
| 2:	xorl	%eax,%eax | 2:	xorl	%eax,%eax | ||||||
| 	ret | 	ret | ||||||
|  | END(setjmp) | ||||||
|  |  | ||||||
| ENTRY(longjmp) | ENTRY(longjmp) | ||||||
| 	movq	%rdi,%r12 | 	movq	%rdi,%r12 | ||||||
| @@ -101,3 +102,4 @@ ENTRY(longjmp) | |||||||
| 	incl	%eax | 	incl	%eax | ||||||
| 1:	movq	%r11,0(%rsp) | 1:	movq	%r11,0(%rsp) | ||||||
| 	ret | 	ret | ||||||
|  | END(longjmp) | ||||||
|   | |||||||
| @@ -77,6 +77,7 @@ ENTRY(sigsetjmp) | |||||||
|  |  | ||||||
| 2:	xorl	%eax,%eax | 2:	xorl	%eax,%eax | ||||||
| 	ret | 	ret | ||||||
|  | END(sigsetjmp) | ||||||
|  |  | ||||||
| ENTRY(siglongjmp) | ENTRY(siglongjmp) | ||||||
| 	movq	%rdi,%r12 | 	movq	%rdi,%r12 | ||||||
| @@ -105,3 +106,4 @@ ENTRY(siglongjmp) | |||||||
| 	incl	%eax | 	incl	%eax | ||||||
| 1:	movq	%r11,0(%rsp) | 1:	movq	%r11,0(%rsp) | ||||||
| 	ret | 	ret | ||||||
|  | END(siglongjmp) | ||||||
|   | |||||||
| @@ -70,7 +70,7 @@ | |||||||
| #endif | #endif | ||||||
|  |  | ||||||
| #define _ENTRY(x) \ | #define _ENTRY(x) \ | ||||||
| 	.text; _ALIGN_TEXT; .globl x; .type x,@function; x: | 	.text; _ALIGN_TEXT; .globl x; .type x,@function; x: .cfi_startproc; | ||||||
| #define _LABEL(x) \ | #define _LABEL(x) \ | ||||||
| 	.globl x; x: | 	.globl x; x: | ||||||
|  |  | ||||||
| @@ -108,7 +108,7 @@ | |||||||
| #define	ALTENTRY(x)	NENTRY(x) | #define	ALTENTRY(x)	NENTRY(x) | ||||||
| #define	ASENTRY(y)	_ENTRY(_ASM_LABEL(y)); _PROF_PROLOGUE | #define	ASENTRY(y)	_ENTRY(_ASM_LABEL(y)); _PROF_PROLOGUE | ||||||
| #define	LABEL(y)	_LABEL(_C_LABEL(y)) | #define	LABEL(y)	_LABEL(_C_LABEL(y)) | ||||||
| #define	END(y)		.size y, . - y | #define	END(y)		.cfi_endproc; .size y, . - y | ||||||
|  |  | ||||||
| #define	ASMSTR		.asciz | #define	ASMSTR		.asciz | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Christopher Ferris
					Christopher Ferris