aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorDavid Malcolm <dmalcolm@redhat.com>2015-01-23 15:57:42 +0000
committerDavid Malcolm <dmalcolm@gcc.gnu.org>2015-01-23 15:57:42 +0000
commitca72dad54a775cbcf4be545feb1f5575e064387a (patch)
tree253a2c407cf9c43d2e42db2d15827104a9d1af1d /gcc
parent130dc027c52c4636f42cac6296bc0841ec021f39 (diff)
downloadgcc-ca72dad54a775cbcf4be545feb1f5575e064387a.zip
gcc-ca72dad54a775cbcf4be545feb1f5575e064387a.tar.gz
gcc-ca72dad54a775cbcf4be545feb1f5575e064387a.tar.bz2
PR jit/64722: fix corruption of %ebx on 32-bit i386 with libgccjit
gcc/ChangeLog: PR jit/64722 * emit-rtl.c (init_emit_regs): Set pic_offset_table_rtx to NULL_RTX before testing PIC_OFFSET_TABLE_REGNUM, since the latter may be affected by the former (e.g. on i686). From-SVN: r220044
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/emit-rtl.c3
2 files changed, 8 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 2b53eed..2a47ca2 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2015-01-23 David Malcolm <dmalcolm@redhat.com>
+
+ PR jit/64722
+ * emit-rtl.c (init_emit_regs): Set pic_offset_table_rtx to
+ NULL_RTX before testing PIC_OFFSET_TABLE_REGNUM, since the
+ latter may be affected by the former (e.g. on i686).
+
2015-01-23 Martin Liska <mliska@suse.cz>
* tree.h (tree_vec_elt_check): Workaround -Wstrict-overflow
diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c
index df85366..483eacb 100644
--- a/gcc/emit-rtl.c
+++ b/gcc/emit-rtl.c
@@ -5872,10 +5872,9 @@ init_emit_regs (void)
= gen_raw_REG (Pmode, RETURN_ADDRESS_POINTER_REGNUM);
#endif
+ pic_offset_table_rtx = NULL_RTX;
if ((unsigned) PIC_OFFSET_TABLE_REGNUM != INVALID_REGNUM)
pic_offset_table_rtx = gen_raw_REG (Pmode, PIC_OFFSET_TABLE_REGNUM);
- else
- pic_offset_table_rtx = NULL_RTX;
for (i = 0; i < (int) MAX_MACHINE_MODE; i++)
{