================ @@ -0,0 +1,34 @@ +// REQUIRES: arm-registered-target +// RUN: %clang -target arm-none-none-eabihf -mcpu=cortex-r5 -mfpu=vfpv3-d16 -marm -S -o - %s \ +// RUN: | FileCheck %s --check-prefix=CHECK-R +// RUN: %clang -target arm-none-none-eabihf -mcpu=cortex-r5 -mfpu=vfpv3-d16 -mthumb -S -o - %s \ +// RUN: | FileCheck %s --check-prefix=CHECK-R +// RUN: %clang -target arm-none-none-eabihf -mcpu=cortex-r4 -mfpu=vfpv3-d16 -marm -S -o - %s \ +// RUN: | FileCheck %s --check-prefix=CHECK-R +// RUN: %clang -target arm-none-none-eabihf -mcpu=cortex-r4 -mfpu=vfpv3-d16 -mthumb -S -o - %s \ +// RUN: | FileCheck %s --check-prefix=CHECK-R +// RUN: %clang -target arm-none-none-eabihf -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -S -o - %s \ +// RUN: | FileCheck %s --check-prefix=CHECK-M +// RUN: %clang -target arm-none-none-eabihf -mcpu=cortex-m33 -mfpu=fpv5-sp-d16 -S -o - %s \ +// RUN: | FileCheck %s --check-prefix=CHECK-M + +void bar(); + +__attribute__((interrupt_save_fp)) void test_generic_interrupt() { + // CHECK-R: vmrs r4, fpscr + // CHECK-R-NEXT: vmrs r5, fpexc + // CHECK-R-NEXT: .save {fpscr, fpexc} ---------------- efriedma-quic wrote:
At that point, you might as well not emit the .save at all? At best, the debugger will just see the values get overwritten, and ignore the second .save. https://github.com/llvm/llvm-project/pull/89654 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits