From: Marek Vasut Date: Thu, 26 May 2016 16:01:41 +0000 (+0200) Subject: arm: lib: Fix uldivmod.S build on Thumb2 X-Git-Tag: v2016.07-rc1~48 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=e64d75948446b14ff817c10ae5a65c84b1d24ba7;p=u-boot arm: lib: Fix uldivmod.S build on Thumb2 This assembler source won't build in Thumb2 mode, so fix it adding the necessary Thumb2 conditional macros from unified.h . This patch also defines CONFIG_THUMB2_KERNEL and CONFIG_ARM_ASM_UNIFIED which is necessary for correct build of these files both in ARM and Thumb mode, just like Linux does. Signed-off-by: Marek Vasut Cc: Albert Aribaud Cc: Masahiro Yamada Cc: Simon Glass Cc: Tom Rini Reviewed-by: Tom Rini --- diff --git a/arch/arm/lib/uldivmod.S b/arch/arm/lib/uldivmod.S index 426c2f2406..2efcd73af8 100644 --- a/arch/arm/lib/uldivmod.S +++ b/arch/arm/lib/uldivmod.S @@ -9,10 +9,6 @@ #include #include -/* We don't use Thumb instructions for now */ -#define ARM(x...) x -#define THUMB(x...) - /* * A, Q = r0 + (r1 << 32) * B, R = r2 + (r3 << 32) @@ -226,7 +222,9 @@ THUMB( orrpl A_0, A_0, TMP ) @ Shift A to the right by the appropriate amount. rsb D_1, D_0, #32 mov Q_0, A_0, lsr D_0 - orr Q_0, A_1, lsl D_1 + ARM( orr Q_0, Q_0, A_1, lsl D_1 ) + THUMB( lsl A_1, D_1 ) + THUMB( orr Q_0, A_1 ) mov Q_1, A_1, lsr D_0 @ Move C to R mov R_0, C_0