On Tue, Apr 15, 2025 at 1:06 AM H.J. Lu <hjl.to...@gmail.com> wrote: > > ix86_add_cfa_restore_note omits the REG_CFA_RESTORE REG note for registers > pushed in red-zone. Since > > commit 0a074b8c7e79f9d9359d044f1499b0a9ce9d2801 > Author: H.J. Lu <hjl.to...@gmail.com> > Date: Sun Apr 13 12:20:42 2025 -0700 > > APX: Don't use red-zone with 32 GPRs and no caller-saved registers > > disabled red-zone, update gcc.target/i386/apx-interrupt-1.c to expect > 31 .cfi_restore directives.
Hm, did you also account for RED_ZONE_RESERVE? The last 8-byte slot is reserved for internal use by the compiler. Uros. > > PR target/119784 > * gcc.target/i386/apx-interrupt-1.c: Expect 31 .cfi_restore > directives. > > Signed-off-by: H.J. Lu <hjl.to...@gmail.com> > --- > gcc/testsuite/gcc.target/i386/apx-interrupt-1.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/gcc/testsuite/gcc.target/i386/apx-interrupt-1.c > b/gcc/testsuite/gcc.target/i386/apx-interrupt-1.c > index fefe2e6d6fc..fa1acc7a142 100644 > --- a/gcc/testsuite/gcc.target/i386/apx-interrupt-1.c > +++ b/gcc/testsuite/gcc.target/i386/apx-interrupt-1.c > @@ -66,7 +66,7 @@ void foo (void *frame) > /* { dg-final { scan-assembler-times {\t\.cfi_offset 132, -120} 1 } } */ > /* { dg-final { scan-assembler-times {\t\.cfi_offset 131, -128} 1 } } */ > /* { dg-final { scan-assembler-times {\t\.cfi_offset 130, -136} 1 } } */ > -/* { dg-final { scan-assembler-times ".cfi_restore" 15} } */ > +/* { dg-final { scan-assembler-times ".cfi_restore" 31 } } */ > /* { dg-final { scan-assembler-times "pop(?:l|q)\[\\t \]*%(?:e|r)ax" 1 } } */ > /* { dg-final { scan-assembler-times "pop(?:l|q)\[\\t \]*%(?:e|r)bx" 1 } } */ > /* { dg-final { scan-assembler-times "pop(?:l|q)\[\\t \]*%(?:e|r)cx" 1 } } */ > -- > 2.49.0 >