xref: /aosp_15_r20/external/llvm/test/MC/X86/stackmap-nops.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: llc -mtriple=x86_64-apple-darwin -mcpu=corei7 -disable-fp-elim -filetype=obj %s -o - | llvm-objdump -d - | FileCheck %s
2*9880d681SAndroid Build Coastguard Worker; RUN: llc -mtriple=x86_64-apple-darwin -mcpu=corei7 -disable-fp-elim -filetype=asm %s -o - | llvm-mc -triple=x86_64-apple-darwin -mcpu=corei7 -filetype=obj - | llvm-objdump -d - | FileCheck %s
3*9880d681SAndroid Build Coastguard Worker
4*9880d681SAndroid Build Coastguard Workerdefine void @nop_test() {
5*9880d681SAndroid Build Coastguard Workerentry:
6*9880d681SAndroid Build Coastguard Worker; CHECK:  0: 55
7*9880d681SAndroid Build Coastguard Worker; CHECK:  1: 48 89 e5
8*9880d681SAndroid Build Coastguard Worker
9*9880d681SAndroid Build Coastguard Worker; CHECK:  4: 90
10*9880d681SAndroid Build Coastguard Worker; CHECK:  5: 66 90
11*9880d681SAndroid Build Coastguard Worker; CHECK:  7: 0f 1f 00
12*9880d681SAndroid Build Coastguard Worker; CHECK:  a: 0f 1f 40 08
13*9880d681SAndroid Build Coastguard Worker; CHECK:  e: 0f 1f 44 00 08
14*9880d681SAndroid Build Coastguard Worker; CHECK: 13: 66 0f 1f 44 00 08
15*9880d681SAndroid Build Coastguard Worker; CHECK: 19: 0f 1f 80 00 02 00 00
16*9880d681SAndroid Build Coastguard Worker; CHECK: 20: 0f 1f 84 00 00 02 00 00
17*9880d681SAndroid Build Coastguard Worker; CHECK: 28: 66 0f 1f 84 00 00 02 00 00
18*9880d681SAndroid Build Coastguard Worker; CHECK: 31: 2e 66 0f 1f 84 00 00 02 00 00
19*9880d681SAndroid Build Coastguard Worker; CHECK: 3b: 66 2e 66 0f 1f 84 00 00 02 00 00
20*9880d681SAndroid Build Coastguard Worker; CHECK: 46: 66 66 2e 66 0f 1f 84 00 00 02 00 00
21*9880d681SAndroid Build Coastguard Worker; CHECK: 52: 66 66 66 2e 66 0f 1f 84 00 00 02 00 00
22*9880d681SAndroid Build Coastguard Worker; CHECK: 5f: 66 66 66 66 2e 66 0f 1f 84 00 00 02 00 00
23*9880d681SAndroid Build Coastguard Worker; CHECK: 6d: 66 66 66 66 66 2e 66 0f 1f 84 00 00 02 00 00
24*9880d681SAndroid Build Coastguard Worker
25*9880d681SAndroid Build Coastguard Worker; CHECK: 7c: 5d
26*9880d681SAndroid Build Coastguard Worker; CHECK: 7d: c3
27*9880d681SAndroid Build Coastguard Worker
28*9880d681SAndroid Build Coastguard Worker  tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64  0, i32  0)
29*9880d681SAndroid Build Coastguard Worker  tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64  1, i32  1)
30*9880d681SAndroid Build Coastguard Worker  tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64  2, i32  2)
31*9880d681SAndroid Build Coastguard Worker  tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64  3, i32  3)
32*9880d681SAndroid Build Coastguard Worker  tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64  4, i32  4)
33*9880d681SAndroid Build Coastguard Worker  tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64  5, i32  5)
34*9880d681SAndroid Build Coastguard Worker  tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64  6, i32  6)
35*9880d681SAndroid Build Coastguard Worker  tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64  7, i32  7)
36*9880d681SAndroid Build Coastguard Worker  tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64  8, i32  8)
37*9880d681SAndroid Build Coastguard Worker  tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64  9, i32  9)
38*9880d681SAndroid Build Coastguard Worker  tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64 10, i32 10)
39*9880d681SAndroid Build Coastguard Worker  tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64 11, i32 11)
40*9880d681SAndroid Build Coastguard Worker  tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64 12, i32 12)
41*9880d681SAndroid Build Coastguard Worker  tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64 13, i32 13)
42*9880d681SAndroid Build Coastguard Worker  tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64 14, i32 14)
43*9880d681SAndroid Build Coastguard Worker  tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64 15, i32 15)
44*9880d681SAndroid Build Coastguard Worker; Add an extra stackmap with a zero-length shadow to thwart the shadow
45*9880d681SAndroid Build Coastguard Worker; optimization. This will force all 15 bytes of the previous shadow to be
46*9880d681SAndroid Build Coastguard Worker; padded with nops.
47*9880d681SAndroid Build Coastguard Worker  tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64 16, i32 0)
48*9880d681SAndroid Build Coastguard Worker  ret void
49*9880d681SAndroid Build Coastguard Worker}
50*9880d681SAndroid Build Coastguard Worker
51*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.experimental.stackmap(i64, i32, ...)
52