aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2010-02-13 03:42:24 +0000
committerChris Lattner <sabre@nondot.org>2010-02-13 03:42:24 +0000
commitb779033a23c49c2e5e02b15a87bbae42973287b3 (patch)
tree8645f1f3f6ccb3eea61a2f94bb7fbfd25cddf2bf
parenta1e762151029e95b949010be6ee2fa690c0055b1 (diff)
add encoder support and tests for rdtscp
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96076 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/Target/X86/X86InstrInfo.h1
-rw-r--r--lib/Target/X86/X86MCCodeEmitter.cpp4
-rw-r--r--test/MC/AsmParser/X86/x86_32-new-encoder.s5
-rw-r--r--test/MC/Disassembler/simple-tests.txt5
4 files changed, 14 insertions, 1 deletions
diff --git a/lib/Target/X86/X86InstrInfo.h b/lib/Target/X86/X86InstrInfo.h
index 9f50178fe6..5111719a20 100644
--- a/lib/Target/X86/X86InstrInfo.h
+++ b/lib/Target/X86/X86InstrInfo.h
@@ -279,6 +279,7 @@ namespace X86II {
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 1dc592ce7c..2c7b9d82de 100644
--- a/lib/Target/X86/X86MCCodeEmitter.cpp
+++ b/lib/Target/X86/X86MCCodeEmitter.cpp
@@ -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
diff --git a/test/MC/AsmParser/X86/x86_32-new-encoder.s b/test/MC/AsmParser/X86/x86_32-new-encoder.s
index efac73f845..6fd0cbb916 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 c260945ff7..11c077d892 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