Checking patch sysdeps/i386/fpu/e_acosl.c... Checking patch sysdeps/i386/fpu/e_fmodl.c... Checking patch sysdeps/i386/fpu/fclrexcpt.c... error: while searching for: /* Bah, we have to clear selected exceptions. Since there is no `fldsw' instruction we have to do it the hard way. */ __asm__ ("fnstenv %0" : "=m" (*&temp)); /* Clear the relevant bits. */ temp.__status_word &= excepts ^ FE_ALL_EXCEPT; /* Put the new data in effect. */ __asm__ ("fldenv %0" : : "m" (*&temp)); /* If the CPU supports SSE, we clear the MXCSR as well. */ if (CPU_FEATURE_USABLE (SSE)) error: patch failed: sysdeps/i386/fpu/fclrexcpt.c:30 error: sysdeps/i386/fpu/fclrexcpt.c: patch does not apply Checking patch sysdeps/i386/fpu/fedisblxcpt.c... error: while searching for: unsigned short int new_exc, old_exc; /* Get the current control word. */ __asm__ ("fstcw %0" : "=m" (*&new_exc)); old_exc = (~new_exc) & FE_ALL_EXCEPT; excepts &= FE_ALL_EXCEPT; new_exc |= excepts; __asm__ ("fldcw %0" : : "m" (*&new_exc)); /* If the CPU supports SSE we set the MXCSR as well. */ if (CPU_FEATURE_USABLE (SSE)) error: patch failed: sysdeps/i386/fpu/fedisblxcpt.c:26 error: sysdeps/i386/fpu/fedisblxcpt.c: patch does not apply Checking patch sysdeps/i386/fpu/feenablxcpt.c... error: while searching for: unsigned short int old_exc; /* Get the current control word. */ __asm__ ("fstcw %0" : "=m" (*&new_exc)); excepts &= FE_ALL_EXCEPT; old_exc = (~new_exc) & FE_ALL_EXCEPT; new_exc &= ~excepts; __asm__ ("fldcw %0" : : "m" (*&new_exc)); /* If the CPU supports SSE we set the MXCSR as well. */ if (CPU_FEATURE_USABLE (SSE)) error: patch failed: sysdeps/i386/fpu/feenablxcpt.c:27 error: sysdeps/i386/fpu/feenablxcpt.c: patch does not apply Checking patch sysdeps/i386/fpu/fegetenv.c... error: while searching for: int __fegetenv (fenv_t *envp) { __asm__ ("fnstenv %0" : "=m" (*envp)); /* And load it right back since the processor changes the mask. Intel thought this opcode to be used in interrupt handlers which would block all exceptions. */ __asm__ ("fldenv %0" : : "m" (*envp)); if (CPU_FEATURE_USABLE (SSE)) __asm__ ("stmxcsr %0" : "=m" (envp->__eip)); /* Success. */ return 0; error: patch failed: sysdeps/i386/fpu/fegetenv.c:23 error: sysdeps/i386/fpu/fegetenv.c: patch does not apply Checking patch sysdeps/i386/fpu/fegetexcept.c... error: while searching for: unsigned short int exc; /* Get the current control word. */ __asm__ ("fstcw %0" : "=m" (*&exc)); return (~exc) & FE_ALL_EXCEPT; } error: patch failed: sysdeps/i386/fpu/fegetexcept.c:24 error: sysdeps/i386/fpu/fegetexcept.c: patch does not apply Checking patch sysdeps/i386/fpu/fegetmode.c... error: while searching for: { _FPU_GETCW (modep->__control_word); if (CPU_FEATURE_USABLE (SSE)) __asm__ ("stmxcsr %0" : "=m" (modep->__mxcsr)); return 0; } error: patch failed: sysdeps/i386/fpu/fegetmode.c:26 error: sysdeps/i386/fpu/fegetmode.c: patch does not apply Checking patch sysdeps/i386/fpu/fegetround.c... error: while searching for: { int cw; __asm__ ("fnstcw %0" : "=m" (*&cw)); return cw & 0xc00; } error: patch failed: sysdeps/i386/fpu/fegetround.c:23 error: sysdeps/i386/fpu/fegetround.c: patch does not apply Checking patch sysdeps/i386/fpu/feholdexcpt.c... Hunk #1 succeeded at 26 (offset 1 line). error: while searching for: unsigned int xwork; /* Get the current control word. */ __asm__ ("stmxcsr %0" : "=m" (envp->__eip)); /* Set all exceptions to non-stop and clear them. */ xwork = (envp->__eip | 0x1f80) & ~0x3f; __asm__ ("ldmxcsr %0" : : "m" (*&xwork)); } return 0; error: patch failed: sysdeps/i386/fpu/feholdexcpt.c:33 error: sysdeps/i386/fpu/feholdexcpt.c: patch does not apply Checking patch sysdeps/i386/fpu/fesetenv.c... error: while searching for: values which we do not want to come from the saved environment. Therefore, we get the current environment and replace the values we want to use from the environment specified by the parameter. */ __asm__ ("fnstenv %0" : "=m" (*&temp)); if (envp == FE_DFL_ENV) { error: patch failed: sysdeps/i386/fpu/fesetenv.c:40 error: sysdeps/i386/fpu/fesetenv.c: patch does not apply Checking patch sysdeps/i386/fpu/fesetexcept.c... error: while searching for: { /* Get the control word of the SSE unit. */ unsigned int mxcsr; __asm__ ("stmxcsr %0" : "=m" (*&mxcsr)); /* Set relevant flags. */ mxcsr |= excepts; /* Put the new data in effect. */ __asm__ ("ldmxcsr %0" : : "m" (*&mxcsr)); } else { error: patch failed: sysdeps/i386/fpu/fesetexcept.c:33 error: sysdeps/i386/fpu/fesetexcept.c: patch does not apply Checking patch sysdeps/i386/fpu/fesetmode.c... error: while searching for: if (CPU_FEATURE_USABLE (SSE)) { unsigned int mxcsr; __asm__ ("stmxcsr %0" : "=m" (mxcsr)); /* Preserve SSE exception flags but restore other state in MXCSR. */ mxcsr &= FE_ALL_EXCEPT_X86; error: patch failed: sysdeps/i386/fpu/fesetmode.c:37 error: sysdeps/i386/fpu/fesetmode.c: patch does not apply Checking patch sysdeps/i386/fpu/fesetround.c... error: while searching for: /* ROUND is no valid rounding mode. */ return 1; __asm__ ("fnstcw %0" : "=m" (*&cw)); cw &= ~0xc00; cw |= round; __asm__ ("fldcw %0" : : "m" (*&cw)); /* If the CPU supports SSE we set the MXCSR as well. */ if (CPU_FEATURE_USABLE (SSE)) { unsigned int xcw; __asm__ ("stmxcsr %0" : "=m" (*&xcw)); xcw &= ~0x6000; xcw |= round << 3; __asm__ ("ldmxcsr %0" : : "m" (*&xcw)); } return 0; error: patch failed: sysdeps/i386/fpu/fesetround.c:29 error: sysdeps/i386/fpu/fesetround.c: patch does not apply Checking patch sysdeps/i386/fpu/feupdateenv.c... error: while searching for: unsigned int xtemp = 0; /* Save current exceptions. */ __asm__ ("fnstsw %0" : "=m" (*&temp)); /* If the CPU supports SSE we test the MXCSR as well. */ if (CPU_FEATURE_USABLE (SSE)) __asm__ ("stmxcsr %0" : "=m" (*&xtemp)); temp = (temp | xtemp) & FE_ALL_EXCEPT; error: patch failed: sysdeps/i386/fpu/feupdateenv.c:27 error: sysdeps/i386/fpu/feupdateenv.c: patch does not apply Checking patch sysdeps/i386/fpu/fgetexcptflg.c... error: while searching for: fexcept_t temp; /* Get the current exceptions. */ __asm__ ("fnstsw %0" : "=m" (*&temp)); *flagp = temp & excepts & FE_ALL_EXCEPT; error: patch failed: sysdeps/i386/fpu/fgetexcptflg.c:27 error: sysdeps/i386/fpu/fgetexcptflg.c: patch does not apply Checking patch sysdeps/i386/fpu/fraiseexcpt.c... error: while searching for: /* Bah, we have to clear selected exceptions. Since there is no `fldsw' instruction we have to do it the hard way. */ __asm__ __volatile__ ("fnstenv %0" : "=m" (*&temp)); /* Set the relevant bits. */ temp.__status_word |= FE_OVERFLOW; /* Put the new data in effect. */ __asm__ __volatile__ ("fldenv %0" : : "m" (*&temp)); /* And raise the exception. */ __asm__ __volatile__ ("fwait"); error: patch failed: sysdeps/i386/fpu/fraiseexcpt.c:54 error: sysdeps/i386/fpu/fraiseexcpt.c: patch does not apply Checking patch sysdeps/i386/fpu/fsetexcptflg.c... error: while searching for: cannot separately set the status word. Note: fnstenv masks all floating-point exceptions until the fldenv or fldcw below. */ __asm__ ("fnstenv %0" : "=m" (*&temp)); if (CPU_FEATURE_USABLE (SSE)) { error: patch failed: sysdeps/i386/fpu/fsetexcptflg.c:37 error: sysdeps/i386/fpu/fsetexcptflg.c: patch does not apply Checking patch sysdeps/i386/fpu/ftestexcept.c... error: while searching for: int xtemp = 0; /* Get current exceptions. */ __asm__ ("fnstsw %0" : "=a" (temp)); /* If the CPU supports SSE we test the MXCSR as well. */ if (CPU_FEATURE_USABLE (SSE)) __asm__ ("stmxcsr %0" : "=m" (*&xtemp)); return (temp | xtemp) & excepts & FE_ALL_EXCEPT; } error: patch failed: sysdeps/i386/fpu/ftestexcept.c:27 error: sysdeps/i386/fpu/ftestexcept.c: patch does not apply Checking patch sysdeps/i386/fpu/s_atanl.c... Checking patch sysdeps/i386/fpu/s_logbl.c... Checking patch sysdeps/i386/fpu/s_significandl.c... Checking patch sysdeps/i386/setfpucw.c... error: while searching for: fpu_control_t cw; /* Fetch the current control word. */ __asm__ ("fnstcw %0" : "=m" (*&cw)); /* Preserve the reserved bits, and set the rest as the user specified (or the default, if the user gave zero). */ cw &= _FPU_RESERVED; cw |= set & ~_FPU_RESERVED; __asm__ ("fldcw %0" : : "m" (*&cw)); /* If the CPU supports SSE, we set the MXCSR as well. */ if (CPU_FEATURE_USABLE (SSE)) error: patch failed: sysdeps/i386/setfpucw.c:28 error: sysdeps/i386/setfpucw.c: patch does not apply Checking patch sysdeps/x86/fpu/fenv_private.h... error: while searching for: need not care for both the 387 and the sse unit, only the one we're actually using. */ #if defined __AVX__ || defined SSE2AVX # define STMXCSR "vstmxcsr" # define LDMXCSR "vldmxcsr" #else # define STMXCSR "stmxcsr" # define LDMXCSR "ldmxcsr" #endif static __always_inline void libc_feholdexcept_sse (fenv_t *e) { unsigned int mxcsr; asm (STMXCSR " %0" : "=m" (*&mxcsr)); e->__mxcsr = mxcsr; mxcsr = (mxcsr | 0x1f80) & ~0x3f; asm volatile (LDMXCSR " %0" : : "m" (*&mxcsr)); } static __always_inline void error: patch failed: sysdeps/x86/fpu/fenv_private.h:18 error: sysdeps/x86/fpu/fenv_private.h: patch does not apply Checking patch sysdeps/x86/fpu/sfp-machine.h... error: while searching for: # define FP_RND_MASK 0x6000 # ifdef __AVX__ # define AVX_INSN_PREFIX "v" # else # define AVX_INSN_PREFIX "" # endif # define FP_INIT_ROUNDMODE \ do { \ __asm__ __volatile__ (AVX_INSN_PREFIX "stmxcsr\t%0" : "=m" (_fcw)); \ } while (0) #else # define _FP_W_TYPE_SIZE 32 error: patch failed: sysdeps/x86/fpu/sfp-machine.h:39 error: sysdeps/x86/fpu/sfp-machine.h: patch does not apply Checking patch sysdeps/x86_64/fpu/fclrexcpt.c... error: while searching for: /* Bah, we have to clear selected exceptions. Since there is no `fldsw' instruction we have to do it the hard way. */ __asm__ ("fnstenv %0" : "=m" (*&temp)); /* Clear the relevant bits. */ temp.__status_word &= excepts ^ FE_ALL_EXCEPT; /* Put the new data in effect. */ __asm__ ("fldenv %0" : : "m" (*&temp)); /* And the same procedure for SSE. */ __asm__ ("stmxcsr %0" : "=m" (*&mxcsr)); /* Clear the relevant bits. */ mxcsr &= ~excepts; /* And put them into effect. */ __asm__ ("ldmxcsr %0" : : "m" (*&mxcsr)); /* Success. */ return 0; error: patch failed: sysdeps/x86_64/fpu/fclrexcpt.c:29 error: sysdeps/x86_64/fpu/fclrexcpt.c: patch does not apply Checking patch sysdeps/x86_64/fpu/fedisblxcpt.c... error: while searching for: excepts &= FE_ALL_EXCEPT; /* Get the current control word of the x87 FPU. */ __asm__ ("fstcw %0" : "=m" (*&new_exc)); old_exc = (~new_exc) & FE_ALL_EXCEPT; new_exc |= excepts; __asm__ ("fldcw %0" : : "m" (*&new_exc)); /* And now the same for the SSE MXCSR register. */ __asm__ ("stmxcsr %0" : "=m" (*&new)); /* The SSE exception masks are shifted by 7 bits. */ new |= excepts << 7; __asm__ ("ldmxcsr %0" : : "m" (*&new)); return old_exc; } error: patch failed: sysdeps/x86_64/fpu/fedisblxcpt.c:27 error: sysdeps/x86_64/fpu/fedisblxcpt.c: patch does not apply Checking patch sysdeps/x86_64/fpu/feenablxcpt.c... error: while searching for: excepts &= FE_ALL_EXCEPT; /* Get the current control word of the x87 FPU. */ __asm__ ("fstcw %0" : "=m" (*&new_exc)); old_exc = (~new_exc) & FE_ALL_EXCEPT; new_exc &= ~excepts; __asm__ ("fldcw %0" : : "m" (*&new_exc)); /* And now the same for the SSE MXCSR register. */ __asm__ ("stmxcsr %0" : "=m" (*&new)); /* The SSE exception masks are shifted by 7 bits. */ new &= ~(excepts << 7); __asm__ ("ldmxcsr %0" : : "m" (*&new)); return old_exc; } error: patch failed: sysdeps/x86_64/fpu/feenablxcpt.c:27 error: sysdeps/x86_64/fpu/feenablxcpt.c: patch does not apply Checking patch sysdeps/x86_64/fpu/fegetenv.c... error: while searching for: int __fegetenv (fenv_t *envp) { __asm__ ("fnstenv %0\n" /* fnstenv changes the exception mask, so load back the stored environment. */ "fldenv %0\n" "stmxcsr %1" : "=m" (*envp), "=m" (envp->__mxcsr)); /* Success. */ return 0; error: patch failed: sysdeps/x86_64/fpu/fegetenv.c:21 error: sysdeps/x86_64/fpu/fegetenv.c: patch does not apply Checking patch sysdeps/x86_64/fpu/fegetexcept.c... error: while searching for: unsigned short int exc; /* Get the current control word. */ __asm__ ("fstcw %0" : "=m" (*&exc)); return (~exc) & FE_ALL_EXCEPT; } error: patch failed: sysdeps/x86_64/fpu/fegetexcept.c:24 error: sysdeps/x86_64/fpu/fegetexcept.c: patch does not apply Checking patch sysdeps/x86_64/fpu/fegetmode.c... error: while searching for: fegetmode (femode_t *modep) { _FPU_GETCW (modep->__control_word); __asm__ ("stmxcsr %0" : "=m" (modep->__mxcsr)); return 0; } error: patch failed: sysdeps/x86_64/fpu/fegetmode.c:23 error: sysdeps/x86_64/fpu/fegetmode.c: patch does not apply Checking patch sysdeps/x86_64/fpu/fegetround.c... error: while searching for: /* We only check the x87 FPU unit. The SSE unit should be the same - and if it's not the same there's no way to signal it. */ __asm__ ("fnstcw %0" : "=m" (*&cw)); return cw & 0xc00; } error: patch failed: sysdeps/x86_64/fpu/fegetround.c:25 error: sysdeps/x86_64/fpu/fegetround.c: patch does not apply Checking patch sysdeps/x86_64/fpu/feholdexcpt.c... error: while searching for: /* Store the environment. Recall that fnstenv has a side effect of masking all exceptions. Then clear all exceptions. */ __asm__ ("fnstenv %0\n\t" "stmxcsr %1\n\t" "fnclex" : "=m" (*envp), "=m" (envp->__mxcsr)); /* Set the SSE MXCSR register. */ mxcsr = (envp->__mxcsr | 0x1f80) & ~0x3f; __asm__ ("ldmxcsr %0" : : "m" (*&mxcsr)); return 0; } error: patch failed: sysdeps/x86_64/fpu/feholdexcpt.c:25 error: sysdeps/x86_64/fpu/feholdexcpt.c: patch does not apply Checking patch sysdeps/x86_64/fpu/fesetenv.c... error: while searching for: values which we do not want to come from the saved environment. Therefore, we get the current environment and replace the values we want to use from the environment specified by the parameter. */ __asm__ ("fnstenv %0\n" "stmxcsr %1" : "=m" (*&temp), "=m" (*&temp.__mxcsr)); if (envp == FE_DFL_ENV) { error: patch failed: sysdeps/x86_64/fpu/fesetenv.c:35 error: sysdeps/x86_64/fpu/fesetenv.c: patch does not apply Checking patch sysdeps/x86_64/fpu/fesetexcept.c... error: while searching for: { unsigned int mxcsr; __asm__ ("stmxcsr %0" : "=m" (*&mxcsr)); mxcsr |= excepts & FE_ALL_EXCEPT; __asm__ ("ldmxcsr %0" : : "m" (*&mxcsr)); return 0; } error: patch failed: sysdeps/x86_64/fpu/fesetexcept.c:23 error: sysdeps/x86_64/fpu/fesetexcept.c: patch does not apply Checking patch sysdeps/x86_64/fpu/fesetmode.c... error: while searching for: { fpu_control_t cw; unsigned int mxcsr; __asm__ ("stmxcsr %0" : "=m" (mxcsr)); /* Preserve SSE exception flags but restore other state in MXCSR. */ mxcsr &= FE_ALL_EXCEPT_X86; error: patch failed: sysdeps/x86_64/fpu/fesetmode.c:28 error: sysdeps/x86_64/fpu/fesetmode.c: patch does not apply Checking patch sysdeps/x86_64/fpu/fesetround.c... error: while searching for: return 1; /* First set the x87 FPU. */ asm ("fnstcw %0" : "=m" (*&cw)); cw &= ~0xc00; cw |= round; asm ("fldcw %0" : : "m" (*&cw)); /* And now the MSCSR register for SSE, the precision is at different bit positions in the different units, we need to shift it 3 bits. */ asm ("stmxcsr %0" : "=m" (*&mxcsr)); mxcsr &= ~ 0x6000; mxcsr |= round << 3; asm ("ldmxcsr %0" : : "m" (*&mxcsr)); return 0; } error: patch failed: sysdeps/x86_64/fpu/fesetround.c:29 error: sysdeps/x86_64/fpu/fesetround.c: patch does not apply Checking patch sysdeps/x86_64/fpu/feupdateenv.c... error: while searching for: unsigned int xtemp; /* Save current exceptions. */ __asm__ ("fnstsw %0\n\tstmxcsr %1" : "=m" (*&temp), "=m" (xtemp)); temp = (temp | xtemp) & FE_ALL_EXCEPT; /* Install new environment. */ error: patch failed: sysdeps/x86_64/fpu/feupdateenv.c:25 error: sysdeps/x86_64/fpu/feupdateenv.c: patch does not apply Checking patch sysdeps/x86_64/fpu/fgetexcptflg.c... error: while searching for: unsigned int mxscr; /* Get the current exceptions for the x87 FPU and SSE unit. */ __asm__ ("fnstsw %0\n" "stmxcsr %1" : "=m" (*&temp), "=m" (*&mxscr)); *flagp = (temp | mxscr) & FE_ALL_EXCEPT & excepts; error: patch failed: sysdeps/x86_64/fpu/fgetexcptflg.c:25 error: sysdeps/x86_64/fpu/fgetexcptflg.c: patch does not apply Checking patch sysdeps/x86_64/fpu/fraiseexcpt.c... error: while searching for: /* One example of an invalid operation is 0.0 / 0.0. */ float f = 0.0; __asm__ __volatile__ ("divss %0, %0 " : "+x" (f)); (void) &f; } error: patch failed: sysdeps/x86_64/fpu/fraiseexcpt.c:33 error: sysdeps/x86_64/fpu/fraiseexcpt.c: patch does not apply Checking patch sysdeps/x86_64/fpu/fsetexcptflg.c... error: while searching for: /* Get the current x87 FPU environment. We have to do this since we cannot separately set the status word. */ __asm__ ("fnstenv %0" : "=m" (*&temp)); /* Clear relevant flags. */ temp.__status_word &= ~(excepts & ~ *flagp); /* Store the new status word (along with the rest of the environment). */ __asm__ ("fldenv %0" : : "m" (*&temp)); /* And now similarly for SSE. */ __asm__ ("stmxcsr %0" : "=m" (*&mxcsr)); /* Clear or set relevant flags. */ mxcsr ^= (mxcsr ^ *flagp) & excepts; /* Put the new data in effect. */ __asm__ ("ldmxcsr %0" : : "m" (*&mxcsr)); /* Success. */ return 0; error: patch failed: sysdeps/x86_64/fpu/fsetexcptflg.c:35 error: sysdeps/x86_64/fpu/fsetexcptflg.c: patch does not apply Checking patch sysdeps/x86_64/fpu/ftestexcept.c... error: while searching for: unsigned int mxscr; /* Get current exceptions. */ __asm__ ("fnstsw %0\n" "stmxcsr %1" : "=m" (*&temp), "=m" (*&mxscr)); return (temp | mxscr) & excepts & FE_ALL_EXCEPT; } error: patch failed: sysdeps/x86_64/fpu/ftestexcept.c:25 error: sysdeps/x86_64/fpu/ftestexcept.c: patch does not apply