https://gcc.gnu.org/bugzilla/show_bug.cgi?id=124209

--- Comment #4 from Uroš Bizjak <ubizjak at gmail dot com> ---
(In reply to Uroš Bizjak from comment #3)
> We can handle some more tree codes:

Also ARRAY_RANGE_REF, but C testcase is not available.

BTW: The patch fails bootstrap when building x86_32 libgcc (soft-fp) for
unrelated reason (PR127326), the following patch works around the problem and
allows bootstrap (and regression test) to finish:

--cut here--
diff --git a/libgcc/soft-fp/floatbitinttd.c b/libgcc/soft-fp/floatbitinttd.c
index 50b9e77a835..c37d3732869 100644
--- a/libgcc/soft-fp/floatbitinttd.c
+++ b/libgcc/soft-fp/floatbitinttd.c
@@ -77,9 +77,9 @@ __bid_floatbitinttd (const UBILtype *i, SItype iprec)
        u.d = -9000000000000000000000000000000000e+6111DL;
       else
        u.d = 9000000000000000000000000000000000e+6111DL;
-      __asm ("" : "+g" (u.d));
+      __asm ("" : "+m" (u.d));
       u.d += u.d;
-      __asm ("" : "+g" (u.d));
+      __asm ("" : "+m" (u.d));
       goto done;
     }
   /* Bit precision of 9999999999999999999999999999999999uwb.  */
@@ -325,10 +325,10 @@ __bid_floatbitinttd (const UBILtype *i, SItype iprec)
           | ((((UDItype) exponent - 1) & 4095) << 46));
 #endif
       ui.u[__FLOAT_WORD_ORDER__ == __ORDER_BIG_ENDIAN__] = inexact + 3;
-      __asm ("" : "+g" (u.d));
-      __asm ("" : "+g" (ui.d));
+      __asm ("" : "+m" (u.d));
+      __asm ("" : "+m" (ui.d));
       u.d += ui.d;
-      __asm ("" : "+g" (u.d));
+      __asm ("" : "+m" (u.d));
     }

 done:
--cut here--

Reply via email to