about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorserpilliere <serpilliere@users.noreply.github.com>2016-04-26 19:49:09 +0200
committerserpilliere <serpilliere@users.noreply.github.com>2016-04-26 19:49:09 +0200
commitd9b1edbf47f6ab253372286cd3508d30b4339e53 (patch)
tree8331223a89590c7caca0180402d81b66c5d6e609
parent46095b1b68d5edf9c695b5e11bdc84897f966dbe (diff)
parentf0450aacb0d0c5b229e98d79605e47ec78769b10 (diff)
downloadmiasm-d9b1edbf47f6ab253372286cd3508d30b4339e53.tar.gz
miasm-d9b1edbf47f6ab253372286cd3508d30b4339e53.zip
Merge pull request #362 from commial/test-qemu-sse
Test qemu sse
-rw-r--r--miasm2/jitter/emulatedsymbexec.py19
-rw-r--r--miasm2/jitter/jitcore_python.py1
-rw-r--r--test/arch/x86/qemu/expected/test_jcc.exp10
-rw-r--r--test/arch/x86/qemu/expected/test_sse.exp453
-rw-r--r--test/arch/x86/qemu/expected/test_string.exp156
-rwxr-xr-xtest/arch/x86/qemu/test-i386bin83724 -> 340296 bytes
-rw-r--r--test/arch/x86/qemu/testqemu.py7
7 files changed, 563 insertions, 83 deletions
diff --git a/miasm2/jitter/emulatedsymbexec.py b/miasm2/jitter/emulatedsymbexec.py
index a5e4d340..f7c48227 100644
--- a/miasm2/jitter/emulatedsymbexec.py
+++ b/miasm2/jitter/emulatedsymbexec.py
@@ -81,3 +81,22 @@ class EmulatedSymbExec(symbexec):
                     self.symbols.symbols_id[symbol] = value
             else:
                 raise NotImplementedError("Type not handled: %s" % symbol)
+
+    # CPU specific simplifications
+    def _simp_handle_segm(self, e_s, expr):
+        """Handle 'segm' operation"""
+        if expr.op != "segm":
+            return expr
+        segm_nb = int(expr.args[0].arg)
+        segmaddr = self.cpu.get_segm_base(segm_nb)
+        return e_s(m2_expr.ExprOp("+",
+                                  m2_expr.ExprInt(segmaddr, expr.size),
+                                  expr.args[1]))
+
+    def enable_emulated_simplifications(self):
+        """Enable simplifications needing a CPU instance on associated
+        ExpressionSimplifier
+        """
+        self.expr_simp.enable_passes({
+            m2_expr.ExprOp: [self._simp_handle_segm]
+        })
diff --git a/miasm2/jitter/jitcore_python.py b/miasm2/jitter/jitcore_python.py
index eced9cd2..e1e62816 100644
--- a/miasm2/jitter/jitcore_python.py
+++ b/miasm2/jitter/jitcore_python.py
@@ -19,6 +19,7 @@ class JitCore_Python(jitcore.JitCore):
 
         # CPU (None for now) will be set by the "jitted" Python function
         self.symbexec = EmulatedSymbExec(None, self.ir_arch, {})
+        self.symbexec.enable_emulated_simplifications()
 
     def load(self):
         "Preload symbols according to current architecture"
diff --git a/test/arch/x86/qemu/expected/test_jcc.exp b/test/arch/x86/qemu/expected/test_jcc.exp
index 48fb3c8d..38fe3797 100644
--- a/test/arch/x86/qemu/expected/test_jcc.exp
+++ b/test/arch/x86/qemu/expected/test_jcc.exp
@@ -130,16 +130,16 @@ jo         0
 seto       0
 cmovol     R=12345678
 cmovow     R=12345678
-jo         1
-seto       1
+jo         0
+seto       0
 cmovol     R=00000001
 cmovow     R=00000001
 jno        1
 setno      1
 cmovnol    R=00000001
 cmovnow    R=00000001
-jno        0
-setno      0
+jno        1
+setno      1
 cmovnol    R=12345678
 cmovnow    R=12345678
 js         1
@@ -154,7 +154,7 @@ js         0
 sets       0
 cmovsl     R=12345678
 cmovsw     R=12345678
-jns        1
+jns        0
 setns      0
 cmovnsl    R=12345678
 cmovnsw    R=12345678
diff --git a/test/arch/x86/qemu/expected/test_sse.exp b/test/arch/x86/qemu/expected/test_sse.exp
new file mode 100644
index 00000000..c08b4ec0
--- /dev/null
+++ b/test/arch/x86/qemu/expected/test_sse.exp
@@ -0,0 +1,453 @@
+punpcklbw: a=456723c698694873 b=1f297ccd58bad7ab r=5898ba69d748ab73
+punpcklbw: a=007c62c2085427f8 b=0f76255a085427f8 r=080854542727f8f8
+punpcklbw: a=dc515cff944a58ec456723c698694873 b=41f21efba9e3e1461f297ccd58bad7ab r=1f4529677c23cdc65898ba69d748ab73
+punpcklbw: a=231be9e8cde7438d007c62c2085427f8 b=c233e9e8c4c9439a0f76255a085427f8 r=0f00767c25625ac2080854542727f8f8
+punpcklwd: a=456723c698694873 b=1f297ccd58bad7ab r=58ba9869d7ab4873
+punpcklwd: a=007c62c2085427f8 b=0f76255a085427f8 r=0854085427f827f8
+punpcklwd: a=dc515cff944a58ec456723c698694873 b=41f21efba9e3e1461f297ccd58bad7ab r=1f2945677ccd23c658ba9869d7ab4873
+punpcklwd: a=231be9e8cde7438d007c62c2085427f8 b=c233e9e8c4c9439a0f76255a085427f8 r=0f76007c255a62c20854085427f827f8
+punpckldq: a=456723c698694873 b=1f297ccd58bad7ab r=58bad7ab98694873
+punpckldq: a=007c62c2085427f8 b=0f76255a085427f8 r=085427f8085427f8
+punpckldq: a=dc515cff944a58ec456723c698694873 b=41f21efba9e3e1461f297ccd58bad7ab r=1f297ccd456723c658bad7ab98694873
+punpckldq: a=231be9e8cde7438d007c62c2085427f8 b=c233e9e8c4c9439a0f76255a085427f8 r=0f76255a007c62c2085427f8085427f8
+packsswb : a=456723c698694873 b=1f297ccd58bad7ab r=7f7f7f807f7f807f
+packsswb : a=007c62c2085427f8 b=0f76255a085427f8 r=7f7f7f7f7c7f7f7f
+packsswb : a=dc515cff944a58ec456723c698694873 b=41f21efba9e3e1461f297ccd58bad7ab r=7f7f80807f7f7f80807f807f7f7f807f
+packsswb : a=231be9e8cde7438d007c62c2085427f8 b=c233e9e8c4c9439a0f76255a085427f8 r=8080807f7f7f7f7f7f80807f7c7f7f7f
+pcmpgtb  : a=456723c698694873 b=1f297ccd58bad7ab r=ffff000000ffffff
+pcmpgtb  : a=007c62c2085427f8 b=0f76255a085427f8 r=00ffff0000000000
+pcmpgtb  : a=dc515cff944a58ec456723c698694873 b=41f21efba9e3e1461f297ccd58bad7ab r=00ffffff00ffff00ffff000000ffffff
+pcmpgtb  : a=231be9e8cde7438d007c62c2085427f8 b=c233e9e8c4c9439a0f76255a085427f8 r=ff000000ffff000000ffff0000000000
+pcmpgtw  : a=456723c698694873 b=1f297ccd58bad7ab r=ffff00000000ffff
+pcmpgtw  : a=007c62c2085427f8 b=0f76255a085427f8 r=0000ffff00000000
+pcmpgtw  : a=dc515cff944a58ec456723c698694873 b=41f21efba9e3e1461f297ccd58bad7ab r=0000ffff0000ffffffff00000000ffff
+pcmpgtw  : a=231be9e8cde7438d007c62c2085427f8 b=c233e9e8c4c9439a0f76255a085427f8 r=ffff0000ffff00000000ffff00000000
+pcmpgtd  : a=456723c698694873 b=1f297ccd58bad7ab r=ffffffff00000000
+pcmpgtd  : a=007c62c2085427f8 b=0f76255a085427f8 r=0000000000000000
+pcmpgtd  : a=dc515cff944a58ec456723c698694873 b=41f21efba9e3e1461f297ccd58bad7ab r=0000000000000000ffffffff00000000
+pcmpgtd  : a=231be9e8cde7438d007c62c2085427f8 b=c233e9e8c4c9439a0f76255a085427f8 r=ffffffffffffffff0000000000000000
+packuswb : a=456723c698694873 b=1f297ccd58bad7ab r=ffffff00ffff00ff
+packuswb : a=007c62c2085427f8 b=0f76255a085427f8 r=ffffffff7cffffff
+packuswb : a=dc515cff944a58ec456723c698694873 b=41f21efba9e3e1461f297ccd58bad7ab r=ffff0000ffffff0000ff00ffffff00ff
+packuswb : a=231be9e8cde7438d007c62c2085427f8 b=c233e9e8c4c9439a0f76255a085427f8 r=000000ffffffffffff0000ff7cffffff
+punpckhbw: a=456723c698694873 b=1f297ccd58bad7ab r=1f4529677c23cdc6
+punpckhbw: a=007c62c2085427f8 b=0f76255a085427f8 r=0f00767c25625ac2
+punpckhbw: a=dc515cff944a58ec456723c698694873 b=41f21efba9e3e1461f297ccd58bad7ab r=41dcf2511e5cfbffa994e34ae15846ec
+punpckhbw: a=231be9e8cde7438d007c62c2085427f8 b=c233e9e8c4c9439a0f76255a085427f8 r=c223331be9e9e8e8c4cdc9e743439a8d
+punpckhwd: a=456723c698694873 b=1f297ccd58bad7ab r=1f2945677ccd23c6
+punpckhwd: a=007c62c2085427f8 b=0f76255a085427f8 r=0f76007c255a62c2
+punpckhwd: a=dc515cff944a58ec456723c698694873 b=41f21efba9e3e1461f297ccd58bad7ab r=41f2dc511efb5cffa9e3944ae14658ec
+punpckhwd: a=231be9e8cde7438d007c62c2085427f8 b=c233e9e8c4c9439a0f76255a085427f8 r=c233231be9e8e9e8c4c9cde7439a438d
+punpckhdq: a=456723c698694873 b=1f297ccd58bad7ab r=1f297ccd456723c6
+punpckhdq: a=007c62c2085427f8 b=0f76255a085427f8 r=0f76255a007c62c2
+punpckhdq: a=dc515cff944a58ec456723c698694873 b=41f21efba9e3e1461f297ccd58bad7ab r=41f21efbdc515cffa9e3e146944a58ec
+punpckhdq: a=231be9e8cde7438d007c62c2085427f8 b=c233e9e8c4c9439a0f76255a085427f8 r=c233e9e8231be9e8c4c9439acde7438d
+packssdw : a=456723c698694873 b=1f297ccd58bad7ab r=7fff7fff7fff8000
+packssdw : a=007c62c2085427f8 b=0f76255a085427f8 r=7fff7fff7fff7fff
+packssdw : a=dc515cff944a58ec456723c698694873 b=41f21efba9e3e1461f297ccd58bad7ab r=7fff80007fff7fff800080007fff8000
+packssdw : a=231be9e8cde7438d007c62c2085427f8 b=c233e9e8c4c9439a0f76255a085427f8 r=800080007fff7fff7fff80007fff7fff
+pcmpeqb  : a=456723c698694873 b=1f297ccd58bad7ab r=0000000000000000
+pcmpeqb  : a=007c62c2085427f8 b=0f76255a085427f8 r=00000000ffffffff
+pcmpeqb  : a=dc515cff944a58ec456723c698694873 b=41f21efba9e3e1461f297ccd58bad7ab r=00000000000000000000000000000000
+pcmpeqb  : a=231be9e8cde7438d007c62c2085427f8 b=c233e9e8c4c9439a0f76255a085427f8 r=0000ffff0000ff0000000000ffffffff
+pcmpeqw  : a=456723c698694873 b=1f297ccd58bad7ab r=0000000000000000
+pcmpeqw  : a=007c62c2085427f8 b=0f76255a085427f8 r=00000000ffffffff
+pcmpeqw  : a=dc515cff944a58ec456723c698694873 b=41f21efba9e3e1461f297ccd58bad7ab r=00000000000000000000000000000000
+pcmpeqw  : a=231be9e8cde7438d007c62c2085427f8 b=c233e9e8c4c9439a0f76255a085427f8 r=0000ffff0000000000000000ffffffff
+pcmpeqd  : a=456723c698694873 b=1f297ccd58bad7ab r=0000000000000000
+pcmpeqd  : a=007c62c2085427f8 b=0f76255a085427f8 r=00000000ffffffff
+pcmpeqd  : a=dc515cff944a58ec456723c698694873 b=41f21efba9e3e1461f297ccd58bad7ab r=00000000000000000000000000000000
+pcmpeqd  : a=231be9e8cde7438d007c62c2085427f8 b=c233e9e8c4c9439a0f76255a085427f8 r=000000000000000000000000ffffffff
+paddq    : a=456723c698694873 b=1f297ccd58bad7ab r=6490a093f124201e
+paddq    : a=007c62c2085427f8 b=0f76255a085427f8 r=0ff2881c10a84ff0
+paddq    : a=dc515cff944a58ec456723c698694873 b=41f21efba9e3e1461f297ccd58bad7ab r=1e437bfb3e2e3a326490a093f124201e
+paddq    : a=231be9e8cde7438d007c62c2085427f8 b=c233e9e8c4c9439a0f76255a085427f8 r=e54fd3d192b087270ff2881c10a84ff0
+pmullw   : a=456723c698694873 b=1f297ccd58bad7ab r=967f8d8ed44af9d1
+pmullw   : a=007c62c2085427f8 b=0f76255a085427f8 r=7d28c2345b908040
+pmullw   : a=dc515cff944a58ec456723c698694873 b=41f21efba9e3e1461f297ccd58bad7ab r=d5921005579ebc88967f8d8ed44af9d1
+pmullw   : a=231be9e8cde7438d007c62c2085427f8 b=c233e9e8c4c9439a0f76255a085427f8 r=74612240865f89d27d28c2345b908040
+psubusb  : a=456723c698694873 b=1f297ccd58bad7ab r=263e000040000000
+psubusb  : a=007c62c2085427f8 b=0f76255a085427f8 r=00063d6800000000
+psubusb  : a=dc515cff944a58ec456723c698694873 b=41f21efba9e3e1461f297ccd58bad7ab r=9b003e04000000a6263e000040000000
+psubusb  : a=231be9e8cde7438d007c62c2085427f8 b=c233e9e8c4c9439a0f76255a085427f8 r=00000000091e000000063d6800000000
+psubusw  : a=456723c698694873 b=1f297ccd58bad7ab r=263e00003faf0000
+psubusw  : a=007c62c2085427f8 b=0f76255a085427f8 r=00003d6800000000
+psubusw  : a=dc515cff944a58ec456723c698694873 b=41f21efba9e3e1461f297ccd58bad7ab r=9a5f3e0400000000263e00003faf0000
+psubusw  : a=231be9e8cde7438d007c62c2085427f8 b=c233e9e8c4c9439a0f76255a085427f8 r=00000000091e000000003d6800000000
+pminub   : a=456723c698694873 b=1f297ccd58bad7ab r=1f2923c658694873
+pminub   : a=007c62c2085427f8 b=0f76255a085427f8 r=0076255a085427f8
+pminub   : a=dc515cff944a58ec456723c698694873 b=41f21efba9e3e1461f297ccd58bad7ab r=41511efb944a58461f2923c658694873
+pminub   : a=231be9e8cde7438d007c62c2085427f8 b=c233e9e8c4c9439a0f76255a085427f8 r=231be9e8c4c9438d0076255a085427f8
+pand     : a=456723c698694873 b=1f297ccd58bad7ab r=052120c418284023
+pand     : a=007c62c2085427f8 b=0f76255a085427f8 r=00742042085427f8
+pand     : a=dc515cff944a58ec456723c698694873 b=41f21efba9e3e1461f297ccd58bad7ab r=40501cfb80424044052120c418284023
+pand     : a=231be9e8cde7438d007c62c2085427f8 b=c233e9e8c4c9439a0f76255a085427f8 r=0213e9e8c4c1438800742042085427f8
+paddusb  : a=456723c698694873 b=1f297ccd58bad7ab r=64909ffff0ffffff
+paddusb  : a=007c62c2085427f8 b=0f76255a085427f8 r=0ff287ff10a84eff
+paddusb  : a=dc515cff944a58ec456723c698694873 b=41f21efba9e3e1461f297ccd58bad7ab r=ffff7affffffffff64909ffff0ffffff
+paddusb  : a=231be9e8cde7438d007c62c2085427f8 b=c233e9e8c4c9439a0f76255a085427f8 r=e54effffffff86ff0ff287ff10a84eff
+paddusw  : a=456723c698694873 b=1f297ccd58bad7ab r=6490a093f123ffff
+paddusw  : a=007c62c2085427f8 b=0f76255a085427f8 r=0ff2881c10a84ff0
+paddusw  : a=dc515cff944a58ec456723c698694873 b=41f21efba9e3e1461f297ccd58bad7ab r=ffff7bfaffffffff6490a093f123ffff
+paddusw  : a=231be9e8cde7438d007c62c2085427f8 b=c233e9e8c4c9439a0f76255a085427f8 r=e54effffffff87270ff2881c10a84ff0
+pmaxub   : a=456723c698694873 b=1f297ccd58bad7ab r=45677ccd98bad7ab
+pmaxub   : a=007c62c2085427f8 b=0f76255a085427f8 r=0f7c62c2085427f8
+pmaxub   : a=dc515cff944a58ec456723c698694873 b=41f21efba9e3e1461f297ccd58bad7ab r=dcf25cffa9e3e1ec45677ccd98bad7ab
+pmaxub   : a=231be9e8cde7438d007c62c2085427f8 b=c233e9e8c4c9439a0f76255a085427f8 r=c233e9e8cde7439a0f7c62c2085427f8
+pandn    : a=456723c698694873 b=1f297ccd58bad7ab r=1a085c0940929788
+pandn    : a=007c62c2085427f8 b=0f76255a085427f8 r=0f02051800000000
+pandn    : a=dc515cff944a58ec456723c698694873 b=41f21efba9e3e1461f297ccd58bad7ab r=01a2020029a1a1021a085c0940929788
+pandn    : a=231be9e8cde7438d007c62c2085427f8 b=c233e9e8c4c9439a0f76255a085427f8 r=c0200000000800120f02051800000000
+pmulhuw  : a=456723c698694873 b=1f297ccd58bad7ab r=0872117034d23d08
+pmulhuw  : a=007c62c2085427f8 b=0f76255a085427f8 r=00070e680045063d
+pmulhuw  : a=dc515cff944a58ec456723c698694873 b=41f21efba9e3e1461f297ccd58bad7ab r=38c00b4162684e3f0872117034d23d08
+pmulhuw  : a=231be9e8cde7438d007c62c2085427f8 b=c233e9e8c4c9439a0f76255a085427f8 r=1aa1d5b89e4611d600070e680045063d
+pmulhw   : a=456723c698694873 b=1f297ccd58bad7ab r=08721170dc18f495
+pmulhw   : a=007c62c2085427f8 b=0f76255a085427f8 r=00070e680045063d
+pmulhw   : a=dc515cff944a58ec456723c698694873 b=41f21efba9e3e1461f297ccd58bad7ab r=f6ce0b41243bf55308721170dc18f495
+pmulhw   : a=231be9e8cde7438d007c62c2085427f8 b=c233e9e8c4c9439a0f76255a085427f8 r=f78601e80b9611d600070e680045063d
+psubsb   : a=456723c698694873 b=1f297ccd58bad7ab r=263ea7f9807f717f
+psubsb   : a=007c62c2085427f8 b=0f76255a085427f8 r=f1063d8000000000
+psubsb   : a=dc515cff944a58ec456723c698694873 b=41f21efba9e3e1461f297ccd58bad7ab r=9b5f3e04eb6777a6263ea7f9807f717f
+psubsb   : a=231be9e8cde7438d007c62c2085427f8 b=c233e9e8c4c9439a0f76255a085427f8 r=61e80000091e00f3f1063d8000000000
+psubsw   : a=456723c698694873 b=1f297ccd58bad7ab r=263ea6f9800070c8
+psubsw   : a=007c62c2085427f8 b=0f76255a085427f8 r=f1063d6800000000
+psubsw   : a=dc515cff944a58ec456723c698694873 b=41f21efba9e3e1461f297ccd58bad7ab r=9a5f3e04ea6777a6263ea6f9800070c8
+psubsw   : a=231be9e8cde7438d007c62c2085427f8 b=c233e9e8c4c9439a0f76255a085427f8 r=60e80000091efff3f1063d6800000000
+pminsw   : a=456723c698694873 b=1f297ccd58bad7ab r=1f2923c69869d7ab
+pminsw   : a=007c62c2085427f8 b=0f76255a085427f8 r=007c255a085427f8
+pminsw   : a=dc515cff944a58ec456723c698694873 b=41f21efba9e3e1461f297ccd58bad7ab r=dc511efb944ae1461f2923c69869d7ab
+pminsw   : a=231be9e8cde7438d007c62c2085427f8 b=c233e9e8c4c9439a0f76255a085427f8 r=c233e9e8c4c9438d007c255a085427f8
+por      : a=456723c698694873 b=1f297ccd58bad7ab r=5f6f7fcfd8fbdffb
+por      : a=007c62c2085427f8 b=0f76255a085427f8 r=0f7e67da085427f8
+por      : a=dc515cff944a58ec456723c698694873 b=41f21efba9e3e1461f297ccd58bad7ab r=ddf35effbdebf9ee5f6f7fcfd8fbdffb
+por      : a=231be9e8cde7438d007c62c2085427f8 b=c233e9e8c4c9439a0f76255a085427f8 r=e33be9e8cdef439f0f7e67da085427f8
+paddsb   : a=456723c698694873 b=1f297ccd58bad7ab r=647f7f93f0231f1e
+paddsb   : a=007c62c2085427f8 b=0f76255a085427f8 r=0f7f7f1c107f4ef0
+paddsb   : a=dc515cff944a58ec456723c698694873 b=41f21efba9e3e1461f297ccd58bad7ab r=1d437afa802d3932647f7f93f0231f1e
+paddsb   : a=231be9e8cde7438d007c62c2085427f8 b=c233e9e8c4c9439a0f76255a085427f8 r=e54ed2d091b07f800f7f7f1c107f4ef0
+paddsw   : a=456723c698694873 b=1f297ccd58bad7ab r=64907ffff123201e
+paddsw   : a=007c62c2085427f8 b=0f76255a085427f8 r=0ff27fff10a84ff0
+paddsw   : a=dc515cff944a58ec456723c698694873 b=41f21efba9e3e1461f297ccd58bad7ab r=1e437bfa80003a3264907ffff123201e
+paddsw   : a=231be9e8cde7438d007c62c2085427f8 b=c233e9e8c4c9439a0f76255a085427f8 r=e54ed3d092b07fff0ff27fff10a84ff0
+pmaxsw   : a=456723c698694873 b=1f297ccd58bad7ab r=45677ccd58ba4873
+pmaxsw   : a=007c62c2085427f8 b=0f76255a085427f8 r=0f7662c2085427f8
+pmaxsw   : a=dc515cff944a58ec456723c698694873 b=41f21efba9e3e1461f297ccd58bad7ab r=41f25cffa9e358ec45677ccd58ba4873
+pmaxsw   : a=231be9e8cde7438d007c62c2085427f8 b=c233e9e8c4c9439a0f76255a085427f8 r=231be9e8cde7439a0f7662c2085427f8
+pxor     : a=456723c698694873 b=1f297ccd58bad7ab r=5a4e5f0bc0d39fd8
+pxor     : a=007c62c2085427f8 b=0f76255a085427f8 r=0f0a479800000000
+pxor     : a=dc515cff944a58ec456723c698694873 b=41f21efba9e3e1461f297ccd58bad7ab r=9da342043da9b9aa5a4e5f0bc0d39fd8
+pxor     : a=231be9e8cde7438d007c62c2085427f8 b=c233e9e8c4c9439a0f76255a085427f8 r=e1280000092e00170f0a479800000000
+pmuludq  : a=456723c698694873 b=1f297ccd58bad7ab r=34d36dcc65b9f9d1
+pmuludq  : a=007c62c2085427f8 b=0f76255a085427f8 r=00455e29c0fd8040
+pmuludq  : a=dc515cff944a58ec456723c698694873 b=41f21efba9e3e1461f297ccd58bad7ab r=6269151e89bfbc8834d36dcc65b9f9d1
+pmuludq  : a=231be9e8cde7438d007c62c2085427f8 b=c233e9e8c4c9439a0f76255a085427f8 r=9e46f0ab618189d200455e29c0fd8040
+pmaddwd  : a=456723c698694873 b=1f297ccd58bad7ab r=19e3240dd0aece1b
+pmaddwd  : a=007c62c2085427f8 b=0f76255a085427f8 r=0e703f5c0682dbd0
+pmaddwd  : a=dc515cff944a58ec456723c698694873 b=41f21efba9e3e1461f297ccd58bad7ab r=020fe597198f142619e3240dd0aece1b
+pmaddwd  : a=231be9e8cde7438d007c62c2085427f8 b=c233e9e8c4c9439a0f76255a085427f8 r=f96e96a11d6d10310e703f5c0682dbd0
+psadbw   : a=456723c698694873 b=1f297ccd58bad7ab r=000000000000021c
+psadbw   : a=007c62c2085427f8 b=0f76255a085427f8 r=00000000000000ba
+psadbw   : a=dc515cff944a58ec456723c698694873 b=41f21efba9e3e1461f297ccd58bad7ab r=000000000000035b000000000000021c
+psadbw   : a=231be9e8cde7438d007c62c2085427f8 b=c233e9e8c4c9439a0f76255a085427f8 r=00000000000000eb00000000000000ba
+psubb    : a=456723c698694873 b=1f297ccd58bad7ab r=263ea7f940af71c8
+psubb    : a=007c62c2085427f8 b=0f76255a085427f8 r=f1063d6800000000
+psubb    : a=dc515cff944a58ec456723c698694873 b=41f21efba9e3e1461f297ccd58bad7ab r=9b5f3e04eb6777a6263ea7f940af71c8
+psubb    : a=231be9e8cde7438d007c62c2085427f8 b=c233e9e8c4c9439a0f76255a085427f8 r=61e80000091e00f3f1063d6800000000
+psubw    : a=456723c698694873 b=1f297ccd58bad7ab r=263ea6f93faf70c8
+psubw    : a=007c62c2085427f8 b=0f76255a085427f8 r=f1063d6800000000
+psubw    : a=dc515cff944a58ec456723c698694873 b=41f21efba9e3e1461f297ccd58bad7ab r=9a5f3e04ea6777a6263ea6f93faf70c8
+psubw    : a=231be9e8cde7438d007c62c2085427f8 b=c233e9e8c4c9439a0f76255a085427f8 r=60e80000091efff3f1063d6800000000
+psubd    : a=456723c698694873 b=1f297ccd58bad7ab r=263da6f93fae70c8
+psubd    : a=007c62c2085427f8 b=0f76255a085427f8 r=f1063d6800000000
+psubd    : a=dc515cff944a58ec456723c698694873 b=41f21efba9e3e1461f297ccd58bad7ab r=9a5f3e04ea6677a6263da6f93fae70c8
+psubd    : a=231be9e8cde7438d007c62c2085427f8 b=c233e9e8c4c9439a0f76255a085427f8 r=60e80000091dfff3f1063d6800000000
+psubq    : a=456723c698694873 b=1f297ccd58bad7ab r=263da6f93fae70c8
+psubq    : a=007c62c2085427f8 b=0f76255a085427f8 r=f1063d6800000000
+psubq    : a=dc515cff944a58ec456723c698694873 b=41f21efba9e3e1461f297ccd58bad7ab r=9a5f3e03ea6677a6263da6f93fae70c8
+psubq    : a=231be9e8cde7438d007c62c2085427f8 b=c233e9e8c4c9439a0f76255a085427f8 r=60e80000091dfff3f1063d6800000000
+paddb    : a=456723c698694873 b=1f297ccd58bad7ab r=64909f93f0231f1e
+paddb    : a=007c62c2085427f8 b=0f76255a085427f8 r=0ff2871c10a84ef0
+paddb    : a=dc515cff944a58ec456723c698694873 b=41f21efba9e3e1461f297ccd58bad7ab r=1d437afa3d2d393264909f93f0231f1e
+paddb    : a=231be9e8cde7438d007c62c2085427f8 b=c233e9e8c4c9439a0f76255a085427f8 r=e54ed2d091b086270ff2871c10a84ef0
+paddw    : a=456723c698694873 b=1f297ccd58bad7ab r=6490a093f123201e
+paddw    : a=007c62c2085427f8 b=0f76255a085427f8 r=0ff2881c10a84ff0
+paddw    : a=dc515cff944a58ec456723c698694873 b=41f21efba9e3e1461f297ccd58bad7ab r=1e437bfa3e2d3a326490a093f123201e
+paddw    : a=231be9e8cde7438d007c62c2085427f8 b=c233e9e8c4c9439a0f76255a085427f8 r=e54ed3d092b087270ff2881c10a84ff0
+paddd    : a=456723c698694873 b=1f297ccd58bad7ab r=6490a093f124201e
+paddd    : a=007c62c2085427f8 b=0f76255a085427f8 r=0ff2881c10a84ff0
+paddd    : a=dc515cff944a58ec456723c698694873 b=41f21efba9e3e1461f297ccd58bad7ab r=1e437bfa3e2e3a326490a093f124201e
+paddd    : a=231be9e8cde7438d007c62c2085427f8 b=c233e9e8c4c9439a0f76255a085427f8 r=e54fd3d092b087270ff2881c10a84ff0
+pavgb    : a=456723c698694873 b=1f297ccd58bad7ab r=324850ca7892908f
+pavgb    : a=007c62c2085427f8 b=0f76255a085427f8 r=0879448e085427f8
+pavgb    : a=dc515cff944a58ec456723c698694873 b=41f21efba9e3e1461f297ccd58bad7ab r=8fa23dfd9f979d99324850ca7892908f
+pavgb    : a=231be9e8cde7438d007c62c2085427f8 b=c233e9e8c4c9439a0f76255a085427f8 r=7327e9e8c9d843940879448e085427f8
+pavgw    : a=456723c698694873 b=1f297ccd58bad7ab r=3248504a7892900f
+pavgw    : a=007c62c2085427f8 b=0f76255a085427f8 r=07f9440e085427f8
+pavgw    : a=dc515cff944a58ec456723c698694873 b=41f21efba9e3e1461f297ccd58bad7ab r=8f223dfd9f179d193248504a7892900f
+pavgw    : a=231be9e8cde7438d007c62c2085427f8 b=c233e9e8c4c9439a0f76255a085427f8 r=72a7e9e8c958439407f9440e085427f8
+pinsrw   : r=3248504a5678900f
+pinsrw   : r=72a7e9e85678439407f9440e085427f8
+pextrw   : r=00009869
+pextrw   : r=0000944a
+pmovmskb : r=00000018
+pmovmskb : r=00009918
+maskmov  : r=ffffffc6ff694873 a=456723c698694873 b=1f297ccd58bad7ab
+maskmov  : r=ff51ffff944a58ffffffffc6ff694873 a=dc515cff944a58ec456723c698694873 b=41f21efba9e3e1461f297ccd58bad7ab
+punpcklqdq: a=dc515cff944a58ec456723c698694873 b=41f21efba9e3e1461f297ccd58bad7ab r=1f297ccd58bad7ab456723c698694873
+punpcklqdq: a=231be9e8cde7438d007c62c2085427f8 b=c233e9e8c4c9439a0f76255a085427f8 r=0f76255a085427f8007c62c2085427f8
+punpckhqdq: a=dc515cff944a58ec456723c698694873 b=41f21efba9e3e1461f297ccd58bad7ab r=41f21efba9e3e146dc515cff944a58ec
+punpckhqdq: a=231be9e8cde7438d007c62c2085427f8 b=c233e9e8c4c9439a0f76255a085427f8 r=c233e9e8c4c9439a231be9e8cde7438d
+andps    : a=dc515cff944a58ec456723c698694873 b=41f21efba9e3e1461f297ccd58bad7ab r=40501cfb80424044052120c418284023
+andps    : a=231be9e8cde7438d007c62c2085427f8 b=c233e9e8c4c9439a0f76255a085427f8 r=0213e9e8c4c1438800742042085427f8
+andpd    : a=dc515cff944a58ec456723c698694873 b=41f21efba9e3e1461f297ccd58bad7ab r=40501cfb80424044052120c418284023
+andpd    : a=231be9e8cde7438d007c62c2085427f8 b=c233e9e8c4c9439a0f76255a085427f8 r=0213e9e8c4c1438800742042085427f8
+andnps   : a=dc515cff944a58ec456723c698694873 b=41f21efba9e3e1461f297ccd58bad7ab r=01a2020029a1a1021a085c0940929788
+andnps   : a=231be9e8cde7438d007c62c2085427f8 b=c233e9e8c4c9439a0f76255a085427f8 r=c0200000000800120f02051800000000
+andnpd   : a=dc515cff944a58ec456723c698694873 b=41f21efba9e3e1461f297ccd58bad7ab r=01a2020029a1a1021a085c0940929788
+andnpd   : a=231be9e8cde7438d007c62c2085427f8 b=c233e9e8c4c9439a0f76255a085427f8 r=c0200000000800120f02051800000000
+orps     : a=dc515cff944a58ec456723c698694873 b=41f21efba9e3e1461f297ccd58bad7ab r=ddf35effbdebf9ee5f6f7fcfd8fbdffb
+orps     : a=231be9e8cde7438d007c62c2085427f8 b=c233e9e8c4c9439a0f76255a085427f8 r=e33be9e8cdef439f0f7e67da085427f8
+orpd     : a=dc515cff944a58ec456723c698694873 b=41f21efba9e3e1461f297ccd58bad7ab r=ddf35effbdebf9ee5f6f7fcfd8fbdffb
+orpd     : a=231be9e8cde7438d007c62c2085427f8 b=c233e9e8c4c9439a0f76255a085427f8 r=e33be9e8cdef439f0f7e67da085427f8
+xorps    : a=dc515cff944a58ec456723c698694873 b=41f21efba9e3e1461f297ccd58bad7ab r=9da342043da9b9aa5a4e5f0bc0d39fd8
+xorps    : a=231be9e8cde7438d007c62c2085427f8 b=c233e9e8c4c9439a0f76255a085427f8 r=e1280000092e00170f0a479800000000
+xorpd    : a=dc515cff944a58ec456723c698694873 b=41f21efba9e3e1461f297ccd58bad7ab r=9da342043da9b9aa5a4e5f0bc0d39fd8
+xorpd    : a=231be9e8cde7438d007c62c2085427f8 b=c233e9e8c4c9439a0f76255a085427f8 r=e1280000092e00170f0a479800000000
+unpcklps : a=dc515cff944a58ec456723c698694873 b=41f21efba9e3e1461f297ccd58bad7ab r=1f297ccd456723c658bad7ab98694873
+unpcklps : a=231be9e8cde7438d007c62c2085427f8 b=c233e9e8c4c9439a0f76255a085427f8 r=0f76255a007c62c2085427f8085427f8
+unpcklpd : a=dc515cff944a58ec456723c698694873 b=41f21efba9e3e1461f297ccd58bad7ab r=1f297ccd58bad7ab456723c698694873
+unpcklpd : a=231be9e8cde7438d007c62c2085427f8 b=c233e9e8c4c9439a0f76255a085427f8 r=0f76255a085427f8007c62c2085427f8
+unpckhps : a=dc515cff944a58ec456723c698694873 b=41f21efba9e3e1461f297ccd58bad7ab r=41f21efbdc515cffa9e3e146944a58ec
+unpckhps : a=231be9e8cde7438d007c62c2085427f8 b=c233e9e8c4c9439a0f76255a085427f8 r=c233e9e8231be9e8c4c9439acde7438d
+unpckhpd : a=dc515cff944a58ec456723c698694873 b=41f21efba9e3e1461f297ccd58bad7ab r=41f21efba9e3e146dc515cff944a58ec
+unpckhpd : a=231be9e8cde7438d007c62c2085427f8 b=c233e9e8c4c9439a0f76255a085427f8 r=c233e9e8c4c9439a231be9e8cde7438d
+shufps   : a=dc515cff944a58ec456723c698694873 b=41f21efba9e3e1461f297ccd58bad7ab ib=78 r=1f297ccd41f21efb944a58ec98694873
+shufpd   : a=dc515cff944a58ec456723c698694873 b=41f21efba9e3e1461f297ccd58bad7ab ib=02 r=41f21efba9e3e146456723c698694873
+pshufd   : a=dc515cff944a58ec456723c698694873 ib=78 r=456723c6dc515cff944a58ec98694873
+pshufd   : a=231be9e8cde7438d007c62c2085427f8 ib=78 r=007c62c2231be9e8cde7438d085427f8
+pshuflw  : a=dc515cff944a58ec456723c698694873 ib=78 r=dc515cff944a58ec9869456723c64873
+pshuflw  : a=231be9e8cde7438d007c62c2085427f8 ib=78 r=231be9e8cde7438d0854007c62c227f8
+pshufhw  : a=dc515cff944a58ec456723c698694873 ib=78 r=944adc515cff58ec456723c698694873
+pshufhw  : a=231be9e8cde7438d007c62c2085427f8 ib=78 r=cde7231be9e8438d007c62c2085427f8
+psrlw    : a=dc515cff944a58ec456723c698694873 ib=07 r=01b800b9012800b1008a004701300090
+psrlw    : a=231be9e8cde7438d007c62c2085427f8 ib=07 r=004601d3019b0087000000c50010004f
+psrlw    : a=dc515cff944a58ec456723c698694873 b=00000000000000000000000000000007 r=01b800b9012800b1008a004701300090
+psrlw    : a=231be9e8cde7438d007c62c2085427f8 b=00000000000000000000000000000007 r=004601d3019b0087000000c50010004f
+psrlw    : a=dc515cff944a58ec456723c698694873 ib=10 r=00000000000000000000000000000000
+psrlw    : a=231be9e8cde7438d007c62c2085427f8 ib=10 r=00000000000000000000000000000000
+psrlw    : a=dc515cff944a58ec456723c698694873 b=00000000000000000000000000000010 r=00000000000000000000000000000000
+psrlw    : a=231be9e8cde7438d007c62c2085427f8 b=00000000000000000000000000000010 r=00000000000000000000000000000000
+psraw    : a=dc515cff944a58ec456723c698694873 ib=07 r=ffb800b9ff2800b1008a0047ff300090
+psraw    : a=231be9e8cde7438d007c62c2085427f8 ib=07 r=0046ffd3ff9b0087000000c50010004f
+psraw    : a=dc515cff944a58ec456723c698694873 b=00000000000000000000000000000007 r=ffb800b9ff2800b1008a0047ff300090
+psraw    : a=231be9e8cde7438d007c62c2085427f8 b=00000000000000000000000000000007 r=0046ffd3ff9b0087000000c50010004f
+psraw    : a=dc515cff944a58ec456723c698694873 ib=10 r=ffff0000ffff000000000000ffff0000
+psraw    : a=231be9e8cde7438d007c62c2085427f8 ib=10 r=0000ffffffff00000000000000000000
+psraw    : a=dc515cff944a58ec456723c698694873 b=00000000000000000000000000000010 r=ffff0000ffff000000000000ffff0000
+psraw    : a=231be9e8cde7438d007c62c2085427f8 b=00000000000000000000000000000010 r=0000ffffffff00000000000000000000
+psllw    : a=dc515cff944a58ec456723c698694873 ib=07 r=28807f8025007600b380e30034803980
+psllw    : a=231be9e8cde7438d007c62c2085427f8 ib=07 r=8d80f400f380c6803e0061002a00fc00
+psllw    : a=dc515cff944a58ec456723c698694873 b=00000000000000000000000000000007 r=28807f8025007600b380e30034803980
+psllw    : a=231be9e8cde7438d007c62c2085427f8 b=00000000000000000000000000000007 r=8d80f400f380c6803e0061002a00fc00
+psllw    : a=dc515cff944a58ec456723c698694873 ib=10 r=00000000000000000000000000000000
+psllw    : a=231be9e8cde7438d007c62c2085427f8 ib=10 r=00000000000000000000000000000000
+psllw    : a=dc515cff944a58ec456723c698694873 b=00000000000000000000000000000010 r=00000000000000000000000000000000
+psllw    : a=231be9e8cde7438d007c62c2085427f8 b=00000000000000000000000000000010 r=00000000000000000000000000000000
+psrld    : a=dc515cff944a58ec456723c698694873 ib=07 r=01b8a2b9012894b1008ace470130d290
+psrld    : a=231be9e8cde7438d007c62c2085427f8 ib=07 r=004637d3019bce870000f8c50010a84f
+psrld    : a=dc515cff944a58ec456723c698694873 b=00000000000000000000000000000007 r=01b8a2b9012894b1008ace470130d290
+psrld    : a=231be9e8cde7438d007c62c2085427f8 b=00000000000000000000000000000007 r=004637d3019bce870000f8c50010a84f
+psrld    : a=dc515cff944a58ec456723c698694873 ib=20 r=00000000000000000000000000000000
+psrld    : a=231be9e8cde7438d007c62c2085427f8 ib=20 r=00000000000000000000000000000000
+psrld    : a=dc515cff944a58ec456723c698694873 b=00000000000000000000000000000020 r=00000000000000000000000000000000
+psrld    : a=231be9e8cde7438d007c62c2085427f8 b=00000000000000000000000000000020 r=00000000000000000000000000000000
+psrad    : a=dc515cff944a58ec456723c698694873 ib=07 r=ffb8a2b9ff2894b1008ace47ff30d290
+psrad    : a=231be9e8cde7438d007c62c2085427f8 ib=07 r=004637d3ff9bce870000f8c50010a84f
+psrad    : a=dc515cff944a58ec456723c698694873 b=00000000000000000000000000000007 r=ffb8a2b9ff2894b1008ace47ff30d290
+psrad    : a=231be9e8cde7438d007c62c2085427f8 b=00000000000000000000000000000007 r=004637d3ff9bce870000f8c50010a84f
+psrad    : a=dc515cff944a58ec456723c698694873 ib=20 r=ffffffffffffffff00000000ffffffff
+psrad    : a=231be9e8cde7438d007c62c2085427f8 ib=20 r=00000000ffffffff0000000000000000
+psrad    : a=dc515cff944a58ec456723c698694873 b=00000000000000000000000000000020 r=ffffffffffffffff00000000ffffffff
+psrad    : a=231be9e8cde7438d007c62c2085427f8 b=00000000000000000000000000000020 r=00000000ffffffff0000000000000000
+pslld    : a=dc515cff944a58ec456723c698694873 ib=07 r=28ae7f80252c7600b391e30034a43980
+pslld    : a=231be9e8cde7438d007c62c2085427f8 ib=07 r=8df4f400f3a1c6803e3161002a13fc00
+pslld    : a=dc515cff944a58ec456723c698694873 b=00000000000000000000000000000007 r=28ae7f80252c7600b391e30034a43980
+pslld    : a=231be9e8cde7438d007c62c2085427f8 b=00000000000000000000000000000007 r=8df4f400f3a1c6803e3161002a13fc00
+pslld    : a=dc515cff944a58ec456723c698694873 ib=20 r=00000000000000000000000000000000
+pslld    : a=231be9e8cde7438d007c62c2085427f8 ib=20 r=00000000000000000000000000000000
+pslld    : a=dc515cff944a58ec456723c698694873 b=00000000000000000000000000000020 r=00000000000000000000000000000000
+pslld    : a=231be9e8cde7438d007c62c2085427f8 b=00000000000000000000000000000020 r=00000000000000000000000000000000
+psrlq    : a=dc515cff944a58ec456723c698694873 ib=07 r=01b8a2b9ff2894b1008ace478d30d290
+psrlq    : a=231be9e8cde7438d007c62c2085427f8 ib=07 r=004637d3d19bce870000f8c58410a84f
+psrlq    : a=dc515cff944a58ec456723c698694873 b=00000000000000000000000000000007 r=01b8a2b9ff2894b1008ace478d30d290
+psrlq    : a=231be9e8cde7438d007c62c2085427f8 b=00000000000000000000000000000007 r=004637d3d19bce870000f8c58410a84f
+psrlq    : a=dc515cff944a58ec456723c698694873 ib=20 r=00000000dc515cff00000000456723c6
+psrlq    : a=231be9e8cde7438d007c62c2085427f8 ib=20 r=00000000231be9e800000000007c62c2
+psrlq    : a=dc515cff944a58ec456723c698694873 b=00000000000000000000000000000020 r=00000000dc515cff00000000456723c6
+psrlq    : a=231be9e8cde7438d007c62c2085427f8 b=00000000000000000000000000000020 r=00000000231be9e800000000007c62c2
+psllq    : a=dc515cff944a58ec456723c698694873 ib=07 r=28ae7fca252c7600b391e34c34a43980
+psllq    : a=231be9e8cde7438d007c62c2085427f8 ib=07 r=8df4f466f3a1c6803e3161042a13fc00
+psllq    : a=dc515cff944a58ec456723c698694873 b=00000000000000000000000000000007 r=28ae7fca252c7600b391e34c34a43980
+psllq    : a=231be9e8cde7438d007c62c2085427f8 b=00000000000000000000000000000007 r=8df4f466f3a1c6803e3161042a13fc00
+psllq    : a=dc515cff944a58ec456723c698694873 ib=20 r=944a58ec000000009869487300000000
+psllq    : a=231be9e8cde7438d007c62c2085427f8 ib=20 r=cde7438d00000000085427f800000000
+psllq    : a=dc515cff944a58ec456723c698694873 b=00000000000000000000000000000020 r=944a58ec000000009869487300000000
+psllq    : a=231be9e8cde7438d007c62c2085427f8 b=00000000000000000000000000000020 r=cde7438d00000000085427f800000000
+psrldq   : a=dc515cff944a58ec456723c698694873 ib=10 r=00000000000000000000000000000000
+psrldq   : a=231be9e8cde7438d007c62c2085427f8 ib=10 r=00000000000000000000000000000000
+psrldq   : a=dc515cff944a58ec456723c698694873 ib=07 r=00000000000000dc515cff944a58ec45
+psrldq   : a=231be9e8cde7438d007c62c2085427f8 ib=07 r=00000000000000231be9e8cde7438d00
+pslldq   : a=dc515cff944a58ec456723c698694873 ib=10 r=00000000000000000000000000000000
+pslldq   : a=231be9e8cde7438d007c62c2085427f8 ib=10 r=00000000000000000000000000000000
+pslldq   : a=dc515cff944a58ec456723c698694873 ib=07 r=ec456723c69869487300000000000000
+pslldq   : a=231be9e8cde7438d007c62c2085427f8 ib=07 r=8d007c62c2085427f800000000000000
+movmskps : a=dc515cff944a58ec456723c698694873 r=0000000d
+movmskps : a=231be9e8cde7438d007c62c2085427f8 r=00000004
+movmskpd : a=dc515cff944a58ec456723c698694873 r=00000002
+movmskpd : a=231be9e8cde7438d007c62c2085427f8 r=00000000
+mxcsr=00001f80
+addps    : a=c0c9999a408000004059999a402ccccd b=426133334080000043b0b3334236cccd r=424800004100000043b266664241999a
+addss    : a=c0c9999a408000004059999a402ccccd b=426133334080000043b0b3334236cccd r=c0c9999a408000004059999a4241999a
+mulps    : a=c0c9999a408000004059999a402ccccd b=426133334080000043b0b3334236cccd r=c3b1585241800000449631ec42f6c7af
+mulss    : a=c0c9999a408000004059999a402ccccd b=426133334080000043b0b3334236cccd r=c0c9999a408000004059999a42f6c7af
+subps    : a=c0c9999a408000004059999a402ccccd b=426133334080000043b0b3334236cccd r=c27a666600000000c3af0000c22c0000
+subss    : a=c0c9999a408000004059999a402ccccd b=426133334080000043b0b3334236cccd r=c0c9999a408000004059999ac22c0000
+minps    : a=c0c9999a408000004059999a402ccccd b=426133334080000043b0b3334236cccd r=c0c9999a408000004059999a402ccccd
+minss    : a=c0c9999a408000004059999a402ccccd b=426133334080000043b0b3334236cccd r=c0c9999a408000004059999a402ccccd
+divps    : a=c0c9999a408000004059999a402ccccd b=426133334080000043b0b3334236cccd r=bde52c1c3f8000003c1da0ac3d71fee1
+divss    : a=c0c9999a408000004059999a402ccccd b=426133334080000043b0b3334236cccd r=c0c9999a408000004059999a3d71fee1
+maxps    : a=c0c9999a408000004059999a402ccccd b=426133334080000043b0b3334236cccd r=426133334080000043b0b3334236cccd
+maxss    : a=c0c9999a408000004059999a402ccccd b=426133334080000043b0b3334236cccd r=c0c9999a408000004059999a4236cccd
+sqrtps   : a=c0c9999a408000004059999a402ccccd b=426133334080000043b0b3334236cccd r=40f01b4d400000004196643940d85360
+sqrtss   : a=c0c9999a408000004059999a402ccccd b=426133334080000043b0b3334236cccd r=c0c9999a408000004059999a40d85360
+cmpeqps  : a=c0c9999a408000004059999a402ccccd b=426133334080000043b0b3334236cccd r=00000000ffffffff0000000000000000
+cmpeqss  : a=c0c9999a408000004059999a402ccccd b=426133334080000043b0b3334236cccd r=c0c9999a408000004059999a00000000
+cmpltps  : a=c0c9999a408000004059999a402ccccd b=426133334080000043b0b3334236cccd r=ffffffff00000000ffffffffffffffff
+cmpltss  : a=c0c9999a408000004059999a402ccccd b=426133334080000043b0b3334236cccd r=c0c9999a408000004059999affffffff
+cmpleps  : a=c0c9999a408000004059999a402ccccd b=426133334080000043b0b3334236cccd r=ffffffffffffffffffffffffffffffff
+cmpless  : a=c0c9999a408000004059999a402ccccd b=426133334080000043b0b3334236cccd r=c0c9999a408000004059999affffffff
+cmpunordps: a=c0c9999a408000004059999a402ccccd b=426133334080000043b0b3334236cccd r=00000000000000000000000000000000
+cmpunordss: a=c0c9999a408000004059999a402ccccd b=426133334080000043b0b3334236cccd r=c0c9999a408000004059999a00000000
+cmpneqps : a=c0c9999a408000004059999a402ccccd b=426133334080000043b0b3334236cccd r=ffffffff00000000ffffffffffffffff
+cmpneqss : a=c0c9999a408000004059999a402ccccd b=426133334080000043b0b3334236cccd r=c0c9999a408000004059999affffffff
+cmpnltps : a=c0c9999a408000004059999a402ccccd b=426133334080000043b0b3334236cccd r=00000000ffffffff0000000000000000
+cmpnltss : a=c0c9999a408000004059999a402ccccd b=426133334080000043b0b3334236cccd r=c0c9999a408000004059999a00000000
+cmpnleps : a=c0c9999a408000004059999a402ccccd b=426133334080000043b0b3334236cccd r=00000000000000000000000000000000
+cmpnless : a=c0c9999a408000004059999a402ccccd b=426133334080000043b0b3334236cccd r=c0c9999a408000004059999a00000000
+cmpordps : a=c0c9999a408000004059999a402ccccd b=426133334080000043b0b3334236cccd r=ffffffffffffffffffffffffffffffff
+cmpordss : a=c0c9999a408000004059999a402ccccd b=426133334080000043b0b3334236cccd r=c0c9999a408000004059999affffffff
+addpd    : a=c00b333333333333400599999999999a b=c04ab333333333334046d9999999999a r=c04c6666666666664048333333333334
+addsd    : a=c00b333333333333400599999999999a b=c04ab333333333334046d9999999999a r=c00b3333333333334048333333333334
+mulpd    : a=c00b333333333333400599999999999a b=c04ab333333333334046d9999999999a r=4066b1eb851eb852405ed8f5c28f5c2a
+mulsd    : a=c00b333333333333400599999999999a b=c04ab333333333334046d9999999999a r=c00b333333333333405ed8f5c28f5c2a
+subpd    : a=c00b333333333333400599999999999a b=c04ab333333333334046d9999999999a r=4049000000000000c045800000000000
+subsd    : a=c00b333333333333400599999999999a b=c04ab333333333334046d9999999999a r=c00b333333333333c045800000000000
+minpd    : a=c00b333333333333400599999999999a b=c04ab333333333334046d9999999999a r=c04ab33333333333400599999999999a
+minsd    : a=c00b333333333333400599999999999a b=c04ab333333333334046d9999999999a r=c00b333333333333400599999999999a
+divpd    : a=c00b333333333333400599999999999a b=c04ab333333333334046d9999999999a r=3fb04cb44132d1053fae3fdc26178701
+divsd    : a=c00b333333333333400599999999999a b=c04ab333333333334046d9999999999a r=c00b3333333333333fae3fdc26178701
+maxpd    : a=c00b333333333333400599999999999a b=c04ab333333333334046d9999999999a r=c00b3333333333334046d9999999999a
+maxsd    : a=c00b333333333333400599999999999a b=c04ab333333333334046d9999999999a r=c00b3333333333334046d9999999999a
+sqrtpd   : a=c00b333333333333400599999999999a b=c04ab333333333334046d9999999999a r=fff8000000000000401b0a6bf94cb839
+sqrtsd   : a=c00b333333333333400599999999999a b=c04ab333333333334046d9999999999a r=c00b333333333333401b0a6bf94cb839
+cmpeqpd  : a=c00b333333333333400599999999999a b=c04ab333333333334046d9999999999a r=00000000000000000000000000000000
+cmpeqsd  : a=c00b333333333333400599999999999a b=c04ab333333333334046d9999999999a r=c00b3333333333330000000000000000
+cmpltpd  : a=c00b333333333333400599999999999a b=c04ab333333333334046d9999999999a r=0000000000000000ffffffffffffffff
+cmpltsd  : a=c00b333333333333400599999999999a b=c04ab333333333334046d9999999999a r=c00b333333333333ffffffffffffffff
+cmplepd  : a=c00b333333333333400599999999999a b=c04ab333333333334046d9999999999a r=0000000000000000ffffffffffffffff
+cmplesd  : a=c00b333333333333400599999999999a b=c04ab333333333334046d9999999999a r=c00b333333333333ffffffffffffffff
+cmpunordpd: a=c00b333333333333400599999999999a b=c04ab333333333334046d9999999999a r=00000000000000000000000000000000
+cmpunordsd: a=c00b333333333333400599999999999a b=c04ab333333333334046d9999999999a r=c00b3333333333330000000000000000
+cmpneqpd : a=c00b333333333333400599999999999a b=c04ab333333333334046d9999999999a r=ffffffffffffffffffffffffffffffff
+cmpneqsd : a=c00b333333333333400599999999999a b=c04ab333333333334046d9999999999a r=c00b333333333333ffffffffffffffff
+cmpnltpd : a=c00b333333333333400599999999999a b=c04ab333333333334046d9999999999a r=ffffffffffffffff0000000000000000
+cmpnltsd : a=c00b333333333333400599999999999a b=c04ab333333333334046d9999999999a r=c00b3333333333330000000000000000
+cmpnlepd : a=c00b333333333333400599999999999a b=c04ab333333333334046d9999999999a r=ffffffffffffffff0000000000000000
+cmpnlesd : a=c00b333333333333400599999999999a b=c04ab333333333334046d9999999999a r=c00b3333333333330000000000000000
+cmpordpd : a=c00b333333333333400599999999999a b=c04ab333333333334046d9999999999a r=ffffffffffffffffffffffffffffffff
+cmpordsd : a=c00b333333333333400599999999999a b=c04ab333333333334046d9999999999a r=c00b333333333333ffffffffffffffff
+addps    : a=c0c9999a408000004059999affc00000 b=ffc000004080000043b0b3334236cccd r=ffc000004100000043b26666ffc00000
+addss    : a=c0c9999a408000004059999affc00000 b=ffc000004080000043b0b3334236cccd r=c0c9999a408000004059999affc00000
+mulps    : a=c0c9999a408000004059999affc00000 b=ffc000004080000043b0b3334236cccd r=ffc0000041800000449631ecffc00000
+mulss    : a=c0c9999a408000004059999affc00000 b=ffc000004080000043b0b3334236cccd r=c0c9999a408000004059999affc00000
+subps    : a=c0c9999a408000004059999affc00000 b=ffc000004080000043b0b3334236cccd r=ffc0000000000000c3af0000ffc00000
+subss    : a=c0c9999a408000004059999affc00000 b=ffc000004080000043b0b3334236cccd r=c0c9999a408000004059999affc00000
+minps    : a=c0c9999a408000004059999affc00000 b=ffc000004080000043b0b3334236cccd r=ffc00000408000004059999a4236cccd
+minss    : a=c0c9999a408000004059999affc00000 b=ffc000004080000043b0b3334236cccd r=c0c9999a408000004059999a4236cccd
+divps    : a=c0c9999a408000004059999affc00000 b=ffc000004080000043b0b3334236cccd r=ffc000003f8000003c1da0acffc00000
+divss    : a=c0c9999a408000004059999affc00000 b=ffc000004080000043b0b3334236cccd r=c0c9999a408000004059999affc00000
+maxps    : a=c0c9999a408000004059999affc00000 b=ffc000004080000043b0b3334236cccd r=ffc000004080000043b0b3334236cccd
+maxss    : a=c0c9999a408000004059999affc00000 b=ffc000004080000043b0b3334236cccd r=c0c9999a408000004059999a4236cccd
+sqrtps   : a=c0c9999a408000004059999affc00000 b=ffc000004080000043b0b3334236cccd r=ffc00000400000004196643940d85360
+sqrtss   : a=c0c9999a408000004059999affc00000 b=ffc000004080000043b0b3334236cccd r=c0c9999a408000004059999a40d85360
+cmpeqps  : a=c0c9999a408000004059999affc00000 b=ffc000004080000043b0b3334236cccd r=00000000ffffffff0000000000000000
+cmpeqss  : a=c0c9999a408000004059999affc00000 b=ffc000004080000043b0b3334236cccd r=c0c9999a408000004059999a00000000
+cmpltps  : a=c0c9999a408000004059999affc00000 b=ffc000004080000043b0b3334236cccd r=0000000000000000ffffffff00000000
+cmpltss  : a=c0c9999a408000004059999affc00000 b=ffc000004080000043b0b3334236cccd r=c0c9999a408000004059999a00000000
+cmpleps  : a=c0c9999a408000004059999affc00000 b=ffc000004080000043b0b3334236cccd r=00000000ffffffffffffffff00000000
+cmpless  : a=c0c9999a408000004059999affc00000 b=ffc000004080000043b0b3334236cccd r=c0c9999a408000004059999a00000000
+cmpunordps: a=c0c9999a408000004059999affc00000 b=ffc000004080000043b0b3334236cccd r=ffffffff0000000000000000ffffffff
+cmpunordss: a=c0c9999a408000004059999affc00000 b=ffc000004080000043b0b3334236cccd r=c0c9999a408000004059999affffffff
+cmpneqps : a=c0c9999a408000004059999affc00000 b=ffc000004080000043b0b3334236cccd r=ffffffff00000000ffffffffffffffff
+cmpneqss : a=c0c9999a408000004059999affc00000 b=ffc000004080000043b0b3334236cccd r=c0c9999a408000004059999affffffff
+cmpnltps : a=c0c9999a408000004059999affc00000 b=ffc000004080000043b0b3334236cccd r=ffffffffffffffff00000000ffffffff
+cmpnltss : a=c0c9999a408000004059999affc00000 b=ffc000004080000043b0b3334236cccd r=c0c9999a408000004059999affffffff
+cmpnleps : a=c0c9999a408000004059999affc00000 b=ffc000004080000043b0b3334236cccd r=ffffffff0000000000000000ffffffff
+cmpnless : a=c0c9999a408000004059999affc00000 b=ffc000004080000043b0b3334236cccd r=c0c9999a408000004059999affffffff
+cmpordps : a=c0c9999a408000004059999affc00000 b=ffc000004080000043b0b3334236cccd r=00000000ffffffffffffffff00000000
+cmpordss : a=c0c9999a408000004059999affc00000 b=ffc000004080000043b0b3334236cccd r=c0c9999a408000004059999a00000000
+addpd    : a=c00b333333333333fff8000000000000 b=fff80000000000004046d9999999999a r=fff8000000000000fff8000000000000
+addsd    : a=c00b333333333333fff8000000000000 b=fff80000000000004046d9999999999a r=c00b333333333333fff8000000000000
+mulpd    : a=c00b333333333333fff8000000000000 b=fff80000000000004046d9999999999a r=fff8000000000000fff8000000000000
+mulsd    : a=c00b333333333333fff8000000000000 b=fff80000000000004046d9999999999a r=c00b333333333333fff8000000000000
+subpd    : a=c00b333333333333fff8000000000000 b=fff80000000000004046d9999999999a r=fff8000000000000fff8000000000000
+subsd    : a=c00b333333333333fff8000000000000 b=fff80000000000004046d9999999999a r=c00b333333333333fff8000000000000
+minpd    : a=c00b333333333333fff8000000000000 b=fff80000000000004046d9999999999a r=fff80000000000004046d9999999999a
+minsd    : a=c00b333333333333fff8000000000000 b=fff80000000000004046d9999999999a r=c00b3333333333334046d9999999999a
+divpd    : a=c00b333333333333fff8000000000000 b=fff80000000000004046d9999999999a r=fff8000000000000fff8000000000000
+divsd    : a=c00b333333333333fff8000000000000 b=fff80000000000004046d9999999999a r=c00b333333333333fff8000000000000
+maxpd    : a=c00b333333333333fff8000000000000 b=fff80000000000004046d9999999999a r=fff80000000000004046d9999999999a
+maxsd    : a=c00b333333333333fff8000000000000 b=fff80000000000004046d9999999999a r=c00b3333333333334046d9999999999a
+sqrtpd   : a=c00b333333333333fff8000000000000 b=fff80000000000004046d9999999999a r=fff8000000000000401b0a6bf94cb839
+sqrtsd   : a=c00b333333333333fff8000000000000 b=fff80000000000004046d9999999999a r=c00b333333333333401b0a6bf94cb839
+cmpeqpd  : a=c00b333333333333fff8000000000000 b=fff80000000000004046d9999999999a r=00000000000000000000000000000000
+cmpeqsd  : a=c00b333333333333fff8000000000000 b=fff80000000000004046d9999999999a r=c00b3333333333330000000000000000
+cmpltpd  : a=c00b333333333333fff8000000000000 b=fff80000000000004046d9999999999a r=00000000000000000000000000000000
+cmpltsd  : a=c00b333333333333fff8000000000000 b=fff80000000000004046d9999999999a r=c00b3333333333330000000000000000
+cmplepd  : a=c00b333333333333fff8000000000000 b=fff80000000000004046d9999999999a r=00000000000000000000000000000000
+cmplesd  : a=c00b333333333333fff8000000000000 b=fff80000000000004046d9999999999a r=c00b3333333333330000000000000000
+cmpunordpd: a=c00b333333333333fff8000000000000 b=fff80000000000004046d9999999999a r=ffffffffffffffffffffffffffffffff
+cmpunordsd: a=c00b333333333333fff8000000000000 b=fff80000000000004046d9999999999a r=c00b333333333333ffffffffffffffff
+cmpneqpd : a=c00b333333333333fff8000000000000 b=fff80000000000004046d9999999999a r=ffffffffffffffffffffffffffffffff
+cmpneqsd : a=c00b333333333333fff8000000000000 b=fff80000000000004046d9999999999a r=c00b333333333333ffffffffffffffff
+cmpnltpd : a=c00b333333333333fff8000000000000 b=fff80000000000004046d9999999999a r=ffffffffffffffffffffffffffffffff
+cmpnltsd : a=c00b333333333333fff8000000000000 b=fff80000000000004046d9999999999a r=c00b333333333333ffffffffffffffff
+cmpnlepd : a=c00b333333333333fff8000000000000 b=fff80000000000004046d9999999999a r=ffffffffffffffffffffffffffffffff
+cmpnlesd : a=c00b333333333333fff8000000000000 b=fff80000000000004046d9999999999a r=c00b333333333333ffffffffffffffff
+cmpordpd : a=c00b333333333333fff8000000000000 b=fff80000000000004046d9999999999a r=00000000000000000000000000000000
+cmpordsd : a=c00b333333333333fff8000000000000 b=fff80000000000004046d9999999999a r=c00b3333333333330000000000000000
+cvtps2pd : a=c0c9999a408000004059999a402ccccd r=400b33334000000040059999a0000000
+cvtss2sd : a=c0c9999a408000004059999a402ccccd r=400b33334000000040059999a0000000
+cvtps2pi : a=c0c9999a408000004059999a402ccccd r=0000000300000003
+cvttps2pi: a=c0c9999a408000004059999a402ccccd r=0000000300000002
+cvtss2si : a=c0c9999a408000004059999a402ccccd r=00000003
+cvttss2si: a=c0c9999a408000004059999a402ccccd r=00000002
+cvtps2dq : a=c0c9999a408000004059999a402ccccd r=fffffffa000000040000000300000003
+cvttps2dq: a=c0c9999a408000004059999a402ccccd r=fffffffa000000040000000300000002
+cvtpd2ps : a=c00b3333333333334004cccccccccccd r=0000000000000000c059999a40266666
+cvtsd2ss : a=c00b3333333333334004cccccccccccd r=0000000000000000c059999a40266666
+cvtpd2pi : a=c00b3333333333334004cccccccccccd r=fffffffd00000003
+cvttpd2pi: a=c00b3333333333334004cccccccccccd r=fffffffd00000002
+cvtsd2si : a=c00b3333333333334004cccccccccccd r=00000003
+cvttsd2si: a=c00b3333333333334004cccccccccccd r=00000002
+cvtpd2dq : a=c00b3333333333334004cccccccccccd r=0000000000000000fffffffd00000003
+cvttpd2dq: a=c00b3333333333334004cccccccccccd r=0000000000000000fffffffd00000002
+movdq2q  : a=c00b3333333333334004cccccccccccd r=4004cccccccccccd
+movq2dq  : a=4004cccccccccccd r=00000000000000004004cccccccccccd
+cvtpi2ps : a=00000002fffffffa r=000000000000000040000000c0c00000
+cvtpi2pd : a=00000002fffffffa r=4000000000000000c018000000000000
+cvtsi2ss : a=fffffffa r=4000000000000000c0180000c0c00000
+cvtsi2sd : a=fffffffa r=4000000000000000c018000000000000
+cvtdq2ps : a=ffff15a00000006400000002fffffffa r=c76a600042c8000040000000c0c00000
+cvtdq2pd : a=ffff15a00000006400000002fffffffa r=4000000000000000c018000000000000
diff --git a/test/arch/x86/qemu/expected/test_string.exp b/test/arch/x86/qemu/expected/test_string.exp
index 1087650a..771b821f 100644
--- a/test/arch/x86/qemu/expected/test_string.exp
+++ b/test/arch/x86/qemu/expected/test_string.exp
@@ -1,78 +1,78 @@
-stosb      ESI=0805a980 EDI=0805a991 EAX=12345678 ECX=00000011 EFL=0000
-stosw      ESI=0805a980 EDI=0805a992 EAX=12345678 ECX=00000011 EFL=0000
-stosl      ESI=0805a980 EDI=0805a994 EAX=12345678 ECX=00000011 EFL=0000
-stosb      ESI=0805a980 EDI=0805a98f EAX=12345678 ECX=00000011 EFL=0000
-stosw      ESI=0805a980 EDI=0805a98e EAX=12345678 ECX=00000011 EFL=0000
-stosl      ESI=0805a980 EDI=0805a98c EAX=12345678 ECX=00000011 EFL=0000
-rep stosb  ESI=0805a980 EDI=0805a9a1 EAX=12345678 ECX=00000000 EFL=0000
-rep stosw  ESI=0805a980 EDI=0805a9b2 EAX=12345678 ECX=00000000 EFL=0000
-rep stosl  ESI=0805a980 EDI=0805a9d4 EAX=12345678 ECX=00000000 EFL=0000
-rep stosb  ESI=0805a980 EDI=0805a97f EAX=12345678 ECX=00000000 EFL=0000
-rep stosw  ESI=0805a980 EDI=0805a96e EAX=12345678 ECX=00000000 EFL=0000
-rep stosl  ESI=0805a980 EDI=0805a94c EAX=12345678 ECX=00000000 EFL=0000
-lodsb      ESI=0805a981 EDI=0805a990 EAX=12345678 ECX=00000011 EFL=0000
-lodsw      ESI=0805a982 EDI=0805a990 EAX=12345678 ECX=00000011 EFL=0000
-lodsl      ESI=0805a984 EDI=0805a990 EAX=12345678 ECX=00000011 EFL=0000
-lodsb      ESI=0805a97f EDI=0805a990 EAX=12345678 ECX=00000011 EFL=0000
-lodsw      ESI=0805a97e EDI=0805a990 EAX=12345678 ECX=00000011 EFL=0000
-lodsl      ESI=0805a97c EDI=0805a990 EAX=12345678 ECX=00000011 EFL=0000
-rep lodsb  ESI=0805a991 EDI=0805a990 EAX=12345678 ECX=00000000 EFL=0000
-rep lodsw  ESI=0805a9a2 EDI=0805a990 EAX=12345678 ECX=00000000 EFL=0000
-rep lodsl  ESI=0805a9c4 EDI=0805a990 EAX=12345678 ECX=00000000 EFL=0000
-rep lodsb  ESI=0805a96f EDI=0805a990 EAX=12345678 ECX=00000000 EFL=0000
-rep lodsw  ESI=0805a95e EDI=0805a990 EAX=12345678 ECX=00000000 EFL=0000
-rep lodsl  ESI=0805a93c EDI=0805a990 EAX=19181716 ECX=00000000 EFL=0000
-movsb      ESI=0805a981 EDI=0805a991 EAX=12345678 ECX=00000011 EFL=0000
-movsw      ESI=0805a982 EDI=0805a992 EAX=12345678 ECX=00000011 EFL=0000
-movsl      ESI=0805a984 EDI=0805a994 EAX=12345678 ECX=00000011 EFL=0000
-movsb      ESI=0805a97f EDI=0805a98f EAX=12345678 ECX=00000011 EFL=0000
-movsw      ESI=0805a97e EDI=0805a98e EAX=12345678 ECX=00000011 EFL=0000
-movsl      ESI=0805a97c EDI=0805a98c EAX=12345678 ECX=00000011 EFL=0000
-rep movsb  ESI=0805a991 EDI=0805a9a1 EAX=12345678 ECX=00000000 EFL=0000
-rep movsw  ESI=0805a9a2 EDI=0805a9b2 EAX=12345678 ECX=00000000 EFL=0000
-rep movsl  ESI=0805a9c4 EDI=0805a9d4 EAX=12345678 ECX=00000000 EFL=0000
-rep movsb  ESI=0805a96f EDI=0805a97f EAX=12345678 ECX=00000000 EFL=0000
-rep movsw  ESI=0805a95e EDI=0805a96e EAX=12345678 ECX=00000000 EFL=0000
-rep movsl  ESI=0805a93c EDI=0805a94c EAX=12345678 ECX=00000000 EFL=0000
-lodsb      ESI=0805a981 EDI=0805a990 EAX=12345678 ECX=00000011 EFL=0000
-lodsw      ESI=0805a982 EDI=0805a990 EAX=12345678 ECX=00000011 EFL=0000
-lodsl      ESI=0805a984 EDI=0805a990 EAX=12345678 ECX=00000011 EFL=0000
-lodsb      ESI=0805a97f EDI=0805a990 EAX=12345678 ECX=00000011 EFL=0000
-lodsw      ESI=0805a97e EDI=0805a990 EAX=12345678 ECX=00000011 EFL=0000
-lodsl      ESI=0805a97c EDI=0805a990 EAX=12345678 ECX=00000011 EFL=0000
-scasb      ESI=0805a980 EDI=0805a991 EAX=12345678 ECX=00000011 EFL=0044
-scasw      ESI=0805a980 EDI=0805a992 EAX=12345678 ECX=00000011 EFL=0044
-scasl      ESI=0805a980 EDI=0805a994 EAX=12345678 ECX=00000011 EFL=0044
-scasb      ESI=0805a980 EDI=0805a98f EAX=12345678 ECX=00000011 EFL=0044
-scasw      ESI=0805a980 EDI=0805a98e EAX=12345678 ECX=00000011 EFL=0044
-scasl      ESI=0805a980 EDI=0805a98c EAX=12345678 ECX=00000011 EFL=0044
-repz scasb ESI=0805a980 EDI=0805a992 EAX=12345678 ECX=0000000f EFL=0004
-repz scasw ESI=0805a980 EDI=0805a994 EAX=12345678 ECX=0000000f EFL=0004
-repz scasl ESI=0805a980 EDI=0805a9d4 EAX=12345678 ECX=00000000 EFL=0044
-repz scasb ESI=0805a980 EDI=0805a98e EAX=12345678 ECX=0000000f EFL=0004
-repz scasw ESI=0805a980 EDI=0805a98c EAX=12345678 ECX=0000000f EFL=0004
-repz scasl ESI=0805a980 EDI=0805a958 EAX=12345678 ECX=00000003 EFL=0085
-repnz scasb ESI=0805a980 EDI=0805a991 EAX=12345678 ECX=00000010 EFL=0044
-repnz scasw ESI=0805a980 EDI=0805a992 EAX=12345678 ECX=00000010 EFL=0044
-repnz scasl ESI=0805a980 EDI=0805a994 EAX=12345678 ECX=00000010 EFL=0044
-repnz scasb ESI=0805a980 EDI=0805a98f EAX=12345678 ECX=00000010 EFL=0044
-repnz scasw ESI=0805a980 EDI=0805a98e EAX=12345678 ECX=00000010 EFL=0044
-repnz scasl ESI=0805a980 EDI=0805a98c EAX=12345678 ECX=00000010 EFL=0044
-cmpsb      ESI=0805a981 EDI=0805a991 EAX=12345678 ECX=00000011 EFL=0044
-cmpsw      ESI=0805a982 EDI=0805a992 EAX=12345678 ECX=00000011 EFL=0044
-cmpsl      ESI=0805a984 EDI=0805a994 EAX=12345678 ECX=00000011 EFL=0044
-cmpsb      ESI=0805a97f EDI=0805a98f EAX=12345678 ECX=00000011 EFL=0044
-cmpsw      ESI=0805a97e EDI=0805a98e EAX=12345678 ECX=00000011 EFL=0044
-cmpsl      ESI=0805a97c EDI=0805a98c EAX=12345678 ECX=00000011 EFL=0044
-repz cmpsb ESI=0805a991 EDI=0805a9a1 EAX=12345678 ECX=00000000 EFL=0044
-repz cmpsw ESI=0805a9a2 EDI=0805a9b2 EAX=12345678 ECX=00000000 EFL=0044
-repz cmpsl ESI=0805a9c4 EDI=0805a9d4 EAX=12345678 ECX=00000000 EFL=0044
-repz cmpsb ESI=0805a96f EDI=0805a97f EAX=12345678 ECX=00000000 EFL=0044
-repz cmpsw ESI=0805a95e EDI=0805a96e EAX=12345678 ECX=00000000 EFL=0044
-repz cmpsl ESI=0805a958 EDI=0805a968 EAX=12345678 ECX=00000007 EFL=0014
-repnz cmpsb ESI=0805a981 EDI=0805a991 EAX=12345678 ECX=00000010 EFL=0044
-repnz cmpsw ESI=0805a982 EDI=0805a992 EAX=12345678 ECX=00000010 EFL=0044
-repnz cmpsl ESI=0805a984 EDI=0805a994 EAX=12345678 ECX=00000010 EFL=0044
-repnz cmpsb ESI=0805a97f EDI=0805a98f EAX=12345678 ECX=00000010 EFL=0044
-repnz cmpsw ESI=0805a97e EDI=0805a98e EAX=12345678 ECX=00000010 EFL=0044
-repnz cmpsl ESI=0805a97c EDI=0805a98c EAX=12345678 ECX=00000010 EFL=0044
+stosb      ESI=0806dd40 EDI=0806dd51 EAX=12345678 ECX=00000011 EFL=0000
+stosw      ESI=0806dd40 EDI=0806dd52 EAX=12345678 ECX=00000011 EFL=0000
+stosl      ESI=0806dd40 EDI=0806dd54 EAX=12345678 ECX=00000011 EFL=0000
+stosb      ESI=0806dd40 EDI=0806dd4f EAX=12345678 ECX=00000011 EFL=0000
+stosw      ESI=0806dd40 EDI=0806dd4e EAX=12345678 ECX=00000011 EFL=0000
+stosl      ESI=0806dd40 EDI=0806dd4c EAX=12345678 ECX=00000011 EFL=0000
+rep stosb  ESI=0806dd40 EDI=0806dd61 EAX=12345678 ECX=00000000 EFL=0000
+rep stosw  ESI=0806dd40 EDI=0806dd72 EAX=12345678 ECX=00000000 EFL=0000
+rep stosl  ESI=0806dd40 EDI=0806dd94 EAX=12345678 ECX=00000000 EFL=0000
+rep stosb  ESI=0806dd40 EDI=0806dd3f EAX=12345678 ECX=00000000 EFL=0000
+rep stosw  ESI=0806dd40 EDI=0806dd2e EAX=12345678 ECX=00000000 EFL=0000
+rep stosl  ESI=0806dd40 EDI=0806dd0c EAX=12345678 ECX=00000000 EFL=0000
+lodsb      ESI=0806dd41 EDI=0806dd50 EAX=12345678 ECX=00000011 EFL=0000
+lodsw      ESI=0806dd42 EDI=0806dd50 EAX=12345678 ECX=00000011 EFL=0000
+lodsl      ESI=0806dd44 EDI=0806dd50 EAX=12345678 ECX=00000011 EFL=0000
+lodsb      ESI=0806dd3f EDI=0806dd50 EAX=12345678 ECX=00000011 EFL=0000
+lodsw      ESI=0806dd3e EDI=0806dd50 EAX=12345678 ECX=00000011 EFL=0000
+lodsl      ESI=0806dd3c EDI=0806dd50 EAX=12345678 ECX=00000011 EFL=0000
+rep lodsb  ESI=0806dd51 EDI=0806dd50 EAX=12345678 ECX=00000000 EFL=0000
+rep lodsw  ESI=0806dd62 EDI=0806dd50 EAX=12345678 ECX=00000000 EFL=0000
+rep lodsl  ESI=0806dd84 EDI=0806dd50 EAX=12345678 ECX=00000000 EFL=0000
+rep lodsb  ESI=0806dd2f EDI=0806dd50 EAX=12345678 ECX=00000000 EFL=0000
+rep lodsw  ESI=0806dd1e EDI=0806dd50 EAX=12345678 ECX=00000000 EFL=0000
+rep lodsl  ESI=0806dcfc EDI=0806dd50 EAX=19181716 ECX=00000000 EFL=0000
+movsb      ESI=0806dd41 EDI=0806dd51 EAX=12345678 ECX=00000011 EFL=0000
+movsw      ESI=0806dd42 EDI=0806dd52 EAX=12345678 ECX=00000011 EFL=0000
+movsl      ESI=0806dd44 EDI=0806dd54 EAX=12345678 ECX=00000011 EFL=0000
+movsb      ESI=0806dd3f EDI=0806dd4f EAX=12345678 ECX=00000011 EFL=0000
+movsw      ESI=0806dd3e EDI=0806dd4e EAX=12345678 ECX=00000011 EFL=0000
+movsl      ESI=0806dd3c EDI=0806dd4c EAX=12345678 ECX=00000011 EFL=0000
+rep movsb  ESI=0806dd51 EDI=0806dd61 EAX=12345678 ECX=00000000 EFL=0000
+rep movsw  ESI=0806dd62 EDI=0806dd72 EAX=12345678 ECX=00000000 EFL=0000
+rep movsl  ESI=0806dd84 EDI=0806dd94 EAX=12345678 ECX=00000000 EFL=0000
+rep movsb  ESI=0806dd2f EDI=0806dd3f EAX=12345678 ECX=00000000 EFL=0000
+rep movsw  ESI=0806dd1e EDI=0806dd2e EAX=12345678 ECX=00000000 EFL=0000
+rep movsl  ESI=0806dcfc EDI=0806dd0c EAX=12345678 ECX=00000000 EFL=0000
+lodsb      ESI=0806dd41 EDI=0806dd50 EAX=12345678 ECX=00000011 EFL=0000
+lodsw      ESI=0806dd42 EDI=0806dd50 EAX=12345678 ECX=00000011 EFL=0000
+lodsl      ESI=0806dd44 EDI=0806dd50 EAX=12345678 ECX=00000011 EFL=0000
+lodsb      ESI=0806dd3f EDI=0806dd50 EAX=12345678 ECX=00000011 EFL=0000
+lodsw      ESI=0806dd3e EDI=0806dd50 EAX=12345678 ECX=00000011 EFL=0000
+lodsl      ESI=0806dd3c EDI=0806dd50 EAX=12345678 ECX=00000011 EFL=0000
+scasb      ESI=0806dd40 EDI=0806dd51 EAX=12345678 ECX=00000011 EFL=0044
+scasw      ESI=0806dd40 EDI=0806dd52 EAX=12345678 ECX=00000011 EFL=0044
+scasl      ESI=0806dd40 EDI=0806dd54 EAX=12345678 ECX=00000011 EFL=0044
+scasb      ESI=0806dd40 EDI=0806dd4f EAX=12345678 ECX=00000011 EFL=0044
+scasw      ESI=0806dd40 EDI=0806dd4e EAX=12345678 ECX=00000011 EFL=0044
+scasl      ESI=0806dd40 EDI=0806dd4c EAX=12345678 ECX=00000011 EFL=0044
+repz scasb ESI=0806dd40 EDI=0806dd52 EAX=12345678 ECX=0000000f EFL=0004
+repz scasw ESI=0806dd40 EDI=0806dd54 EAX=12345678 ECX=0000000f EFL=0004
+repz scasl ESI=0806dd40 EDI=0806dd94 EAX=12345678 ECX=00000000 EFL=0044
+repz scasb ESI=0806dd40 EDI=0806dd4e EAX=12345678 ECX=0000000f EFL=0004
+repz scasw ESI=0806dd40 EDI=0806dd4c EAX=12345678 ECX=0000000f EFL=0004
+repz scasl ESI=0806dd40 EDI=0806dd18 EAX=12345678 ECX=00000003 EFL=0085
+repnz scasb ESI=0806dd40 EDI=0806dd51 EAX=12345678 ECX=00000010 EFL=0044
+repnz scasw ESI=0806dd40 EDI=0806dd52 EAX=12345678 ECX=00000010 EFL=0044
+repnz scasl ESI=0806dd40 EDI=0806dd54 EAX=12345678 ECX=00000010 EFL=0044
+repnz scasb ESI=0806dd40 EDI=0806dd4f EAX=12345678 ECX=00000010 EFL=0044
+repnz scasw ESI=0806dd40 EDI=0806dd4e EAX=12345678 ECX=00000010 EFL=0044
+repnz scasl ESI=0806dd40 EDI=0806dd4c EAX=12345678 ECX=00000010 EFL=0044
+cmpsb      ESI=0806dd41 EDI=0806dd51 EAX=12345678 ECX=00000011 EFL=0044
+cmpsw      ESI=0806dd42 EDI=0806dd52 EAX=12345678 ECX=00000011 EFL=0044
+cmpsl      ESI=0806dd44 EDI=0806dd54 EAX=12345678 ECX=00000011 EFL=0044
+cmpsb      ESI=0806dd3f EDI=0806dd4f EAX=12345678 ECX=00000011 EFL=0044
+cmpsw      ESI=0806dd3e EDI=0806dd4e EAX=12345678 ECX=00000011 EFL=0044
+cmpsl      ESI=0806dd3c EDI=0806dd4c EAX=12345678 ECX=00000011 EFL=0044
+repz cmpsb ESI=0806dd51 EDI=0806dd61 EAX=12345678 ECX=00000000 EFL=0044
+repz cmpsw ESI=0806dd62 EDI=0806dd72 EAX=12345678 ECX=00000000 EFL=0044
+repz cmpsl ESI=0806dd84 EDI=0806dd94 EAX=12345678 ECX=00000000 EFL=0044
+repz cmpsb ESI=0806dd2f EDI=0806dd3f EAX=12345678 ECX=00000000 EFL=0044
+repz cmpsw ESI=0806dd1e EDI=0806dd2e EAX=12345678 ECX=00000000 EFL=0044
+repz cmpsl ESI=0806dd18 EDI=0806dd28 EAX=12345678 ECX=00000007 EFL=0014
+repnz cmpsb ESI=0806dd41 EDI=0806dd51 EAX=12345678 ECX=00000010 EFL=0044
+repnz cmpsw ESI=0806dd42 EDI=0806dd52 EAX=12345678 ECX=00000010 EFL=0044
+repnz cmpsl ESI=0806dd44 EDI=0806dd54 EAX=12345678 ECX=00000010 EFL=0044
+repnz cmpsb ESI=0806dd3f EDI=0806dd4f EAX=12345678 ECX=00000010 EFL=0044
+repnz cmpsw ESI=0806dd3e EDI=0806dd4e EAX=12345678 ECX=00000010 EFL=0044
+repnz cmpsl ESI=0806dd3c EDI=0806dd4c EAX=12345678 ECX=00000010 EFL=0044
diff --git a/test/arch/x86/qemu/test-i386 b/test/arch/x86/qemu/test-i386
index f1b6125d..26b454eb 100755
--- a/test/arch/x86/qemu/test-i386
+++ b/test/arch/x86/qemu/test-i386
Binary files differdiff --git a/test/arch/x86/qemu/testqemu.py b/test/arch/x86/qemu/testqemu.py
index a7df4fe4..65d5825a 100644
--- a/test/arch/x86/qemu/testqemu.py
+++ b/test/arch/x86/qemu/testqemu.py
@@ -6,6 +6,7 @@ from pdb import pm
 
 from miasm2.analysis.sandbox import Sandbox_Linux_x86_32
 from miasm2.jitter.jitload import log_func
+from miasm2.jitter.csts import PAGE_READ, PAGE_WRITE
 from miasm2.os_dep.win_api_x86_32 import get_str_ansi, upck32
 
 # Utils
@@ -126,6 +127,12 @@ except AttributeError:
 
 log_func.setLevel(logging.ERROR)
 
+# Segmentation
+sb.jitter.cpu.set_segm_base(8, 0x7fff0000)
+sb.jitter.cpu.GS = 8
+sb.jitter.vm.add_memory_page(0x7fff0000 + 0x14, PAGE_READ | PAGE_WRITE, "AAAA")
+
+
 # Run
 sb.run(addr)