summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/video/rgbsse.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/emu/video/rgbsse.h')
-rw-r--r--src/emu/video/rgbsse.h5
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();