// REQUIRES: armv7a // 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 #include "cmsis_compiler.h" static volatile uint32_t u32; void get_actlr() { // CHECK-LABEL: : // CHECK: mrc p15, #0x0, {{r[0-9]+}}, c1, c0, #0x1 volatile uint32_t result = __get_ACTLR(); // CHECK: {{(bx lr)|(pop {.*pc})}} } void set_actlr() { // CHECK-LABEL: : // CHECK: mcr p15, #0x0, {{r[0-9]+}}, c1, c0, #0x1 __set_ACTLR(u32); // CHECK: {{(bx lr)|(pop {.*pc})}} } void get_cpacr() { // CHECK-LABEL: : // CHECK: mrc p15, #0x0, {{r[0-9]+}}, c1, c0, #0x2 volatile uint32_t result = __get_CPACR(); // CHECK: {{(bx lr)|(pop {.*pc})}} } void set_cpacr() { // CHECK-LABEL: : // CHECK: mcr p15, #0x0, {{r[0-9]+}}, c1, c0, #0x2 __set_CPACR(u32); // CHECK: {{(bx lr)|(pop {.*pc})}} } void get_dfsr() { // CHECK-LABEL: : // CHECK: mrc p15, #0x0, {{r[0-9]+}}, c5, c0, #0x0 volatile uint32_t result = __get_DFSR(); // CHECK: {{(bx lr)|(pop {.*pc})}} } void set_dfsr() { // CHECK-LABEL: : // CHECK: mcr p15, #0x0, {{r[0-9]+}}, c5, c0, #0x0 __set_DFSR(u32); // CHECK: {{(bx lr)|(pop {.*pc})}} } void get_ifsr() { // CHECK-LABEL: : // CHECK: mrc p15, #0x0, {{r[0-9]+}}, c5, c0, #0x1 volatile uint32_t result = __get_IFSR(); // CHECK: {{(bx lr)|(pop {.*pc})}} } void set_ifsr() { // CHECK-LABEL: : // CHECK: mcr p15, #0x0, {{r[0-9]+}}, c5, c0, #0x1 __set_IFSR(u32); // CHECK: {{(bx lr)|(pop {.*pc})}} } void get_isr() { // CHECK-LABEL: : // CHECK: mrc p15, #0x0, {{r[0-9]+}}, c12, c1, #0x0 volatile uint32_t result = __get_ISR(); // CHECK: {{(bx lr)|(pop {.*pc})}} } void get_cbar() { // CHECK-LABEL: : // CHECK: mrc p15, #0x4, {{r[0-9]+}}, c15, c0, #0x0 volatile uint32_t result = __get_CBAR(); // CHECK: {{(bx lr)|(pop {.*pc})}} } void get_ttbr0() { // CHECK-LABEL: : // CHECK: mrc p15, #0x0, {{r[0-9]+}}, c2, c0, #0x0 volatile uint32_t result = __get_TTBR0(); // CHECK: {{(bx lr)|(pop {.*pc})}} } void set_ttbr0() { // CHECK-LABEL: : // CHECK: mcr p15, #0x0, {{r[0-9]+}}, c2, c0, #0x0 __set_TTBR0(u32); // CHECK: {{(bx lr)|(pop {.*pc})}} } void get_dacr() { // CHECK-LABEL: : // CHECK: mrc p15, #0x0, {{r[0-9]+}}, c3, c0, #0x0 volatile uint32_t result = __get_DACR(); // CHECK: {{(bx lr)|(pop {.*pc})}} } void set_dacr() { // CHECK-LABEL: : // CHECK: mcr p15, #0x0, {{r[0-9]+}}, c3, c0, #0x0 __set_DACR(u32); // CHECK: {{(bx lr)|(pop {.*pc})}} } void get_sctlr() { // CHECK-LABEL: : // CHECK: mrc p15, #0x0, {{r[0-9]+}}, c1, c0, #0x0 volatile uint32_t result = __get_SCTLR(); // CHECK: {{(bx lr)|(pop {.*pc})}} } void set_sctlr() { // CHECK-LABEL: : // CHECK: mcr p15, #0x0, {{r[0-9]+}}, c1, c0, #0x0 __set_SCTLR(u32); // CHECK: {{(bx lr)|(pop {.*pc})}} } void get_mpidr() { // CHECK-LABEL: : // CHECK: mrc p15, #0x0, {{r[0-9]+}}, c0, c0, #0x5 volatile uint32_t result = __get_MPIDR(); // CHECK: {{(bx lr)|(pop {.*pc})}} } void get_vbar() { // CHECK-LABEL: : // CHECK: mrc p15, #0x0, {{r[0-9]+}}, c12, c0, #0x0 volatile uint32_t result = __get_VBAR(); // CHECK: {{(bx lr)|(pop {.*pc})}} } void set_vbar() { // CHECK-LABEL: : // CHECK: mcr p15, #0x0, {{r[0-9]+}}, c12, c0, #0x0 __set_VBAR(u32); // CHECK: {{(bx lr)|(pop {.*pc})}} } void get_mvbar() { // CHECK-LABEL: : // CHECK: mrc p15, #0x0, {{r[0-9]+}}, c12, c0, #0x1 volatile uint32_t result = __get_MVBAR(); // CHECK: {{(bx lr)|(pop {.*pc})}} } void set_mvbar() { // CHECK-LABEL: : // CHECK: mcr p15, #0x0, {{r[0-9]+}}, c12, c0, #0x1 __set_MVBAR(u32); // CHECK: {{(bx lr)|(pop {.*pc})}} } void get_cntfrq() { // CHECK-LABEL: : // CHECK: mrc p15, #0x0, {{r[0-9]+}}, c14, c0, #0x0 volatile uint32_t result = __get_CNTFRQ(); // CHECK: {{(bx lr)|(pop {.*pc})}} } void set_cntfrq() { // CHECK-LABEL: : // CHECK: mcr p15, #0x0, {{r[0-9]+}}, c14, c0, #0x0 __set_CNTFRQ(u32); // CHECK: {{(bx lr)|(pop {.*pc})}} } void get_cntp_tval() { // CHECK-LABEL: : // CHECK: mrc p15, #0x0, {{r[0-9]+}}, c14, c2, #0x0 volatile uint32_t result = __get_CNTP_TVAL(); // CHECK: {{(bx lr)|(pop {.*pc})}} } void set_cntp_tval() { // CHECK-LABEL: : // CHECK: mcr p15, #0x0, {{r[0-9]+}}, c14, c2, #0x0 __set_CNTP_TVAL(u32); // CHECK: {{(bx lr)|(pop {.*pc})}} } void get_cntp_ctl() { // CHECK-LABEL: : // CHECK: mrc p15, #0x0, {{r[0-9]+}}, c14, c2, #0x1 volatile uint32_t result = __get_CNTP_CTL(); // CHECK: {{(bx lr)|(pop {.*pc})}} } void set_cntp_ctl() { // CHECK-LABEL: : // CHECK: mcr p15, #0x0, {{r[0-9]+}}, c14, c2, #0x1 __set_CNTP_CTL(u32); // CHECK: {{(bx lr)|(pop {.*pc})}} } void set_tlbiall() { // CHECK-LABEL: : // CHECK: mcr p15, #0x0, {{r[0-9]+}}, c8, c7, #0x0 __set_TLBIALL(u32); // CHECK: {{(bx lr)|(pop {.*pc})}} } void set_bpiall() { // CHECK-LABEL: : // CHECK: mcr p15, #0x0, {{r[0-9]+}}, c7, c5, #0x6 __set_BPIALL(u32); // CHECK: {{(bx lr)|(pop {.*pc})}} } void set_iciallu() { // CHECK-LABEL: : // CHECK: mcr p15, #0x0, {{r[0-9]+}}, c7, c5, #0x0 __set_ICIALLU(u32); // CHECK: {{(bx lr)|(pop {.*pc})}} } void set_icimvac() { // CHECK-LABEL: : // CHECK: mcr p15, #0x0, {{r[0-9]+}}, c7, c5, #0x1 __set_ICIMVAC(u32); // CHECK: {{(bx lr)|(pop {.*pc})}} } void set_dccmvac() { // CHECK-LABEL: : // CHECK: mcr p15, #0x0, {{r[0-9]+}}, c7, c10, #0x1 __set_DCCMVAC(u32); // CHECK: {{(bx lr)|(pop {.*pc})}} } void set_dcimvac() { // CHECK-LABEL: : // CHECK: mcr p15, #0x0, {{r[0-9]+}}, c7, c6, #0x1 __set_DCIMVAC(u32); // CHECK: {{(bx lr)|(pop {.*pc})}} } void set_dccimvac() { // CHECK-LABEL: : // CHECK: mcr p15, #0x0, {{r[0-9]+}}, c7, c14, #0x1 __set_DCCIMVAC(u32); // CHECK: {{(bx lr)|(pop {.*pc})}} } void get_csselr() { // CHECK-LABEL: : // CHECK: mrc p15, #0x2, {{r[0-9]+}}, c0, c0, #0x0 volatile uint32_t result = __get_CSSELR(); // CHECK: {{(bx lr)|(pop {.*pc})}} } void set_csselr() { // CHECK-LABEL: : // CHECK: mcr p15, #0x2, {{r[0-9]+}}, c0, c0, #0x0 __set_CSSELR(u32); // CHECK: {{(bx lr)|(pop {.*pc})}} } void get_ccsidr() { // CHECK-LABEL: : // CHECK: mrc p15, #0x1, {{r[0-9]+}}, c0, c0, #0x0 volatile uint32_t result = __get_CCSIDR(); // CHECK: {{(bx lr)|(pop {.*pc})}} } void get_clidr() { // CHECK-LABEL: : // CHECK: mrc p15, #0x1, {{r[0-9]+}}, c0, c0, #0x1 volatile uint32_t result = __get_CLIDR(); // CHECK: {{(bx lr)|(pop {.*pc})}} } void set_dcisw() { // CHECK-LABEL: : // CHECK: mcr p15, #0x0, {{r[0-9]+}}, c7, c6, #0x2 __set_DCISW(u32); // CHECK: {{(bx lr)|(pop {.*pc})}} } void set_dccsw() { // CHECK-LABEL: : // CHECK: mcr p15, #0x0, {{r[0-9]+}}, c7, c10, #0x2 __set_DCCSW(u32); // CHECK: {{(bx lr)|(pop {.*pc})}} } void set_dccisw() { // CHECK-LABEL: : // CHECK: mcr p15, #0x0, {{r[0-9]+}}, c7, c14, #0x2 __set_DCCISW(u32); // CHECK: {{(bx lr)|(pop {.*pc})}} }