[PATCH, GCC/ARM, 4/10] Clear GPR with CLRM
[official-gcc.git] / gcc / testsuite / gcc.target / arm / cmse / mainline / 8_1m / soft / cmse-13.c
blobd43a9f85a199ecdf7e018852b3af9b4cf36af81f
1 /* { dg-do compile } */
2 /* { dg-options "-mcmse -mfloat-abi=soft" } */
3 /* { dg-skip-if "Incompatible float ABI" { *-*-* } { "-mfloat-abi=*" } { "-mfloat-abi=soft" } } */
5 #include "../../../cmse-13.x"
7 /* Checks for saving and clearing prior to function call. */
8 /* { dg-final { scan-assembler "lsrs\tr4, r4, #1" } } */
9 /* { dg-final { scan-assembler "lsls\tr4, r4, #1" } } */
10 /* { dg-final { scan-assembler-not "mov\tr0, r4" } } */
11 /* { dg-final { scan-assembler-not "mov\tr2, r4" } } */
12 /* { dg-final { scan-assembler-not "mov\tr3, r4" } } */
13 /* { dg-final { scan-assembler "clrm\t\{r1, APSR\}" } } */
14 /* { dg-final { scan-assembler-not "vmov" } } */
15 /* { dg-final { scan-assembler-not "vmsr" } } */
17 /* Now we check that we use the correct intrinsic to call. */
18 /* { dg-final { scan-assembler "bl\t__gnu_cmse_nonsecure_call" } } */