re PR target/71571 ([CRIS] Multiple inheritance non-virtual PIC thunk causes crash)
authorHans-Peter Nilsson <hp@axis.com>
Mon, 20 Jun 2016 20:01:20 +0000 (20:01 +0000)
committerHans-Peter Nilsson <hp@gcc.gnu.org>
Mon, 20 Jun 2016 20:01:20 +0000 (20:01 +0000)
PR target/71571
* config/cris/cris.c (cris_asm_output_mi_thunk): Add missing "ba"
delay-slot "nop" for PIC with CRIS v32.  Also add missing leading
space for PIC with non-v32 and the common non-PIC "jump".

From-SVN: r237615

gcc/ChangeLog
gcc/config/cris/cris.c

index 68648a6384ccb20ed48c4dae0b24c0b1865d0583..c76c39b7343a983d45b738d1872a85728ad2be43 100644 (file)
@@ -1,3 +1,10 @@
+2016-06-20  Hans-Peter Nilsson  <hp@axis.com>
+
+       PR target/71571
+       * config/cris/cris.c (cris_asm_output_mi_thunk): Add missing "ba"
+       delay-slot "nop" for PIC with CRIS v32.  Also add missing leading
+       space for PIC with non-v32 and the common non-PIC "jump".
+
 2016-06-20  Jakub Jelinek  <jakub@redhat.com>
 
        PR target/71559
index 0df3c5d7e4d79c9597b1c9079c666364e56a0508..971d07fb12ad0de74315523ba00fd7ee308ad0af 100644 (file)
@@ -2772,18 +2772,18 @@ cris_asm_output_mi_thunk (FILE *stream,
        {
          fprintf (stream, "\tba ");
          assemble_name (stream, name);
-         fprintf (stream, "%s\n", CRIS_PLT_PCOFFSET_SUFFIX);
+         fprintf (stream, "%s\n\tnop\n", CRIS_PLT_PCOFFSET_SUFFIX);
        }
       else
        {
-         fprintf (stream, "add.d ");
+         fprintf (stream, "\tadd.d ");
          assemble_name (stream, name);
          fprintf (stream, "%s,$pc\n", CRIS_PLT_PCOFFSET_SUFFIX);
        }
     }
   else
     {
-      fprintf (stream, "jump ");
+      fprintf (stream, "\tjump ");
       assemble_name (stream, XSTR (XEXP (DECL_RTL (funcdecl), 0), 0));
       fprintf (stream, "\n");