|
497 | 497 | // CHECK-MEMTAG: __ARM_FEATURE_MEMORY_TAGGING 1 |
498 | 498 |
|
499 | 499 | // ================== Check Pointer Authentication Extension (PAuth). |
500 | | -// RUN: %clang -target arm64-none-linux-gnu -march=armv8-a -x c -E -dM %s -o - | FileCheck -check-prefix=CHECK-PAUTH-OFF %s |
501 | | -// RUN: %clang -target arm64-none-linux-gnu -march=armv8.5-a -x c -E -dM %s -o - | FileCheck -check-prefix=CHECK-PAUTH-OFF %s |
502 | | -// RUN: %clang -target arm64-none-linux-gnu -march=armv8-a+pauth -mbranch-protection=none -x c -E -dM %s -o - | FileCheck -check-prefix=CHECK-PAUTH-ON %s |
| 500 | +// RUN: %clang -target arm64-none-linux-gnu -march=armv8-a -x c -E -dM %s -o - | FileCheck -check-prefixes=CHECK-PAUTH-OFF,CHECK-CPU-NOPAUTH %s |
| 501 | +// RUN: %clang -target arm64-none-linux-gnu -march=armv8.5-a+nopauth -x c -E -dM %s -o - | FileCheck -check-prefixes=CHECK-PAUTH-OFF,CHECK-CPU-NOPAUTH %s |
| 502 | +// RUN: %clang -target arm64-none-linux-gnu -march=armv8.5-a -x c -E -dM %s -o - | FileCheck -check-prefixes=CHECK-PAUTH-OFF,CHECK-CPU-PAUTH %s |
| 503 | +// RUN: %clang -target arm64-none-linux-gnu -march=armv8-a+pauth -mbranch-protection=none -x c -E -dM %s -o - | FileCheck -check-prefixes=CHECK-PAUTH-OFF,CHECK-CPU-PAUTH %s |
503 | 504 | // RUN: %clang -target arm64-none-linux-gnu -march=armv8-a -mbranch-protection=none -x c -E -dM %s -o - | FileCheck -check-prefix=CHECK-PAUTH-OFF %s |
504 | 505 | // RUN: %clang -target arm64-none-linux-gnu -march=armv8-a -mbranch-protection=bti -x c -E -dM %s -o - | FileCheck -check-prefix=CHECK-PAUTH-OFF %s |
505 | 506 | // RUN: %clang -target arm64-none-linux-gnu -march=armv8-a -mbranch-protection=standard -x c -E -dM %s -o - | FileCheck -check-prefix=CHECK-PAUTH %s |
506 | 507 | // RUN: %clang -target arm64-none-linux-gnu -march=armv8-a -mbranch-protection=pac-ret -x c -E -dM %s -o - | FileCheck -check-prefix=CHECK-PAUTH %s |
507 | 508 | // RUN: %clang -target arm64-none-linux-gnu -march=armv8-a -mbranch-protection=pac-ret+b-key -x c -E -dM %s -o - | FileCheck -check-prefix=CHECK-PAUTH-BKEY %s |
508 | 509 | // RUN: %clang -target arm64-none-linux-gnu -march=armv8-a -mbranch-protection=pac-ret+leaf -x c -E -dM %s -o - | FileCheck -check-prefix=CHECK-PAUTH-ALL %s |
509 | 510 | // RUN: %clang -target arm64-none-linux-gnu -march=armv8-a -mbranch-protection=pac-ret+leaf+b-key -x c -E -dM %s -o - | FileCheck -check-prefix=CHECK-PAUTH-BKEY-ALL %s |
510 | | -// CHECK-PAUTH-OFF-NOT: __ARM_FEATURE_PAC_DEFAULT |
511 | | -// CHECK-PAUTH: #define __ARM_FEATURE_PAC_DEFAULT 1 |
512 | | -// CHECK-PAUTH-BKEY: #define __ARM_FEATURE_PAC_DEFAULT 2 |
513 | | -// CHECK-PAUTH-ALL: #define __ARM_FEATURE_PAC_DEFAULT 5 |
514 | | -// CHECK-PAUTH-BKEY-ALL: #define __ARM_FEATURE_PAC_DEFAULT 6 |
515 | | -// CHECK-PAUTH-ON: #define __ARM_FEATURE_PAUTH 1 |
| 511 | +// |
| 512 | +// Note: PAUTH-OFF - pac-ret is disabled |
| 513 | +// CPU-NOPAUTH - FEAT_PAUTH support is disabled (but pac-ret can still use HINT-encoded instructions) |
| 514 | +// |
| 515 | +// CHECK-CPU-NOPAUTH-NOT: __ARM_FEATURE_PAUTH |
| 516 | +// CHECK-PAUTH-OFF-NOT: __ARM_FEATURE_PAC_DEFAULT |
| 517 | +// CHECK-PAUTH: #define __ARM_FEATURE_PAC_DEFAULT 1 |
| 518 | +// CHECK-PAUTH-BKEY: #define __ARM_FEATURE_PAC_DEFAULT 2 |
| 519 | +// CHECK-PAUTH-ALL: #define __ARM_FEATURE_PAC_DEFAULT 5 |
| 520 | +// CHECK-PAUTH-BKEY-ALL: #define __ARM_FEATURE_PAC_DEFAULT 6 |
| 521 | +// CHECK-CPU-PAUTH: #define __ARM_FEATURE_PAUTH 1 |
| 522 | +// CHECK-CPU-NOPAUTH-NOT: __ARM_FEATURE_PAUTH |
516 | 523 |
|
517 | 524 | // ================== Check Branch Target Identification (BTI). |
518 | 525 | // RUN: %clang -target arm64-none-linux-gnu -march=armv8-a -x c -E -dM %s -o - | FileCheck -check-prefix=CHECK-BTI-OFF %s |
|
0 commit comments