diff options
author | Ted Green <tedgreen99@protonmail.com> | 2017-10-10 07:12:27 -0600 |
---|---|---|
committer | Ted Green <tedgreen99@protonmail.com> | 2017-10-10 07:12:57 -0600 |
commit | 1175023e9581d52473d493f5f950e523224de44f (patch) | |
tree | 36cc204f400e480b0e583be84ffe80c123ebbc71 | |
parent | 1b9278eff0aa8a1feec556e781d87622bcd2d79c (diff) |
rgbsse: Clamp intermediate values to u8. (nw)
-rw-r--r-- | src/emu/video/rgbsse.h | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/emu/video/rgbsse.h b/src/emu/video/rgbsse.h index a9d9852a228..037515b4754 100644 --- a/src/emu/video/rgbsse.h +++ b/src/emu/video/rgbsse.h @@ -330,7 +330,10 @@ public: m_value = _mm_slli_epi16(m_value, 4); // Do the 16 bit multiply, bottom 64 bits will contain 16 bit truncated results m_value = _mm_mulhi_epi16(m_value, tmp1); - // Unpack into 32 bit values + // Clamp to u8 + m_value = _mm_packus_epi16(m_value, _mm_setzero_si128()); + // Unpack up to s32 + m_value = _mm_unpacklo_epi8(m_value, _mm_setzero_si128()); m_value = _mm_unpacklo_epi16(m_value, _mm_setzero_si128()); add(other); clamp_to_uint8(); |