This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug target/78458] [7 Regression] LRA ICE building libgcc for powerpc-linux-gnuspe e500v2


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

--- Comment #12 from joseph at codesourcery dot com <joseph at codesourcery dot com> ---
Applying also the third patch

Index: gcc/config/rs6000/rs6000.c
===================================================================
--- gcc/config/rs6000/rs6000.c  (revision 242751)
+++ gcc/config/rs6000/rs6000.c  (working copy)
@@ -8443,14 +8443,13 @@ rs6000_legitimate_offset_address_p (machine_mode m
     case TFmode:
     case IFmode:
     case KFmode:
+    case TDmode:
+    case TImode:
+    case PTImode:
       if (TARGET_E500_DOUBLE)
        return (SPE_CONST_OFFSET_OK (offset)
                && SPE_CONST_OFFSET_OK (offset + 8));
-      /* fall through */

-    case TDmode:
-    case TImode:
-    case PTImode:
       extra = 8;
       if (!worst_case)
        break;

results in glibc compiling successfully and the compilation parts of the 
testsuite running OK; not yet done any execution testing with these 
patches.  The bad offset came from an insn:

(insn 115 1209 1210 (set (reg:DF 27 27 [orig:294 _129 ] [294])
        (subreg:DF (mem/c:TI (plus:SI (reg/f:SI 1 1)
                    (const_int 256 [0x100])) [14 %sfp+256 S16 A128]) 0)) 1909
{*frob_df_ti}
     (nil))

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]