On 11/26/24 13:42, Torbjörn SVENSSON wrote:
Hi,

Sorry for the mess. I'm not sure how I managed to miss this...
Maybe I tested the GCC15 binaries on the GCC14 test tree.
Anyway, here is a fix that uses the assembler generated in GCC14.

The csinc instruction was introduced in r15-1579-g792f97b44ff that
was not backported.

Ok for releases/gcc-14?

--

In r14.2.0-376-g724446556e5, I accidentally introduced a regression in
the expected assembler as the csinc instruction was not used for
armv8.1-m.main.

The generated assembler for armv8.1-m.main is:
         push    {r3, r4, r5, lr}
         ldr     r4, .L5
         ldr     r5, [r4]
         adds    r4, r2, #1
         tst     r5, #4
         it      ne
         movne   r2, r4
         bl      bar
         movs    r0, #0
         pop     {r3, r4, r5, pc}

gcc/testsuite/ChangeLog:

        * gcc.target/arm/epilog-1.c: Corrected armv8.1.m-main asm.


OK, thanks.

Christophe

Signed-off-by: Torbjörn SVENSSON <torbjorn.svens...@foss.st.com>
---
  gcc/testsuite/gcc.target/arm/epilog-1.c | 4 +++-
  1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/gcc/testsuite/gcc.target/arm/epilog-1.c 
b/gcc/testsuite/gcc.target/arm/epilog-1.c
index a1516456460..d765dc42b82 100644
--- a/gcc/testsuite/gcc.target/arm/epilog-1.c
+++ b/gcc/testsuite/gcc.target/arm/epilog-1.c
@@ -20,8 +20,10 @@ Below block is for non-armv8.1-m.main
  ** |
Below block is for armv8.1-m.main
+**     adds    (r[0-9]+), r2, #1
  **    tst     r[0-9]+, #4
-**     csinc   r2, r2, r2, eq
+**     it      ne
+**     movne   r2, \1
** )
  **    bl      bar

Reply via email to