Commit d4d016ca authored by Linus Torvalds's avatar Linus Torvalds

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: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent ab41f75e
...@@ -16,3 +16,4 @@ extern void __divlu(void); ...@@ -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- ...@@ -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 @@ ...@@ -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: ...@@ -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 ...@@ -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) ...@@ -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);
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment