[PATCH 8/9] ARM: Separate assembler functions into their own section
Sascha Hauer
s.hauer at pengutronix.de
Mon Jul 23 15:59:21 EDT 2012
On Thu, Jul 19, 2012 at 10:13:01AM +0200, Sascha Hauer wrote:
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
The changes in this file are completely wrong. These functions use
different jump labels (1b, 1f,...) to jump over function borders.
The bad thing is that the compiler does not issue any warning, it only
generates broken code.
Will fix.
Sascha
--
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