lkml.org 
[lkml]   [2011]   [Jan]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[GIT PULL] x86/fpu changes for v2.6.38
    Linus,

    Please pull the latest x86-fpu-for-linus git tree from:

    git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip.git x86-fpu-for-linus

    Thanks,

    Ingo

    ------------------>
    H. Peter Anvin (1):
    x86-64, asm: Use fxsaveq/fxrestorq in more places


    arch/x86/include/asm/i387.h | 24 ++++++++++++++++++++++++
    1 files changed, 24 insertions(+), 0 deletions(-)

    diff --git a/arch/x86/include/asm/i387.h b/arch/x86/include/asm/i387.h
    index 4aa2bb3..ef32890 100644
    --- a/arch/x86/include/asm/i387.h
    +++ b/arch/x86/include/asm/i387.h
    @@ -93,6 +93,17 @@ static inline int fxrstor_checking(struct i387_fxsave_struct *fx)
    int err;

    /* See comment in fxsave() below. */
    +#ifdef CONFIG_AS_FXSAVEQ
    + asm volatile("1: fxrstorq %[fx]\n\t"
    + "2:\n"
    + ".section .fixup,\"ax\"\n"
    + "3: movl $-1,%[err]\n"
    + " jmp 2b\n"
    + ".previous\n"
    + _ASM_EXTABLE(1b, 3b)
    + : [err] "=r" (err)
    + : [fx] "m" (*fx), "0" (0));
    +#else
    asm volatile("1: rex64/fxrstor (%[fx])\n\t"
    "2:\n"
    ".section .fixup,\"ax\"\n"
    @@ -102,6 +113,7 @@ static inline int fxrstor_checking(struct i387_fxsave_struct *fx)
    _ASM_EXTABLE(1b, 3b)
    : [err] "=r" (err)
    : [fx] "R" (fx), "m" (*fx), "0" (0));
    +#endif
    return err;
    }

    @@ -119,6 +131,17 @@ static inline int fxsave_user(struct i387_fxsave_struct __user *fx)
    return -EFAULT;

    /* See comment in fxsave() below. */
    +#ifdef CONFIG_AS_FXSAVEQ
    + asm volatile("1: fxsaveq %[fx]\n\t"
    + "2:\n"
    + ".section .fixup,\"ax\"\n"
    + "3: movl $-1,%[err]\n"
    + " jmp 2b\n"
    + ".previous\n"
    + _ASM_EXTABLE(1b, 3b)
    + : [err] "=r" (err), [fx] "=m" (*fx)
    + : "0" (0));
    +#else
    asm volatile("1: rex64/fxsave (%[fx])\n\t"
    "2:\n"
    ".section .fixup,\"ax\"\n"
    @@ -128,6 +151,7 @@ static inline int fxsave_user(struct i387_fxsave_struct __user *fx)
    _ASM_EXTABLE(1b, 3b)
    : [err] "=r" (err), "=m" (*fx)
    : [fx] "R" (fx), "0" (0));
    +#endif
    if (unlikely(err) &&
    __clear_user(fx, sizeof(struct i387_fxsave_struct)))
    err = -EFAULT;

    \
     
     \ /
      Last update: 2011-01-06 11:27    [W:0.024 / U:29.920 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site