xref: /llvm-project/llvm/test/MC/ARM/thumb-hints.s (revision 917afa883258757575ac6448e83a9233d7877333)
1@ RUN: llvm-mc -triple=thumbv8r-apple-darwin -mcpu=cortex-r52 -show-encoding < %s | FileCheck %s
2@ RUN: llvm-mc -triple=thumbv8r-apple-darwin -mcpu=cortex-r52plus -show-encoding < %s | FileCheck %s
3@ RUN: llvm-mc -triple=thumbv7-apple-darwin -show-encoding < %s | FileCheck %s
4@ RUN: llvm-mc -triple=thumbv6-apple-darwin -mcpu=cortex-m0 -show-encoding < %s | FileCheck %s
5@ RUN: not llvm-mc -triple=thumbv6-apple-darwin -show-encoding < %s > %t 2> %t2
6@ RUN: FileCheck %s --check-prefix=CHECK-EVIL-PRE-UAL < %t
7@ RUN: FileCheck %s --check-prefix CHECK-ERROR < %t2
8
9  .syntax unified
10
11        nop
12        yield
13        wfe
14        wfi
15        sev
16@ CHECK: nop                            @ encoding: [0x00,0xbf]
17@ CHECK: yield                          @ encoding: [0x10,0xbf]
18@ CHECK: wfe                            @ encoding: [0x20,0xbf]
19@ CHECK: wfi                            @ encoding: [0x30,0xbf]
20@ CHECK: sev                            @ encoding: [0x40,0xbf]
21
22@ CHECK-EVIL-PRE-UAL: mov r8, r8                     @ encoding: [0xc0,0x46]
23
24        dmb sy
25        dmb
26        dsb sy
27        dsb
28        isb sy
29        isb
30@ CHECK: dmb	sy                      @ encoding: [0xbf,0xf3,0x5f,0x8f]
31@ CHECK: dmb	sy                      @ encoding: [0xbf,0xf3,0x5f,0x8f]
32@ CHECK: dsb	sy                      @ encoding: [0xbf,0xf3,0x4f,0x8f]
33@ CHECK: dsb	sy                      @ encoding: [0xbf,0xf3,0x4f,0x8f]
34@ CHECK: isb	sy                      @ encoding: [0xbf,0xf3,0x6f,0x8f]
35@ CHECK: isb	sy                      @ encoding: [0xbf,0xf3,0x6f,0x8f]
36
37
38@ CHECK-ERROR: error: instruction requires: armv6m or armv6t2
39@ CHECK-ERROR-NEXT: yield
40
41@ CHECK-ERROR: error: instruction requires: armv6m or armv6t2
42@ CHECK-ERROR-NEXT: wfe
43
44@ CHECK-ERROR: error: instruction requires: armv6m or armv6t2
45@ CHECK-ERROR-NEXT: wfi
46
47@ CHECK-ERROR: error: instruction requires: armv6m or armv6t2
48@ CHECK-ERROR-NEXT: sev
49
50@ CHECK-ERROR: error:
51@ CHECK-ERROR-NEXT: dmb sy
52
53@ CHECK-ERROR: error: instruction requires: data-barriers
54@ CHECK-ERROR-NEXT: dmb
55
56@ CHECK-ERROR: error:
57@ CHECK-ERROR-NEXT: dsb sy
58
59@ CHECK-ERROR: error: instruction requires: data-barriers
60@ CHECK-ERROR-NEXT: dsb
61
62@ CHECK-ERROR: error:
63@ CHECK-ERROR-NEXT: isb sy
64
65@ CHECK-ERROR: error: instruction requires: data-barriers
66@ CHECK-ERROR-NEXT: isb
67