Since commit 347ac8e35661eff1c2b5ec74d11ee152f2a61856 which switched target-i386 to softfloat, a few SSE instructions are not working correctly anymore. It's especially noticeable on linux/x86-64 as SSE is used default for floating point computation. For example GDM from Debian Lenny is not usable anymore, it displays all the graphical elements at the wrong place.
This patch series is an attempt to fix that, and it's probably a good idea to apply it to the stable branch. Aurelien Jarno (4): target-i386: fix {min,max}{pd,ps,sd,ss} SSE2 instructions target-i386: fix round{pd,ps,sd,ss} SSE2 instructions target-i386: fix dpps and dppd SSE2 instructions target-i386: fix SSE rounding and flush to zero target-i386/TODO | 1 - target-i386/helper.h | 1 + target-i386/op_helper.c | 64 +++++++++++++++++++++++++++++++++++++++------- target-i386/ops_sse.h | 48 +++++++++++++++++----------------- target-i386/translate.c | 2 +- 5 files changed, 80 insertions(+), 36 deletions(-) -- 1.7.7.3