OSDN Git Service

'into' instruction should not be decoded as a valid instr in 64-bit mode
authorAndrew V. Tischenko <andrew.v.tischenko@gmail.com>
Wed, 20 Sep 2017 08:17:17 +0000 (08:17 +0000)
committerAndrew V. Tischenko <andrew.v.tischenko@gmail.com>
Wed, 20 Sep 2017 08:17:17 +0000 (08:17 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313735 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/X86InstrSystem.td
test/MC/Disassembler/X86/x86-64-err.txt [new file with mode: 0644]

index 2e5350c..e9b6c67 100644 (file)
@@ -33,7 +33,7 @@ def RSM : I<0xAA, RawFrm, (outs), (ins), "rsm", [], IIC_RSM>, TB;
 
 // Interrupt and SysCall Instructions.
 let Uses = [EFLAGS] in
-  def INTO : I<0xce, RawFrm, (outs), (ins), "into", []>;
+  def INTO : I<0xce, RawFrm, (outs), (ins), "into", []>, Requires<[Not64BitMode]>;
 def INT3 : I<0xcc, RawFrm, (outs), (ins), "int3",
               [(int_x86_int (i8 3))], IIC_INT3>;
 } // SchedRW
diff --git a/test/MC/Disassembler/X86/x86-64-err.txt b/test/MC/Disassembler/X86/x86-64-err.txt
new file mode 100644 (file)
index 0000000..8dd43ed
--- /dev/null
@@ -0,0 +1,6 @@
+# RUN: llvm-mc --disassemble %s -triple=x86_64 2>&1 | FileCheck --check-prefix=64 %s
+# RUN: llvm-mc --disassemble %s -triple=i386 | FileCheck --check-prefix=32 %s
+
+# 64: warning: invalid instruction encoding
+# 32: into
+0xce