Kaynağa Gözat

armemu: Fix lower-bound signed saturation clamping for QADD16/QSUB16.

Lioncash 11 yıl önce
ebeveyn
işleme
4c53799229
1 değiştirilmiş dosya ile 2 ekleme ve 2 silme
  1. 2 2
      src/core/arm/interpreter/armemu.cpp

+ 2 - 2
src/core/arm/interpreter/armemu.cpp

@@ -5867,12 +5867,12 @@ L_stm_s_takeabort:
 
 
                 if (lo_result > 0x7FFF)
                 if (lo_result > 0x7FFF)
                     lo_result = 0x7FFF;
                     lo_result = 0x7FFF;
-                else if (lo_result < 0x7FFF)
+                else if (lo_result < -0x8000)
                     lo_result = -0x8000;
                     lo_result = -0x8000;
 
 
                 if (hi_result > 0x7FFF)
                 if (hi_result > 0x7FFF)
                     hi_result = 0x7FFF;
                     hi_result = 0x7FFF;
-                else if (hi_result < 0x7FFF)
+                else if (hi_result < -0x8000)
                     hi_result = -0x8000;
                     hi_result = -0x8000;
 
 
                 state->Reg[rd_idx] = (lo_result & 0xFFFF) | ((hi_result & 0xFFFF) << 16);
                 state->Reg[rd_idx] = (lo_result & 0xFFFF) | ((hi_result & 0xFFFF) << 16);