gcc.target/avr/torture/pr92606.c used LPM Z+ no matter what,
so that it failed when only LPM is available.  This patch
always uses LPM since performance is not an issue.
Applied as obvious.

Johann

--

    AVR: Fix gcc.target/avr/torture/pr92606.c that failed without LPMx.
gcc/testsuite/
            * gcc.target/avr/torture/pr92606.c: Use LPM even if LPMx
            is available.

diff --git a/gcc/testsuite/gcc.target/avr/torture/pr92606.c 
b/gcc/testsuite/gcc.target/avr/torture/pr92606.c
index a391d7edfcd..99d1ca6aa4e 100644
--- a/gcc/testsuite/gcc.target/avr/torture/pr92606.c
+++ b/gcc/testsuite/gcc.target/avr/torture/pr92606.c
@@ -14,10 +14,10 @@ typedef uint32_t T;
         {                                                               \
             uint16_t __addr16 = (uint16_t)(X);                          \
             uint32_t __result;                                          \
-            __asm__ __volatile__ ("lpm %A0, Z+" "\n\t"                  \
-                                  "lpm %B0, Z+" "\n\t"                  \
-                                  "lpm %C0, Z+" "\n\t"                  \
-                                  "lpm %D0, Z" "\n\t"                   \
+            __asm__ __volatile__ ("lpm $ mov %A0,r0 $ adiw %1,1" "\n\t" \
+                                  "lpm $ mov %B0,r0 $ adiw %1,1" "\n\t" \
+                                  "lpm $ mov %C0,r0 $ adiw %1,1" "\n\t" \
+                                  "lpm $ mov %D0,r0"                    \
                                   : "=r" (__result), "+z" (__addr16));  \
             __result;                                                   \
         }))

Reply via email to