Commit c3c96e68 by H.J. Lu

re PR rtl-optimization/37435 (ICE with volatiles)

gcc/

2008-09-09  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/37435
	* caller-save.c (insert_restore, insert_save): Check the mode by
	reg_save_code.

gcc/testsuite/

2008-09-09  H.J. Lu  <hongjiu.lu@intel.com>

	PR rtl-optimization/37435
	* gcc.dg/dfp/pr37435.c: New.

From-SVN: r140184
parent a2649528
2008-09-09 Vladimir Makarov <vmakarov@redhat.com>
PR rtl-optimization/37435
* caller-save.c (insert_restore, insert_save): Check the mode by
reg_save_code.
2008-09-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
PR other/37265
......
......@@ -1067,7 +1067,10 @@ insert_restore (struct insn_chain *chain, int before_p, int regno,
mem = regno_save_mem [regno][numregs];
if (save_mode [regno] != VOIDmode
&& save_mode [regno] != GET_MODE (mem)
&& numregs == (unsigned int) hard_regno_nregs[regno][save_mode [regno]])
&& numregs == (unsigned int) hard_regno_nregs[regno][save_mode [regno]]
/* Check that insn to restore REGNO in save_mode[regno] is
correct. */
&& reg_save_code (regno, save_mode[regno]) >= 0)
mem = adjust_address (mem, save_mode[regno], 0);
else
mem = copy_rtx (mem);
......@@ -1145,7 +1148,10 @@ insert_save (struct insn_chain *chain, int before_p, int regno,
mem = regno_save_mem [regno][numregs];
if (save_mode [regno] != VOIDmode
&& save_mode [regno] != GET_MODE (mem)
&& numregs == (unsigned int) hard_regno_nregs[regno][save_mode [regno]])
&& numregs == (unsigned int) hard_regno_nregs[regno][save_mode [regno]]
/* Check that insn to save REGNO in save_mode[regno] is
correct. */
&& reg_save_code (regno, save_mode[regno]) >= 0)
mem = adjust_address (mem, save_mode[regno], 0);
else
mem = copy_rtx (mem);
......
2008-09-09 H.J. Lu <hongjiu.lu@intel.com>
PR rtl-optimization/37435
* gcc.dg/dfp/pr37435.c: New.
2008-09-09 Jakub Jelinek <jakub@redhat.com>
PR c++/37417
......
/* { dg-do compile { target fpic } } */
/* { dg-options "-std=gnu99 -O2 -fPIC" } */
volatile _Decimal32 d;
volatile int i;
void foo()
{
d += i;
d += i;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment