[PATCH 07/12] ARM: Separate assembler functions into their own section

Sascha Hauer s.hauer at pengutronix.de
Mon Jul 30 03:50:56 EDT 2012


On Fri, Jul 27, 2012 at 08:33:05PM +0200, Jean-Christophe PLAGNIOL-VILLARD wrote:
> From: Sascha Hauer <s.hauer at pengutronix.de>
> 
> To let the linker remove unused functions.

This patch contains the hunks I intentionally removed from the second
version of this patch because they are wrong. Please drop this patch.

Sascha

> 
> Signed-off-by: Sascha Hauer <s.hauer at pengutronix.de>
> ---
>  arch/arm/lib/findbit.S |    9 +++++++++
>  1 file changed, 9 insertions(+)
> 
> diff --git a/arch/arm/lib/findbit.S b/arch/arm/lib/findbit.S
> index ef4caff..422455d 100644
> --- a/arch/arm/lib/findbit.S
> +++ b/arch/arm/lib/findbit.S
> @@ -22,6 +22,7 @@
>   * Purpose  : Find a 'zero' bit
>   * Prototype: int find_first_zero_bit(void *addr, unsigned int maxbit);
>   */
> +.section .text._find_first_zero_bit_le
>  ENTRY(_find_first_zero_bit_le)
>  		teq	r1, #0
>  		beq	3f
> @@ -43,6 +44,7 @@ ENDPROC(_find_first_zero_bit_le)
>   * Purpose  : Find next 'zero' bit
>   * Prototype: int find_next_zero_bit(void *addr, unsigned int maxbit, int offset)
>   */
> +.section .text._find_next_zero_bit_le
>  ENTRY(_find_next_zero_bit_le)
>  		teq	r1, #0
>  		beq	3b
> @@ -63,6 +65,7 @@ ENDPROC(_find_next_zero_bit_le)
>   * Purpose  : Find a 'one' bit
>   * Prototype: int find_first_bit(const unsigned long *addr, unsigned int maxbit);
>   */
> +.section .text._find_first_bit_le
>  ENTRY(_find_first_bit_le)
>  		teq	r1, #0
>  		beq	3f
> @@ -84,6 +87,7 @@ ENDPROC(_find_first_bit_le)
>   * Purpose  : Find next 'one' bit
>   * Prototype: int find_next_zero_bit(void *addr, unsigned int maxbit, int offset)
>   */
> +.section .text._find_next_bit_le
>  ENTRY(_find_next_bit_le)
>  		teq	r1, #0
>  		beq	3b
> @@ -101,6 +105,7 @@ ENDPROC(_find_next_bit_le)
>  
>  #ifdef __ARMEB__
>  
> +.section .text._find_first_zero_bit_be
>  ENTRY(_find_first_zero_bit_be)
>  		teq	r1, #0
>  		beq	3f
> @@ -118,6 +123,7 @@ ENTRY(_find_first_zero_bit_be)
>  		mov	pc, lr
>  ENDPROC(_find_first_zero_bit_be)
>  
> +.section .text._find_next_zero_bit_be
>  ENTRY(_find_next_zero_bit_be)
>  		teq	r1, #0
>  		beq	3b
> @@ -135,6 +141,7 @@ ENTRY(_find_next_zero_bit_be)
>  		b	2b			@ loop for next bit
>  ENDPROC(_find_next_zero_bit_be)
>  
> +.section .text._find_first_bit_be
>  ENTRY(_find_first_bit_be)
>  		teq	r1, #0
>  		beq	3f
> @@ -152,6 +159,7 @@ ENTRY(_find_first_bit_be)
>  		mov	pc, lr
>  ENDPROC(_find_first_bit_be)
>  
> +.section .text._find_next_bit_be
>  ENTRY(_find_next_bit_be)
>  		teq	r1, #0
>  		beq	3b
> @@ -173,6 +181,7 @@ ENDPROC(_find_next_bit_be)
>  /*
>   * One or more bits in the LSB of r3 are assumed to be set.
>   */
> +.section .text.L_found
>  .L_found:
>  #if __LINUX_ARM_ARCH__ >= 5
>  		rsb	r0, r3, #0
> -- 
> 1.7.10.4
> 
> 

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |



More information about the barebox mailing list