[llvm-commits] [llvm] r102952 - in /llvm/trunk: lib/Target/X86/X86Instr64bit.td lib/Target/X86/X86InstrMMX.td test/MC/AsmParser/X86/x86_32-encoding.s
Kevin Enderby
enderby at apple.com
Mon May 3 14:03:31 PDT 2010
Author: enderby
Date: Mon May 3 16:03:31 2010
New Revision: 102952
URL: http://llvm.org/viewvc/llvm-project?rev=102952&view=rev
Log:
Fixed the encoding of two of the X86 movq instuctions. The Move quadword from
mm to mm/m64 and the Move quadword from xmm2/mem64 to xmm1 had the incorrect
encodings.
Modified:
llvm/trunk/lib/Target/X86/X86Instr64bit.td
llvm/trunk/lib/Target/X86/X86InstrMMX.td
llvm/trunk/test/MC/AsmParser/X86/x86_32-encoding.s
Modified: llvm/trunk/lib/Target/X86/X86Instr64bit.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86Instr64bit.td?rev=102952&r1=102951&r2=102952&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86Instr64bit.td (original)
+++ llvm/trunk/lib/Target/X86/X86Instr64bit.td Mon May 3 16:03:31 2010
@@ -2284,7 +2284,7 @@
def MOV64toSDrr : RPDI<0x6E, MRMSrcReg, (outs FR64:$dst), (ins GR64:$src),
"mov{d|q}\t{$src, $dst|$dst, $src}",
[(set FR64:$dst, (bitconvert GR64:$src))]>;
-def MOV64toSDrm : RPDI<0x6E, MRMSrcMem, (outs FR64:$dst), (ins i64mem:$src),
+def MOV64toSDrm : S3SI<0x6E, MRMSrcMem, (outs FR64:$dst), (ins i64mem:$src),
"movq\t{$src, $dst|$dst, $src}",
[(set FR64:$dst, (bitconvert (loadi64 addr:$src)))]>;
Modified: llvm/trunk/lib/Target/X86/X86InstrMMX.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86InstrMMX.td?rev=102952&r1=102951&r2=102952&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86InstrMMX.td (original)
+++ llvm/trunk/lib/Target/X86/X86InstrMMX.td Mon May 3 16:03:31 2010
@@ -117,7 +117,7 @@
"movd\t{$src, $dst|$dst, $src}", []>;
def MMX_MOVD64grr : MMXI<0x7E, MRMDestReg, (outs), (ins GR32:$dst, VR64:$src),
"movd\t{$src, $dst|$dst, $src}", []>;
-def MMX_MOVQ64gmr : MMXRI<0x7E, MRMDestMem, (outs),
+def MMX_MOVQ64gmr : MMXRI<0x7F, MRMDestMem, (outs),
(ins i64mem:$dst, VR64:$src),
"movq\t{$src, $dst|$dst, $src}", []>;
Modified: llvm/trunk/test/MC/AsmParser/X86/x86_32-encoding.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/AsmParser/X86/x86_32-encoding.s?rev=102952&r1=102951&r2=102952&view=diff
==============================================================================
--- llvm/trunk/test/MC/AsmParser/X86/x86_32-encoding.s (original)
+++ llvm/trunk/test/MC/AsmParser/X86/x86_32-encoding.s Mon May 3 16:03:31 2010
@@ -9997,3 +9997,20 @@
// CHECK: pushl $254
// CHECK: encoding: [0x68,0xfe,0x00,0x00,0x00]
pushl $254
+
+// radr://7928400
+// CHECK: movq %mm3, 3735928559(%ebx,%ecx,8)
+// CHECK: encoding: [0x0f,0x7f,0x9c,0xcb,0xef,0xbe,0xad,0xde]
+ movq %mm3, 3735928559(%ebx,%ecx,8)
+
+// CHECK: movd %mm3, 3735928559(%ebx,%ecx,8)
+// CHECK: encoding: [0x0f,0x7e,0x9c,0xcb,0xef,0xbe,0xad,0xde]
+ movd %mm3, 3735928559(%ebx,%ecx,8)
+
+// CHECK: movq 3735928559(%ebx,%ecx,8), %xmm5
+// CHECK: encoding: [0xf3,0x0f,0x7e,0xac,0xcb,0xef,0xbe,0xad,0xde]
+ movq 3735928559(%ebx,%ecx,8), %xmm5
+
+// CHECK: movd 3735928559(%ebx,%ecx,8), %xmm5
+// CHECK: encoding: [0x66,0x0f,0x6e,0xac,0xcb,0xef,0xbe,0xad,0xde]
+ movd 3735928559(%ebx,%ecx,8), %xmm5
More information about the llvm-commits
mailing list