diff options
author | David Malcolm <dmalcolm@redhat.com> | 2015-01-23 15:57:42 +0000 |
---|---|---|
committer | David Malcolm <dmalcolm@gcc.gnu.org> | 2015-01-23 15:57:42 +0000 |
commit | ca72dad54a775cbcf4be545feb1f5575e064387a (patch) | |
tree | 253a2c407cf9c43d2e42db2d15827104a9d1af1d | |
parent | 130dc027c52c4636f42cac6296bc0841ec021f39 (diff) | |
download | gcc-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
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/emit-rtl.c | 3 |
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++) { |