alpha: move __udiv_qrnnd library function to arch/alpha/lib/
We already had the implementation for __udiv_qrnnd (unsigned divide for multi-precision arithmetic) as part of the alpha math emulation code. But you can disable the math emulation code - even if you shouldn't - and then the MPI code that actually wants this functionality (and is needed by various crypto functions) will fail to build. So move the extended-precision divide code to be a regular library function, just like all the regular division code is. That way ie is available regardless of math-emulation. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
ab41f75ee6
commit
d4d016caa4
@ -16,3 +16,4 @@ extern void __divlu(void);
|
|||||||
extern void __remlu(void);
|
extern void __remlu(void);
|
||||||
extern void __divqu(void);
|
extern void __divqu(void);
|
||||||
extern void __remqu(void);
|
extern void __remqu(void);
|
||||||
|
extern unsigned long __udiv_qrnnd(unsigned long *, unsigned long, unsigned long , unsigned long);
|
||||||
|
@ -14,6 +14,7 @@ ev6-$(CONFIG_ALPHA_EV6) := ev6-
|
|||||||
ev67-$(CONFIG_ALPHA_EV67) := ev67-
|
ev67-$(CONFIG_ALPHA_EV67) := ev67-
|
||||||
|
|
||||||
lib-y = __divqu.o __remqu.o __divlu.o __remlu.o \
|
lib-y = __divqu.o __remqu.o __divlu.o __remlu.o \
|
||||||
|
udiv-qrnnd.o \
|
||||||
udelay.o \
|
udelay.o \
|
||||||
$(ev6-y)memset.o \
|
$(ev6-y)memset.o \
|
||||||
$(ev6-y)memcpy.o \
|
$(ev6-y)memcpy.o \
|
||||||
|
@ -25,6 +25,7 @@
|
|||||||
# along with GCC; see the file COPYING. If not, write to the
|
# along with GCC; see the file COPYING. If not, write to the
|
||||||
# Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
|
# Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
|
||||||
# MA 02111-1307, USA.
|
# MA 02111-1307, USA.
|
||||||
|
#include <asm/export.h>
|
||||||
|
|
||||||
.set noreorder
|
.set noreorder
|
||||||
.set noat
|
.set noat
|
||||||
@ -161,3 +162,4 @@ $Odd:
|
|||||||
ret $31,($26),1
|
ret $31,($26),1
|
||||||
|
|
||||||
.end __udiv_qrnnd
|
.end __udiv_qrnnd
|
||||||
|
EXPORT_SYMBOL(__udiv_qrnnd)
|
@ -7,4 +7,4 @@ ccflags-y := -w
|
|||||||
|
|
||||||
obj-$(CONFIG_MATHEMU) += math-emu.o
|
obj-$(CONFIG_MATHEMU) += math-emu.o
|
||||||
|
|
||||||
math-emu-objs := math.o qrnnd.o
|
math-emu-objs := math.o
|
||||||
|
@ -403,5 +403,3 @@ alpha_fp_emul_imprecise (struct pt_regs *regs, unsigned long write_mask)
|
|||||||
egress:
|
egress:
|
||||||
return si_code;
|
return si_code;
|
||||||
}
|
}
|
||||||
|
|
||||||
EXPORT_SYMBOL(__udiv_qrnnd);
|
|
||||||
|
Loading…
Reference in New Issue
Block a user