Skip to content
Snippets Groups Projects
  1. Jan 12, 2012
  2. Jan 11, 2012
    • Aurelien Jarno's avatar
      target-i386: fix SSE rounding and flush to zero · 2355c16e
      Aurelien Jarno authored
      
      SSE rounding and flush to zero control has never been implemented. However
      given that softfloat-native was using a single state for FPU and SSE and
      given that glibc is setting both FPU and SSE state in fesetround(), this
      was working correctly up to the switch to softfloat.
      
      Fix that by adding an update_sse_status() function similar to
      update_fpu_status(), and callin git on write to mxcsr.
      
      Signed-off-by: default avatarAurelien Jarno <aurelien@aurel32.net>
      2355c16e
    • Aurelien Jarno's avatar
      target-i386: fix dpps and dppd SSE2 instructions · 170d5b4b
      Aurelien Jarno authored
      
      The helpers implemented dpps and dppd SSE instructions are not passing
      the correct argument types to the softfloat functions. While they do
      work anyway providing a correct behaviour, this patch fixes that.
      
      Signed-off-by: default avatarAurelien Jarno <aurelien@aurel32.net>
      170d5b4b
    • Aurelien Jarno's avatar
      target-i386: fix round{pd,ps,sd,ss} SSE2 instructions · adc71666
      Aurelien Jarno authored
      
      roundps and roundss SSE2 instructions have been broken when switching
      target-i386 to softfloat. They use float64_round_to_int to convert a
      float32, and while the implicit conversion from float32 to float64 was
      correct for softfloat-native, it is not for pure softfloat. Fix that by
      using the correct registers and correct functions.
      
      Also fix roundpd and roundsd implementation at the same time, even if
      these functions are behaving correctly.
      
      Signed-off-by: default avatarAurelien Jarno <aurelien@aurel32.net>
      adc71666
    • Aurelien Jarno's avatar
      target-i386: fix {min,max}{pd,ps,sd,ss} SSE2 instructions · a4d1f142
      Aurelien Jarno authored
      
      minpd, minps, minsd, minss and maxpd, maxps, maxsd, maxss SSE2
      instructions have been broken when switching target-i386 to softfloat.
      It's not possible to use comparison instructions on float types anymore
      to softfloat, so use the floatXX_lt function instead, as the
      float_XX_min and float_XX_max functions can't be used due to the Intel
      specific behaviour.
      
      As it implements the correct NaNs behaviour, let's remove the
      corresponding entry from the TODO.
      
      It fixes GDM screen display on Debian Lenny.
      
      Thanks to Peter Maydell and Jason Wessel for their analysis of the
      problem.
      
      Signed-off-by: default avatarAurelien Jarno <aurelien@aurel32.net>
      a4d1f142
  3. Jan 10, 2012
  4. Jan 09, 2012
  5. Jan 08, 2012
  6. Jan 07, 2012
  7. Jan 06, 2012
Loading