diff --git a/libc/arch-arm/cortex-a15/bionic/__strcat_chk.S b/libc/arch-arm/cortex-a15/bionic/__strcat_chk.S index 616da0104..dc86150d5 100644 --- a/libc/arch-arm/cortex-a15/bionic/__strcat_chk.S +++ b/libc/arch-arm/cortex-a15/bionic/__strcat_chk.S @@ -38,7 +38,6 @@ // Check that the two lengths together don't exceed the threshold, then // do a memcpy of the data. ENTRY(__strcat_chk) - .cfi_startproc pld [r0, #0] push {r0, lr} .save {r0, lr} @@ -188,8 +187,6 @@ ENTRY(__strcat_chk) mov r2, r4 add r0, r0, r3 pop {r4, r5} - - .cfi_endproc END(__strcat_chk) #define MEMCPY_BASE __strcat_chk_memcpy_base @@ -198,7 +195,6 @@ END(__strcat_chk) #include "memcpy_base.S" ENTRY_PRIVATE(__strcat_chk_failed) - .cfi_startproc .save {r0, lr} .save {r4, r5} @@ -218,8 +214,6 @@ error_code: .word BIONIC_EVENT_STRCAT_BUFFER_OVERFLOW error_message: .word error_string-(1b+4) - - .cfi_endproc END(__strcat_chk_failed) .data diff --git a/libc/arch-arm/cortex-a15/bionic/__strcpy_chk.S b/libc/arch-arm/cortex-a15/bionic/__strcpy_chk.S index 929cc98df..95aaf4f56 100644 --- a/libc/arch-arm/cortex-a15/bionic/__strcpy_chk.S +++ b/libc/arch-arm/cortex-a15/bionic/__strcpy_chk.S @@ -37,7 +37,6 @@ // Get the length of the source string first, then do a memcpy of the data // instead of a strcpy. ENTRY(__strcpy_chk) - .cfi_startproc pld [r0, #0] push {r0, lr} .save {r0, lr} @@ -155,8 +154,6 @@ ENTRY(__strcpy_chk) // Add 1 for copy length to get the string terminator. add r2, r3, #1 - - .cfi_endproc END(__strcpy_chk) #define MEMCPY_BASE __strcpy_chk_memcpy_base @@ -164,7 +161,6 @@ END(__strcpy_chk) #include "memcpy_base.S" ENTRY_PRIVATE(__strcpy_chk_failed) - .cfi_startproc .save {r0, lr} .cfi_def_cfa_offset 8 .cfi_rel_offset r0, 0 @@ -179,8 +175,6 @@ error_code: .word BIONIC_EVENT_STRCPY_BUFFER_OVERFLOW error_message: .word error_string-(1b+4) - - .cfi_endproc END(__strcpy_chk_failed) .data diff --git a/libc/arch-arm/cortex-a15/bionic/memcpy.S b/libc/arch-arm/cortex-a15/bionic/memcpy.S index 6f77ca628..badc93bf1 100644 --- a/libc/arch-arm/cortex-a15/bionic/memcpy.S +++ b/libc/arch-arm/cortex-a15/bionic/memcpy.S @@ -63,24 +63,19 @@ .fpu neon ENTRY(__memcpy_chk) - .cfi_startproc cmp r2, r3 bhi __memcpy_chk_fail // Fall through to memcpy... - .cfi_endproc END(__memcpy_chk) ENTRY(memcpy) - .cfi_startproc pld [r1, #64] push {r0, lr} .save {r0, lr} .cfi_def_cfa_offset 8 .cfi_rel_offset r0, 0 .cfi_rel_offset lr, 4 - - .cfi_endproc END(memcpy) #define MEMCPY_BASE __memcpy_base @@ -88,7 +83,6 @@ END(memcpy) #include "memcpy_base.S" ENTRY_PRIVATE(__memcpy_chk_fail) - .cfi_startproc // Preserve lr for backtrace. push {lr} .save {lr} @@ -104,7 +98,6 @@ error_code: .word BIONIC_EVENT_MEMCPY_BUFFER_OVERFLOW error_message: .word error_string-(1b+8) - .cfi_endproc END(__memcpy_chk_fail) .data diff --git a/libc/arch-arm/cortex-a15/bionic/memcpy_base.S b/libc/arch-arm/cortex-a15/bionic/memcpy_base.S index 12465b999..6ba4931f9 100644 --- a/libc/arch-arm/cortex-a15/bionic/memcpy_base.S +++ b/libc/arch-arm/cortex-a15/bionic/memcpy_base.S @@ -54,7 +54,6 @@ */ ENTRY_PRIVATE(MEMCPY_BASE) - .cfi_startproc .save {r0, lr} .cfi_def_cfa_offset 8 .cfi_rel_offset r0, 0 @@ -170,12 +169,9 @@ ENTRY_PRIVATE(MEMCPY_BASE) eor r3, r0, r1 ands r3, r3, #0x3 bne .L_copy_unknown_alignment - - .cfi_endproc END(MEMCPY_BASE) ENTRY_PRIVATE(MEMCPY_BASE_ALIGNED) - .cfi_startproc .save {r0, lr} .cfi_def_cfa_offset 8 .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. b .L_word_aligned - - .cfi_endproc END(MEMCPY_BASE_ALIGNED) diff --git a/libc/arch-arm/cortex-a15/bionic/memset.S b/libc/arch-arm/cortex-a15/bionic/memset.S index 701310c1f..4e6d322d6 100644 --- a/libc/arch-arm/cortex-a15/bionic/memset.S +++ b/libc/arch-arm/cortex-a15/bionic/memset.S @@ -40,7 +40,6 @@ .syntax unified ENTRY(__memset_chk) - .cfi_startproc cmp r2, r3 bls .L_done @@ -59,21 +58,16 @@ error_code: .word BIONIC_EVENT_MEMSET_BUFFER_OVERFLOW error_message: .word error_string-(1b+8) - - .cfi_endproc END(__memset_chk) ENTRY(bzero) - .cfi_startproc mov r2, r1 mov r1, #0 .L_done: // Fall through to memset... - .cfi_endproc END(bzero) ENTRY(memset) - .cfi_startproc .save {r0} stmfd sp!, {r0} .cfi_def_cfa_offset 4 @@ -192,7 +186,6 @@ ENTRY(memset) strbcs r1, [r0], #1 ldmfd sp!, {r0} bx lr - .cfi_endproc END(memset) .data diff --git a/libc/arch-arm/cortex-a15/bionic/strcmp.S b/libc/arch-arm/cortex-a15/bionic/strcmp.S index 422be863d..0cccf06c9 100644 --- a/libc/arch-arm/cortex-a15/bionic/strcmp.S +++ b/libc/arch-arm/cortex-a15/bionic/strcmp.S @@ -159,7 +159,6 @@ ENTRY(strcmp) #endif /* not __ARMEB__ */ .endm /* setup_return */ - .cfi_startproc pld [r0, #0] pld [r1, #0] @@ -375,5 +374,4 @@ ENTRY(strcmp) 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 23b4e9852..700916822 100644 --- a/libc/arch-arm/cortex-a9/bionic/__strcat_chk.S +++ b/libc/arch-arm/cortex-a9/bionic/__strcat_chk.S @@ -38,7 +38,6 @@ // Check that the two lengths together don't exceed the threshold, then // do a memcpy of the data. ENTRY(__strcat_chk) - .cfi_startproc pld [r0, #0] push {r0, lr} .save {r0, lr} @@ -193,7 +192,6 @@ ENTRY(__strcat_chk) pop {r4, r5} // Fall through into the memcpy_base function. - .cfi_endproc END(__strcat_chk) #define MEMCPY_BASE __strcat_chk_memcpy_base @@ -201,8 +199,6 @@ END(__strcat_chk) #include "memcpy_base.S" ENTRY_PRIVATE(__strcat_chk_fail) - .cfi_startproc - .save {r0, lr} .save {r4, r5} .cfi_def_cfa_offset 8 @@ -221,8 +217,6 @@ error_code: .word BIONIC_EVENT_STRCAT_BUFFER_OVERFLOW error_message: .word error_string-(1b+4) - - .cfi_endproc END(__strcat_chk_fail) .data diff --git a/libc/arch-arm/cortex-a9/bionic/__strcpy_chk.S b/libc/arch-arm/cortex-a9/bionic/__strcpy_chk.S index adefdc39b..908eec4c0 100644 --- a/libc/arch-arm/cortex-a9/bionic/__strcpy_chk.S +++ b/libc/arch-arm/cortex-a9/bionic/__strcpy_chk.S @@ -37,7 +37,6 @@ // Get the length of the source string first, then do a memcpy of the data // instead of a strcpy. ENTRY(__strcpy_chk) - .cfi_startproc pld [r0, #0] push {r0, lr} .save {r0, lr} @@ -158,8 +157,6 @@ ENTRY(__strcpy_chk) // Add 1 for copy length to get the string terminator. add r2, r3, #1 - .cfi_endproc - // Fall through into the memcpy_base function. END(__strcpy_chk) @@ -168,8 +165,6 @@ END(__strcpy_chk) #include "memcpy_base.S" ENTRY_PRIVATE(__strcpy_chk_fail) - .cfi_startproc - .save {r0, lr} .cfi_def_cfa_offset 8 .cfi_rel_offset r0, 0 @@ -185,8 +180,6 @@ error_code: .word BIONIC_EVENT_STRCPY_BUFFER_OVERFLOW error_message: .word error_string-(1b+4) - - .cfi_endproc END(__strcpy_chk_fail) .data diff --git a/libc/arch-arm/cortex-a9/bionic/memcpy.S b/libc/arch-arm/cortex-a9/bionic/memcpy.S index 6e0712f59..72c1a668c 100644 --- a/libc/arch-arm/cortex-a9/bionic/memcpy.S +++ b/libc/arch-arm/cortex-a9/bionic/memcpy.S @@ -41,17 +41,13 @@ .thumb_func ENTRY(__memcpy_chk) - .cfi_startproc cmp r2, r3 bhi __memcpy_chk_fail // Fall through to memcpy... - .cfi_endproc END(__memcpy_chk) ENTRY(memcpy) - .cfi_startproc - pld [r1, #0] stmfd sp!, {r0, lr} .save {r0, lr} @@ -59,8 +55,6 @@ ENTRY(memcpy) .cfi_rel_offset r0, 0 .cfi_rel_offset lr, 4 pld [r1, #64] - - .cfi_endproc END(memcpy) #define MEMCPY_BASE __memcpy_base @@ -68,7 +62,6 @@ END(memcpy) #include "memcpy_base.S" ENTRY_PRIVATE(__memcpy_chk_fail) - .cfi_startproc // Preserve lr for backtrace. push {lr} .save {lr} @@ -84,7 +77,6 @@ error_code: .word BIONIC_EVENT_MEMCPY_BUFFER_OVERFLOW error_message: .word error_string-(1b+4) - .cfi_endproc END(__memcpy_chk_fail) .data diff --git a/libc/arch-arm/cortex-a9/bionic/memcpy_base.S b/libc/arch-arm/cortex-a9/bionic/memcpy_base.S index 55fd3bd56..c385657ca 100644 --- a/libc/arch-arm/cortex-a9/bionic/memcpy_base.S +++ b/libc/arch-arm/cortex-a9/bionic/memcpy_base.S @@ -33,7 +33,6 @@ */ ENTRY_PRIVATE(MEMCPY_BASE) - .cfi_startproc .save {r0, lr} .cfi_def_cfa_offset 8 .cfi_rel_offset r0, 0 @@ -137,13 +136,9 @@ ENTRY_PRIVATE(MEMCPY_BASE) ldmfd sp!, {r0, lr} bx lr - - .cfi_endproc END(MEMCPY_BASE) ENTRY_PRIVATE(MEMCPY_BASE_ALIGNED) - .cfi_startproc - .save {r0, lr} .cfi_def_cfa_offset 8 .cfi_rel_offset r0, 0 @@ -228,6 +223,4 @@ ENTRY_PRIVATE(MEMCPY_BASE_ALIGNED) 6: ldmfd sp!, {r4-r8} ldmfd sp!, {r0, pc} - - .cfi_endproc END(MEMCPY_BASE_ALIGNED) diff --git a/libc/arch-arm/cortex-a9/bionic/memset.S b/libc/arch-arm/cortex-a9/bionic/memset.S index e2a3f7503..7f77dad42 100644 --- a/libc/arch-arm/cortex-a9/bionic/memset.S +++ b/libc/arch-arm/cortex-a9/bionic/memset.S @@ -38,7 +38,6 @@ .fpu neon ENTRY(__memset_chk) - .cfi_startproc cmp r2, r3 bls .L_done @@ -57,25 +56,19 @@ error_code: .word BIONIC_EVENT_MEMSET_BUFFER_OVERFLOW error_message: .word error_string-(1b+8) - - .cfi_endproc END(__memset_chk) ENTRY(bzero) - .cfi_startproc mov r2, r1 mov r1, #0 .L_done: // Fall through to memset... - .cfi_endproc END(bzero) /* memset() returns its first argument. */ 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 bhi __memset_large_copy @@ -115,13 +108,9 @@ ENTRY(memset) strcsb r1, [r0], #1 ldmfd sp!, {r0} bx lr - - .cfi_endproc END(memset) ENTRY_PRIVATE(__memset_large_copy) - .cfi_startproc - /* compute the offset to align the destination * offset = (4-(src&3))&3 = -src & 3 */ @@ -196,7 +185,6 @@ ENTRY_PRIVATE(__memset_large_copy) strcsb r1, [r0] ldmfd sp!, {r0, r4-r7, lr} bx lr - .cfi_endproc END(__memset_large_copy) .data diff --git a/libc/arch-arm/cortex-a9/bionic/strcmp.S b/libc/arch-arm/cortex-a9/bionic/strcmp.S index 24a4157bd..eacdb8904 100644 --- a/libc/arch-arm/cortex-a9/bionic/strcmp.S +++ b/libc/arch-arm/cortex-a9/bionic/strcmp.S @@ -159,7 +159,6 @@ ENTRY(strcmp) #endif /* not __ARMEB__ */ .endm /* setup_return */ - .cfi_startproc pld [r0, #0] pld [r1, #0] @@ -547,5 +546,4 @@ ENTRY(strcmp) adds sp, sp, #16 bx lr - .cfi_endproc END(strcmp) diff --git a/libc/arch-arm/include/machine/asm.h b/libc/arch-arm/include/machine/asm.h index 047e54d17..f16baf882 100644 --- a/libc/arch-arm/include/machine/asm.h +++ b/libc/arch-arm/include/machine/asm.h @@ -70,12 +70,12 @@ #define _ASM_TYPE_FUNCTION #function #define _ASM_TYPE_OBJECT #object #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 _END(x) \ - .fnend; \ + .fnend; .cfi_endproc; \ _ASM_SIZE(x) #ifdef GPROF diff --git a/libc/arch-arm/krait/bionic/__strcat_chk.S b/libc/arch-arm/krait/bionic/__strcat_chk.S index 302478e41..a5d06f3f8 100644 --- a/libc/arch-arm/krait/bionic/__strcat_chk.S +++ b/libc/arch-arm/krait/bionic/__strcat_chk.S @@ -38,7 +38,6 @@ // Check that the two lengths together don't exceed the threshold, then // do a memcpy of the data. ENTRY(__strcat_chk) - .cfi_startproc pld [r0, #0] push {r0, lr} .save {r0, lr} @@ -188,8 +187,6 @@ ENTRY(__strcat_chk) mov r2, r4 add r0, r0, r3 pop {r4, r5} - - .cfi_endproc END(__strcat_chk) #define MEMCPY_BASE __strcat_chk_memcpy_base @@ -197,7 +194,6 @@ END(__strcat_chk) #include "memcpy_base.S" ENTRY_PRIVATE(__strcat_chk_failed) - .cfi_startproc .save {r0, lr} .save {r4, r5} .cfi_def_cfa_offset 8 @@ -216,8 +212,6 @@ error_code: .word BIONIC_EVENT_STRCAT_BUFFER_OVERFLOW error_message: .word error_string-(1b+4) - - .cfi_endproc END(__strcat_chk_failed) .data diff --git a/libc/arch-arm/krait/bionic/__strcpy_chk.S b/libc/arch-arm/krait/bionic/__strcpy_chk.S index a2c1df1c1..95aaf4f56 100644 --- a/libc/arch-arm/krait/bionic/__strcpy_chk.S +++ b/libc/arch-arm/krait/bionic/__strcpy_chk.S @@ -37,7 +37,6 @@ // Get the length of the source string first, then do a memcpy of the data // instead of a strcpy. ENTRY(__strcpy_chk) - .cfi_startproc pld [r0, #0] push {r0, lr} .save {r0, lr} @@ -155,8 +154,6 @@ ENTRY(__strcpy_chk) // Add 1 for copy length to get the string terminator. add r2, r3, #1 - - .cfi_endproc END(__strcpy_chk) #define MEMCPY_BASE __strcpy_chk_memcpy_base @@ -164,7 +161,6 @@ END(__strcpy_chk) #include "memcpy_base.S" ENTRY_PRIVATE(__strcpy_chk_failed) - .cfi_startproc .save {r0, lr} .cfi_def_cfa_offset 8 .cfi_rel_offset r0, 0 @@ -179,7 +175,6 @@ error_code: .word BIONIC_EVENT_STRCPY_BUFFER_OVERFLOW error_message: .word error_string-(1b+4) - .cfi_endproc END(__strcpy_chk_failed) .data diff --git a/libc/arch-arm/krait/bionic/memcpy.S b/libc/arch-arm/krait/bionic/memcpy.S index 14fafb930..54405fa9d 100644 --- a/libc/arch-arm/krait/bionic/memcpy.S +++ b/libc/arch-arm/krait/bionic/memcpy.S @@ -44,23 +44,19 @@ .thumb_func ENTRY(__memcpy_chk) - .cfi_startproc cmp r2, r3 bhi __memcpy_chk_fail // Fall through to memcpy... - .cfi_endproc END(__memcpy_chk) ENTRY(memcpy) - .cfi_startproc pld [r1, #64] stmfd sp!, {r0, lr} .save {r0, lr} .cfi_def_cfa_offset 8 .cfi_rel_offset r0, 0 .cfi_rel_offset lr, 4 - .cfi_endproc END(memcpy) #define MEMCPY_BASE __memcpy_base @@ -68,7 +64,6 @@ END(memcpy) #include "memcpy_base.S" ENTRY_PRIVATE(__memcpy_chk_fail) - .cfi_startproc // Preserve lr for backtrace. push {lr} .save {lr} @@ -84,7 +79,6 @@ error_code: .word BIONIC_EVENT_MEMCPY_BUFFER_OVERFLOW error_message: .word error_string-(1b+4) - .cfi_endproc END(__memcpy_chk_fail) .data diff --git a/libc/arch-arm/krait/bionic/memcpy_base.S b/libc/arch-arm/krait/bionic/memcpy_base.S index 9984177d3..99fc255f3 100644 --- a/libc/arch-arm/krait/bionic/memcpy_base.S +++ b/libc/arch-arm/krait/bionic/memcpy_base.S @@ -36,7 +36,6 @@ // Assumes neon instructions and a cache line size of 32 bytes. ENTRY_PRIVATE(MEMCPY_BASE) - .cfi_startproc .save {r0, lr} .cfi_def_cfa_offset 8 .cfi_rel_offset r0, 0 @@ -122,6 +121,4 @@ ENTRY_PRIVATE(MEMCPY_BASE) ldmfd sp!, {r0, lr} bx lr - - .cfi_endproc END(MEMCPY_BASE) diff --git a/libc/arch-arm/krait/bionic/memset.S b/libc/arch-arm/krait/bionic/memset.S index c5a93862c..1563327c4 100644 --- a/libc/arch-arm/krait/bionic/memset.S +++ b/libc/arch-arm/krait/bionic/memset.S @@ -39,7 +39,6 @@ .fpu neon ENTRY(__memset_chk) - .cfi_startproc cmp r2, r3 bls .L_done @@ -58,23 +57,18 @@ error_code: .word BIONIC_EVENT_MEMSET_BUFFER_OVERFLOW error_message: .word error_string-(1b+8) - - .cfi_endproc END(__memset_chk) ENTRY(bzero) - .cfi_startproc mov r2, r1 mov r1, #0 .L_done: // Fall through to memset... - .cfi_endproc END(bzero) /* memset() returns its first argument. */ ENTRY(memset) - .cfi_startproc .save {r0} stmfd sp!, {r0} .cfi_def_cfa_offset 4 @@ -111,7 +105,6 @@ ENTRY(memset) strcsb r1, [r0], #1 ldmfd sp!, {r0} bx lr - .cfi_endproc END(memset) .data diff --git a/libc/arch-arm/krait/bionic/strcmp.S b/libc/arch-arm/krait/bionic/strcmp.S index e78bc9cfd..f735fb5e7 100644 --- a/libc/arch-arm/krait/bionic/strcmp.S +++ b/libc/arch-arm/krait/bionic/strcmp.S @@ -159,7 +159,6 @@ ENTRY(strcmp) #endif /* not __ARMEB__ */ .endm /* setup_return */ - .cfi_startproc pld [r0, #0] pld [r1, #0] @@ -485,5 +484,4 @@ ENTRY(strcmp) .cfi_restore r7 bx lr - .cfi_endproc END(strcmp) diff --git a/libc/arch-x86/include/machine/asm.h b/libc/arch-x86/include/machine/asm.h index 2e8d298c7..5ccf78f13 100644 --- a/libc/arch-x86/include/machine/asm.h +++ b/libc/arch-x86/include/machine/asm.h @@ -94,7 +94,7 @@ #endif #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) \ .globl x; x: @@ -175,7 +175,7 @@ #define NENTRY(y) _ENTRY(_C_LABEL(y)) #define ASENTRY(y) _ENTRY(_ASM_LABEL(y)); _PROF_PROLOGUE #define LABEL(y) _LABEL(_C_LABEL(y)) -#define END(y) .size y, . - y +#define END(y) .cfi_endproc; .size y, . - y #define ASMSTR .asciz diff --git a/libc/arch-x86/string/bcopy.S b/libc/arch-x86/string/bcopy.S index dde5ae111..40df1d026 100644 --- a/libc/arch-x86/string/bcopy.S +++ b/libc/arch-x86/string/bcopy.S @@ -38,14 +38,12 @@ * ws@tools.de (Wolfgang Solfrank, TooLs GmbH) +49-228-985800 */ -#ifdef MEMCOPY +#if defined(MEMCOPY) ENTRY(memcpy) -#else -#ifdef MEMMOVE +#elif defined(MEMMOVE) ENTRY(memmove) #else ENTRY(bcopy) -#endif #endif pushl %esi pushl %edi @@ -91,3 +89,10 @@ ENTRY(bcopy) popl %esi cld ret +#if defined(MEMCOPY) +END(memcpy) +#elif defined(MEMMOVE) +END(memmove) +#else +END(bcopy) +#endif diff --git a/libc/arch-x86_64/bionic/__bionic_clone.S b/libc/arch-x86_64/bionic/__bionic_clone.S index 309c36539..769201343 100644 --- a/libc/arch-x86_64/bionic/__bionic_clone.S +++ b/libc/arch-x86_64/bionic/__bionic_clone.S @@ -70,3 +70,4 @@ ENTRY(__bionic_clone) hlt 2: ret +END(__bionic_clone) diff --git a/libc/arch-x86_64/bionic/_setjmp.S b/libc/arch-x86_64/bionic/_setjmp.S index d9a59f7aa..e9b8dbbd5 100644 --- a/libc/arch-x86_64/bionic/_setjmp.S +++ b/libc/arch-x86_64/bionic/_setjmp.S @@ -63,6 +63,7 @@ ENTRY(_setjmp) xorl %eax,%eax ret +END(_setjmp) ENTRY(_longjmp) movq (_JB_RBX * 8)(%rdi),%rbx @@ -80,3 +81,4 @@ ENTRY(_longjmp) incl %eax 1: movq %r11,0(%rsp) ret +END(_longjmp) diff --git a/libc/arch-x86_64/bionic/futex_x86_64.S b/libc/arch-x86_64/bionic/futex_x86_64.S index d94792edc..48a437e76 100644 --- a/libc/arch-x86_64/bionic/futex_x86_64.S +++ b/libc/arch-x86_64/bionic/futex_x86_64.S @@ -42,7 +42,7 @@ ENTRY(__futex_wait) mov $__NR_futex, %eax syscall ret - +END(__futex_wait) /* int __futex_wake(volatile void *ftx, int count) */ @@ -52,12 +52,14 @@ ENTRY(__futex_wake) mov $__NR_futex, %eax syscall ret +END(__futex_wake) /* int __futex_syscall3(volatile void *ftx, int op, int count) */ ENTRY(__futex_syscall3) mov $__NR_futex, %eax syscall ret +END(__futex_syscall3) /* int __futex_syscall4(volatile void *ftx, int op, int val, const struct timespec *timeout) */ ENTRY(__futex_syscall4) @@ -65,3 +67,4 @@ ENTRY(__futex_syscall4) mov $__NR_futex, %eax syscall ret +END(__futex_syscall4) diff --git a/libc/arch-x86_64/bionic/setjmp.S b/libc/arch-x86_64/bionic/setjmp.S index 1641add9a..4dd902891 100644 --- a/libc/arch-x86_64/bionic/setjmp.S +++ b/libc/arch-x86_64/bionic/setjmp.S @@ -73,6 +73,7 @@ ENTRY(setjmp) 2: xorl %eax,%eax ret +END(setjmp) ENTRY(longjmp) movq %rdi,%r12 @@ -101,3 +102,4 @@ ENTRY(longjmp) incl %eax 1: movq %r11,0(%rsp) ret +END(longjmp) diff --git a/libc/arch-x86_64/bionic/sigsetjmp.S b/libc/arch-x86_64/bionic/sigsetjmp.S index 51b055a0f..842d6ffb5 100644 --- a/libc/arch-x86_64/bionic/sigsetjmp.S +++ b/libc/arch-x86_64/bionic/sigsetjmp.S @@ -77,6 +77,7 @@ ENTRY(sigsetjmp) 2: xorl %eax,%eax ret +END(sigsetjmp) ENTRY(siglongjmp) movq %rdi,%r12 @@ -105,3 +106,4 @@ ENTRY(siglongjmp) incl %eax 1: movq %r11,0(%rsp) ret +END(siglongjmp) diff --git a/libc/arch-x86_64/include/machine/asm.h b/libc/arch-x86_64/include/machine/asm.h index 07b241c8a..310b23000 100644 --- a/libc/arch-x86_64/include/machine/asm.h +++ b/libc/arch-x86_64/include/machine/asm.h @@ -70,7 +70,7 @@ #endif #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) \ .globl x; x: @@ -108,7 +108,7 @@ #define ALTENTRY(x) NENTRY(x) #define ASENTRY(y) _ENTRY(_ASM_LABEL(y)); _PROF_PROLOGUE #define LABEL(y) _LABEL(_C_LABEL(y)) -#define END(y) .size y, . - y +#define END(y) .cfi_endproc; .size y, . - y #define ASMSTR .asciz