From: Joseph Myers <joseph@xxxxxxxxxxxxxxxx> This patch moves s390 from math-emu-old to math-emu, updating it for the API changes. Thanks to Stefan Liebler <stli@xxxxxxxxxxxxxxxxxx> in <https://sourceware.org/ml/libc-alpha/2015-04/msg00154.html> for the sysinfo.c changes. Signed-off-by: Joseph Myers <joseph@xxxxxxxxxxxxxxxx> --- diff --git a/arch/s390/include/asm/sfp-machine.h b/arch/s390/include/asm/sfp-machine.h index 4e16aed..67f9eed 100644 --- a/arch/s390/include/asm/sfp-machine.h +++ b/arch/s390/include/asm/sfp-machine.h @@ -38,6 +38,13 @@ #define _FP_MUL_MEAT_Q(R,X,Y) \ _FP_MUL_MEAT_4_wide(_FP_WFRACBITS_Q,R,X,Y,umul_ppmm) +#define _FP_MUL_MEAT_DW_S(R,X,Y) \ + _FP_MUL_MEAT_DW_1_wide(_FP_WFRACBITS_S,R,X,Y,umul_ppmm) +#define _FP_MUL_MEAT_DW_D(R,X,Y) \ + _FP_MUL_MEAT_DW_2_wide(_FP_WFRACBITS_D,R,X,Y,umul_ppmm) +#define _FP_MUL_MEAT_DW_Q(R,X,Y) \ + _FP_MUL_MEAT_DW_4_wide(_FP_WFRACBITS_Q,R,X,Y,umul_ppmm) + #define _FP_DIV_MEAT_S(R,X,Y) _FP_DIV_MEAT_1_udiv(S,R,X,Y) #define _FP_DIV_MEAT_D(R,X,Y) _FP_DIV_MEAT_2_udiv(D,R,X,Y) #define _FP_DIV_MEAT_Q(R,X,Y) _FP_DIV_MEAT_4_udiv(Q,R,X,Y) @@ -50,6 +57,7 @@ #define _FP_NANSIGN_Q 0 #define _FP_KEEPNANFRACP 1 +#define _FP_QNANNEGATEDP 0 /* * If one NaN is signaling and the other is not, @@ -139,4 +147,6 @@ /* We write the results always */ #define FP_INHIBIT_RESULTS 0 +#define _FP_TININESS_AFTER_ROUNDING 0 + #endif diff --git a/arch/s390/kernel/sysinfo.c b/arch/s390/kernel/sysinfo.c index c7d8df7..f963474 100644 --- a/arch/s390/kernel/sysinfo.c +++ b/arch/s390/kernel/sysinfo.c @@ -19,8 +19,8 @@ /* Sigh, math-emu. Don't ask. */ #include <asm/sfp-util.h> -#include <math-emu-old/soft-fp.h> -#include <math-emu-old/single.h> +#include <math-emu/soft-fp.h> +#include <math-emu/single.h> int topology_max_mnest; @@ -418,6 +418,7 @@ void s390_adjust_jiffies(void) FP_DECL_S(SA); FP_DECL_S(SB); FP_DECL_S(SR); FP_DECL_EX; unsigned int capability; + int mode = 0; info = (void *) get_zeroed_page(GFP_KERNEL); if (!info) @@ -436,11 +437,15 @@ void s390_adjust_jiffies(void) * point division .. math-emu here we come :-) */ FP_UNPACK_SP(SA, &fmil); - if ((info->capability >> 23) == 0) - FP_FROM_INT_S(SB, (long) info->capability, 64, long); + if ((info->capability >> 23) == 0) { + long r = info->capability; + FP_FROM_INT_S(SB, r, 64, unsigned long); + } else - FP_UNPACK_SP(SB, &info->capability); + FP_UNPACK_RAW_SP(SB, &info->capability); + _FP_UNPACK_CANONICAL(S, 1, SB); FP_DIV_S(SR, SA, SB); + _FP_PACK_CANONICAL(S, 1, SR); FP_TO_INT_S(capability, SR, 32, 0); } else /* -- Joseph S. Myers joseph@xxxxxxxxxxxxxxxx -- To unsubscribe from this list: send the line "unsubscribe linux-s390" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html