summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorSimon Pilgrim <llvm-dev@redking.me.uk>2017-12-09 21:27:03 +0000
committerSimon Pilgrim <llvm-dev@redking.me.uk>2017-12-09 21:27:03 +0000
commite049038692475b7cc5d35535da2d32098a73984e (patch)
tree07dd45f28c99344ee4164aa4c14f6bd1391a1901 /llvm/lib
parentb2b93f620471d2805861275844ceb63201347ccf (diff)
downloadbcm5719-llvm-e049038692475b7cc5d35535da2d32098a73984e.tar.gz
bcm5719-llvm-e049038692475b7cc5d35535da2d32098a73984e.zip
[X86] Tag LOCK/REX64/DATA16/DATA32 instruction prefix scheduler classes
llvm-svn: 320266
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Target/X86/X86InstrInfo.td10
1 files changed, 7 insertions, 3 deletions
diff --git a/llvm/lib/Target/X86/X86InstrInfo.td b/llvm/lib/Target/X86/X86InstrInfo.td
index bbec40393c0..806a2e0380f 100644
--- a/llvm/lib/Target/X86/X86InstrInfo.td
+++ b/llvm/lib/Target/X86/X86InstrInfo.td
@@ -2036,19 +2036,23 @@ def CMPXCHG16B : RI<0xC7, MRM1m, (outs), (ins i128mem:$dst),
// Lock instruction prefix
+let SchedRW = [WriteMicrocoded] in
def LOCK_PREFIX : I<0xF0, RawFrm, (outs), (ins), "lock", []>;
+let SchedRW = [WriteNop] in {
+
// Rex64 instruction prefix
-def REX64_PREFIX : I<0x48, RawFrm, (outs), (ins), "rex64", []>,
+def REX64_PREFIX : I<0x48, RawFrm, (outs), (ins), "rex64", [], IIC_NOP>,
Requires<[In64BitMode]>;
// Data16 instruction prefix
-def DATA16_PREFIX : I<0x66, RawFrm, (outs), (ins), "data16", []>,
+def DATA16_PREFIX : I<0x66, RawFrm, (outs), (ins), "data16", [], IIC_NOP>,
Requires<[Not16BitMode]>;
// Data instruction prefix
-def DATA32_PREFIX : I<0x66, RawFrm, (outs), (ins), "data32", []>,
+def DATA32_PREFIX : I<0x66, RawFrm, (outs), (ins), "data32", [], IIC_NOP>,
Requires<[In16BitMode]>;
+} // SchedRW
// Repeat string operation instruction prefixes
// These use the DF flag in the EFLAGS register to inc or dec ECX
OpenPOWER on IntegriCloud