aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorHans-Peter Nilsson <hp@axis.com>2016-06-20 20:01:20 +0000
committerHans-Peter Nilsson <hp@gcc.gnu.org>2016-06-20 20:01:20 +0000
commitb2b4e462a8ba31b605fa8caeeff1041331658414 (patch)
treef2dde85345bb6aaf5f756385f352402dfcaad83c /gcc
parentc4ff221ea83c3d119bf5bda8958a3da09ad9d57f (diff)
downloadgcc-b2b4e462a8ba31b605fa8caeeff1041331658414.zip
gcc-b2b4e462a8ba31b605fa8caeeff1041331658414.tar.gz
gcc-b2b4e462a8ba31b605fa8caeeff1041331658414.tar.bz2
re PR target/71571 ([CRIS] Multiple inheritance non-virtual PIC thunk causes crash)
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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/config/cris/cris.c6
2 files changed, 10 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 68648a6..c76c39b 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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
diff --git a/gcc/config/cris/cris.c b/gcc/config/cris/cris.c
index 0df3c5d..971d07f 100644
--- a/gcc/config/cris/cris.c
+++ b/gcc/config/cris/cris.c
@@ -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");