Added the rdtscp instruction to the x86 instruction
authorSean Callanan <scallanan@apple.com>
Sat, 13 Feb 2010 02:06:11 +0000 (02:06 +0000)
committerSean Callanan <scallanan@apple.com>
Sat, 13 Feb 2010 02:06:11 +0000 (02:06 +0000)
tables.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96073 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/X86InstrFormats.td
lib/Target/X86/X86InstrInfo.td
utils/TableGen/X86RecognizableInstr.cpp

index 8b934e0f86fbde3a1b2839cc6a519c8e9245f5c6..bb81cbf8ac18c326bb6585c35a42a566f00fce54 100644 (file)
@@ -38,7 +38,7 @@ def MRM_C9 : Format<38>;
 def MRM_E8 : Format<39>;
 def MRM_F0 : Format<40>;
 def MRM_F8 : Format<41>;
-
+def MRM_F9 : Format<42>;
 
 // ImmType - This specifies the immediate type used by an instruction. This is
 // part of the ad-hoc solution used to emit machine instruction encodings by our
index 62dfdc299cabef8e5facf1b964963b4f9377c761..25cd297e261c79c37118b5774ab340a8b83578f6 100644 (file)
@@ -904,6 +904,9 @@ let Defs = [RAX, RDX] in
 def RDTSC : I<0x31, RawFrm, (outs), (ins), "rdtsc", [(X86rdtsc)]>,
             TB;
 
+let Defs = [RAX, RCX, RDX] in
+def RDTSCP : I<0x01, MRM_F9, (outs), (ins), "rdtscp", []>, TB;
+
 let isBarrier = 1, hasCtrlDep = 1 in {
 def TRAP    : I<0x0B, RawFrm, (outs), (ins), "ud2", [(trap)]>, TB;
 }
index 0a85eb8380e517dd938c6cdff96a461dd247e760..3843e56d9858b9a5560d02ac0f098f4999b10dff 100644 (file)
@@ -33,7 +33,8 @@ using namespace llvm;
   MAP(C9, 38)           \
   MAP(E8, 39)           \
   MAP(F0, 40)           \
-  MAP(F8, 41)
+  MAP(F8, 41)          \
+  MAP(F9, 42)
 
 // A clone of X86 since we can't depend on something that is generated.
 namespace X86Local {