From 682be864fabe1a4789ee728ad37b5df9493abf6e Mon Sep 17 00:00:00 2001 From: morkt Date: Sat, 7 Nov 2015 00:14:03 +0400 Subject: [PATCH] (MMX): added paddb and pslld instructions. --- ArcFormats/ArcCommon.cs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/ArcFormats/ArcCommon.cs b/ArcFormats/ArcCommon.cs index edb3b808..0fed2853 100644 --- a/ArcFormats/ArcCommon.cs +++ b/ArcFormats/ArcCommon.cs @@ -408,6 +408,16 @@ namespace GameRes.Formats public static class MMX { + public static ulong PAddB (ulong x, ulong y) + { + ulong r = 0; + for (ulong mask = 0xFF; mask != 0; mask <<= 8) + { + r |= ((x & mask) + (y & mask)) & mask; + } + return r; + } + public static ulong PAddW (ulong x, ulong y) { ulong mask = 0xffff; @@ -428,6 +438,13 @@ namespace GameRes.Formats mask <<= 32; return r | ((x & mask) + (y & mask)) & mask; } + + public static ulong PSllD (ulong x, int count) + { + ulong mask = 0xFFFFFFFFu << count; + mask |= mask << 32; + return (x << count) & mask; + } } public static class Dump