Fix (mem) <-> low 64-bits of xmm bugs pointed out by David Greene. Mac OS X Leopard...
authorEvan Cheng <evan.cheng@apple.com>
Fri, 14 Dec 2007 19:54:07 +0000 (19:54 +0000)
committerEvan Cheng <evan.cheng@apple.com>
Fri, 14 Dec 2007 19:54:07 +0000 (19:54 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45040 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/X86InstrX86-64.td

index d920b216ad3fe8f3fd2ab0870610fc951a6f03b3..6668178c9991982331da045ac282cc817acdfec6 100644 (file)
@@ -1256,19 +1256,19 @@ def MOV64toPQIrr : RPDI<0x6E, MRMSrcReg, (outs VR128:$dst), (ins GR64:$src),
                         "mov{d|q}\t{$src, $dst|$dst, $src}",
                         [(set VR128:$dst,
                           (v2i64 (scalar_to_vector GR64:$src)))]>;
-def MOV64toPQIrm : RPDI<0x6E, MRMSrcMem, (outs VR128:$dst), (ins i64mem:$src),
-                        "mov{d|q}\t{$src, $dst|$dst, $src}",
-                        [(set VR128:$dst,
-                          (v2i64 (scalar_to_vector (loadi64 addr:$src))))]>;
+def MOV64toPQIrm : I<0x7E, MRMSrcMem, (outs VR128:$dst), (ins i64mem:$src),
+                     "movq\t{$src, $dst|$dst, $src}",
+                     [(set VR128:$dst,
+                          (v2i64 (scalar_to_vector (loadi64 addr:$src))))]>, XS;
 
 def MOVPQIto64rr  : RPDI<0x7E, MRMDestReg, (outs GR64:$dst), (ins VR128:$src),
                          "mov{d|q}\t{$src, $dst|$dst, $src}",
                          [(set GR64:$dst, (vector_extract (v2i64 VR128:$src),
                                            (iPTR 0)))]>;
-def MOVPQIto64mr  : RPDI<0x7E, MRMDestMem, (outs), (ins i64mem:$dst, VR128:$src),
-                         "mov{d|q}\t{$src, $dst|$dst, $src}",
-                         [(store (i64 (vector_extract (v2i64 VR128:$src),
-                                       (iPTR 0))), addr:$dst)]>;
+def MOVPQIto64mr  : PDI<0xD6, MRMDestMem, (outs), (ins i64mem:$dst, VR128:$src),
+                        "movq\t{$src, $dst|$dst, $src}",
+                        [(store (i64 (vector_extract (v2i64 VR128:$src),
+                                      (iPTR 0))), addr:$dst)]>;
 
 def MOV64toSDrr : RPDI<0x6E, MRMSrcReg, (outs FR64:$dst), (ins GR64:$src),
                        "mov{d|q}\t{$src, $dst|$dst, $src}",