1 // REQUIRES: thumbv8m.base
2 // UNSUPPORTED: thumbv8m.main
3 // RUN: %cc% %ccflags% %ccout% %T/%basename_t.o %s; llvm-objdump --mcpu=%mcpu% -d %T/%basename_t.o | FileCheck --allow-unused-prefixes --check-prefixes %prefixes% %s
4 
5 #include "cmsis_compiler.h"
6 
get_psplim()7 void get_psplim() {
8     // CHECK-LABEL: <get_psplim>:
9     // CHECK-S: mrs {{r[0-9]+}}, psplim
10     // CHECK-NS-NOT: mrs {{r[0-9]+}}, psplim
11     volatile uint32_t result = __get_PSPLIM();
12     // CHECK: {{(bx lr)|(pop {.*pc})}}
13 }
14 
get_psplim_ns()15 void get_psplim_ns() {
16     // CHECK-LABEL: <get_psplim_ns>:
17 #if __ARM_FEATURE_CMSE == 3
18     // CHECK-S-NOT: mrs {{r[0-9]+}}, psplim_ns
19     volatile uint32_t result = __TZ_get_PSPLIM_NS();
20 #endif
21     // CHECK: {{(bx lr)|(pop {.*pc})}}
22 }
23 
set_psplim()24 void set_psplim() {
25     // CHECK-LABEL: <set_psplim>:
26     // CHECK-S: msr psplim, {{r[0-9]+}}
27     // CHECK-NS-NOT: msr psplim, {{r[0-9]+}}
28     __set_PSPLIM(0x0815u);
29     // CHECK: {{(bx lr)|(pop {.*pc})}}
30 }
31 
set_psplim_ns()32 void set_psplim_ns() {
33     // CHECK-LABEL: <set_psplim_ns>:
34 #if __ARM_FEATURE_CMSE == 3
35     // CHECK-S-NOT: msr psplim_ns, {{r[0-9]+}}
36      __TZ_set_PSPLIM_NS(0x0815u);
37 #endif
38     // CHECK: {{(bx lr)|(pop {.*pc})}}
39 }
40