• Janne Grunau's avatar
    x86: use emms after ff_int32_to_float_fmul_scalar_sse · 8563f988
    Janne Grunau authored
    Intel's Instruction Set Reference (as of September 2015) clearly states
    that cvtpi2ps switches to MMX state. Actual CPUs do not switch if the
    source is a memory location. The Instruction Set Reference from 1999
    (Order Number 243191) describes this behaviour but all later versions
    I've seen have make no distinction whether MMX registers or memory is
    used as source.
    The documentation for the matching SSE2 instruction to convert to double
    (cvtpi2pd) was fixed (see the valgrind bug
    https://bugs.kde.org/show_bug.cgi?id=210264).
    
    It will take time to get a clarification and fixes in place. In the
    meantime it makes sense to change ff_int32_to_float_fmul_scalar_sse to
    be correct according to the documentation. The vast majority of users
    will have SSE2 so a change to the SSE version has little effect.
    
    Fixes fate-checkasm on x86 valgrind targets.
    
    Valgrind 'bug' reported as https://bugs.kde.org/show_bug.cgi?id=357059
    8563f988
fmtconvert.asm 2.43 KB