summaryrefslogtreecommitdiff
path: root/test/MC
diff options
context:
space:
mode:
authorJuergen Ributzka <juergen@apple.com>2013-12-04 00:39:08 +0000
committerJuergen Ributzka <juergen@apple.com>2013-12-04 00:39:08 +0000
commit6abfcbdfc8ceee8ad97ec36b0303e3ed89bcb347 (patch)
tree7be56cd869187f3a2ad97897edf36f73cf0a8c0a /test/MC
parent4f47f014cd0ae58e90011117ada9c6770a7fe9be (diff)
downloadllvm-6abfcbdfc8ceee8ad97ec36b0303e3ed89bcb347.tar.gz
llvm-6abfcbdfc8ceee8ad97ec36b0303e3ed89bcb347.tar.bz2
llvm-6abfcbdfc8ceee8ad97ec36b0303e3ed89bcb347.tar.xz
[Stackmap] Emit multi-byte nops for X86.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196334 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/MC')
-rw-r--r--test/MC/X86/stackmap-nops.ll47
1 files changed, 47 insertions, 0 deletions
diff --git a/test/MC/X86/stackmap-nops.ll b/test/MC/X86/stackmap-nops.ll
new file mode 100644
index 0000000000..e6db891955
--- /dev/null
+++ b/test/MC/X86/stackmap-nops.ll
@@ -0,0 +1,47 @@
+; RUN: llc -mtriple=x86_64-apple-darwin -mcpu=corei7 -disable-fp-elim -filetype=obj %s -o - | llvm-objdump -d - | FileCheck %s
+; RUN: llc -mtriple=x86_64-apple-darwin -mcpu=corei7 -disable-fp-elim -filetype=asm %s -o - | llvm-mc -filetype=obj - | llvm-objdump -d - | FileCheck %s
+
+define void @nop_test() {
+entry:
+; CHECK: 0: 55
+; CHECK: 1: 48 89 e5
+
+; CHECK: 4: 90
+; CHECK: 5: 66 90
+; CHECK: 7: 0f 1f 00
+; CHECK: a: 0f 1f 40 08
+; CHECK: e: 0f 1f 44 00 08
+; CHECK: 13: 66 0f 1f 44 00 08
+; CHECK: 19: 0f 1f 80 00 02 00 00
+; CHECK: 20: 0f 1f 84 00 00 02 00 00
+; CHECK: 28: 66 0f 1f 84 00 00 02 00 00
+; CHECK: 31: 2e 66 0f 1f 84 00 00 02 00 00
+; CHECK: 3b: 66 2e 66 0f 1f 84 00 00 02 00 00
+; CHECK: 46: 66 66 2e 66 0f 1f 84 00 00 02 00 00
+; CHECK: 52: 66 66 66 2e 66 0f 1f 84 00 00 02 00 00
+; CHECK: 5f: 66 66 66 66 2e 66 0f 1f 84 00 00 02 00 00
+; CHECK: 6d: 66 66 66 66 66 2e 66 0f 1f 84 00 00 02 00 00
+
+; CHECK: 7c: 5d
+; CHECK: 7d: c3
+
+ tail call void (i32, i32, ...)* @llvm.experimental.stackmap(i32 0, i32 0)
+ tail call void (i32, i32, ...)* @llvm.experimental.stackmap(i32 1, i32 1)
+ tail call void (i32, i32, ...)* @llvm.experimental.stackmap(i32 2, i32 2)
+ tail call void (i32, i32, ...)* @llvm.experimental.stackmap(i32 3, i32 3)
+ tail call void (i32, i32, ...)* @llvm.experimental.stackmap(i32 4, i32 4)
+ tail call void (i32, i32, ...)* @llvm.experimental.stackmap(i32 5, i32 5)
+ tail call void (i32, i32, ...)* @llvm.experimental.stackmap(i32 6, i32 6)
+ tail call void (i32, i32, ...)* @llvm.experimental.stackmap(i32 7, i32 7)
+ tail call void (i32, i32, ...)* @llvm.experimental.stackmap(i32 8, i32 8)
+ tail call void (i32, i32, ...)* @llvm.experimental.stackmap(i32 9, i32 9)
+ tail call void (i32, i32, ...)* @llvm.experimental.stackmap(i32 10, i32 10)
+ tail call void (i32, i32, ...)* @llvm.experimental.stackmap(i32 11, i32 11)
+ tail call void (i32, i32, ...)* @llvm.experimental.stackmap(i32 12, i32 12)
+ tail call void (i32, i32, ...)* @llvm.experimental.stackmap(i32 13, i32 13)
+ tail call void (i32, i32, ...)* @llvm.experimental.stackmap(i32 14, i32 14)
+ tail call void (i32, i32, ...)* @llvm.experimental.stackmap(i32 15, i32 15)
+ ret void
+}
+
+declare void @llvm.experimental.stackmap(i32, i32, ...)