add encoder support and tests for rdtscp


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96076 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Target/X86/X86InstrInfo.h b/lib/Target/X86/X86InstrInfo.h
index 9f50178..5111719 100644
--- a/lib/Target/X86/X86InstrInfo.h
+++ b/lib/Target/X86/X86InstrInfo.h
@@ -279,6 +279,7 @@
     MRM_E8 = 39,
     MRM_F0 = 40,
     MRM_F8 = 41,
+    MRM_F9 = 42,
 
     FormMask       = 63,
 
diff --git a/lib/Target/X86/X86MCCodeEmitter.cpp b/lib/Target/X86/X86MCCodeEmitter.cpp
index 1dc592c..2c7b9d8 100644
--- a/lib/Target/X86/X86MCCodeEmitter.cpp
+++ b/lib/Target/X86/X86MCCodeEmitter.cpp
@@ -617,6 +617,10 @@
     EmitByte(BaseOpcode, CurByte, OS);
     EmitByte(0xF8, CurByte, OS);
     break;
+  case X86II::MRM_F9:
+    EmitByte(BaseOpcode, CurByte, OS);
+    EmitByte(0xF9, CurByte, OS);
+    break;
   }
   
   // If there is a remaining operand, it must be a trailing immediate.  Emit it
diff --git a/test/MC/AsmParser/X86/x86_32-new-encoder.s b/test/MC/AsmParser/X86/x86_32-new-encoder.s
index efac73f..6fd0cbb 100644
--- a/test/MC/AsmParser/X86/x86_32-new-encoder.s
+++ b/test/MC/AsmParser/X86/x86_32-new-encoder.s
@@ -29,6 +29,11 @@
 // CHECK: swapgs
 // CHECK: encoding: [0x0f,0x01,0xf8]
 
+rdtscp
+// CHECK: rdtscp
+// CHECK:  encoding: [0x0f,0x01,0xf9]
+
+
 // CHECK: movl	%eax, 16(%ebp)          # encoding: [0x89,0x45,0x10]
 	movl	%eax, 16(%ebp)
 // CHECK: movl	%eax, -16(%ebp)          # encoding: [0x89,0x45,0xf0]
diff --git a/test/MC/Disassembler/simple-tests.txt b/test/MC/Disassembler/simple-tests.txt
index c260945..11c077d 100644
--- a/test/MC/Disassembler/simple-tests.txt
+++ b/test/MC/Disassembler/simple-tests.txt
@@ -38,4 +38,7 @@
 0x0f 0x01 0xc4
 
 # CHECK: swapgs
-0x0f 0x01 0xf8
\ No newline at end of file
+0x0f 0x01 0xf8
+
+# CHECK: rdtscp
+0x0f 0x01 0xf9
\ No newline at end of file