add encoder support and tests for rdtscp
authorChris Lattner <sabre@nondot.org>
Sat, 13 Feb 2010 03:42:24 +0000 (03:42 +0000)
committerChris Lattner <sabre@nondot.org>
Sat, 13 Feb 2010 03:42:24 +0000 (03:42 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96076 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/X86InstrInfo.h
lib/Target/X86/X86MCCodeEmitter.cpp
test/MC/AsmParser/X86/x86_32-new-encoder.s
test/MC/Disassembler/simple-tests.txt

index 9f50178fe6708c84c6e375e5b17675289aa37b6d..5111719a2094949934d874f2a34cf71b53dd57cc 100644 (file)
@@ -279,6 +279,7 @@ namespace X86II {
     MRM_E8 = 39,
     MRM_F0 = 40,
     MRM_F8 = 41,
+    MRM_F9 = 42,
 
     FormMask       = 63,
 
index 1dc592ce7c3b1ad500a4ee3b16b63b58597cc33a..2c7b9d82deae1ffd5e113c01ed6b5cc008aa634d 100644 (file)
@@ -617,6 +617,10 @@ EncodeInstruction(const MCInst &MI, raw_ostream &OS,
     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
index efac73f845e063e572e262a2341977d8e2cca85a..6fd0cbb9164542f996b7a195c99efc6f106d9b84 100644 (file)
 // 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]
index c260945ff71fe76d45ba30095e0b00832b273a9f..11c077d8929c31f8d846f5d8d660db78cc321f0c 100644 (file)
@@ -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