Implement the data16 prefix.
authorRafael Espindola <rafael.espindola@gmail.com>
Sat, 27 Nov 2010 20:29:45 +0000 (20:29 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Sat, 27 Nov 2010 20:29:45 +0000 (20:29 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120224 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/AsmParser/X86AsmParser.cpp
lib/Target/X86/X86InstrInfo.td
test/MC/X86/x86-64.s

index b6660710bbf0fc027289ae31d424b334ab290261..1b4086b41a81acf29f5c346244b8fcbfa575534e 100644 (file)
@@ -708,7 +708,7 @@ ParseInstruction(StringRef Name, SMLoc NameLoc,
     Name == "lock" || Name == "rep" ||
     Name == "repe" || Name == "repz" ||
     Name == "repne" || Name == "repnz" ||
-    Name == "rex64";
+    Name == "rex64" || Name == "data16";
 
 
   // This does the actual operand parsing.  Don't parse any more if we have a
index d7a55057c4bf31ac85599fa3047d6a17fe665ecb..560cafe08168ba18cabe954e8f3619bf8a0cb4f4 100644 (file)
@@ -1147,6 +1147,9 @@ def LOCK_PREFIX : I<0xF0, RawFrm, (outs),  (ins), "lock", []>;
 // Rex64 instruction prefix
 def REX64_PREFIX : I<0x48, RawFrm, (outs),  (ins), "rex64", []>;
 
+// Data16 instruction prefix
+def DATA16_PREFIX : I<0x66, RawFrm, (outs),  (ins), "data16", []>;
+
 // Repeat string operation instruction prefixes
 // These uses the DF flag in the EFLAGS register to inc or dec ECX
 let Defs = [ECX], Uses = [ECX,EFLAGS] in {
index c8b8b24411388ef3fcf06731882d2e0f6ff23545..17f00faafc0068654cad42ae171124d819853ee7 100644 (file)
@@ -910,3 +910,4 @@ movq        %rax, %mm5 // CHECK: movd %rax, %mm5 # encoding: [0x48,0x0f,0x6e,0xe8]
 movq   %mm5, %rbx // CHECK: movd %mm5, %rbx # encoding: [0x48,0x0f,0x7e,0xeb]
 
 rex64 // CHECK: rex64 # encoding: [0x48]
+data16 // CHECK: data16 # encoding: [0x66]