Commit bc211e05 by Jan Hubicka Committed by Andreas Tobler

darwin.c (machopic_indirect_data_reference): Avoid invalid sharing.

2007-09-06  Jan Hubicka  <jh@suse.cz>
	    Andreas Tobler  <a.tobler@schweiz.org>

	* config/darwin.c (machopic_indirect_data_reference): Avoid invalid
	sharing.
	(machopic_legitimize_pic_address): Likewise.

Co-Authored-By: Andreas Tobler <a.tobler@schweiz.org>

From-SVN: r128207
parent 3cc50edc
2007-09-06 Jan Hubicka <jh@suse.cz>
Andreas Tobler <a.tobler@schweiz.org>
* config/darwin.c (machopic_indirect_data_reference): Avoid invalid
sharing.
(machopic_legitimize_pic_address): Likewise.
2007-09-06 Andrew Pinski <andrew_pinski@playstation.sony.com> 2007-09-06 Andrew Pinski <andrew_pinski@playstation.sony.com>
Jan Hubicka <jh@suse.cz> Jan Hubicka <jh@suse.cz>
......
...@@ -542,7 +542,8 @@ machopic_indirect_data_reference (rtx orig, rtx reg) ...@@ -542,7 +542,8 @@ machopic_indirect_data_reference (rtx orig, rtx reg)
gen_rtx_PLUS (Pmode, pic_offset_table_rtx, gen_rtx_PLUS (Pmode, pic_offset_table_rtx,
gen_rtx_HIGH (Pmode, offset)))); gen_rtx_HIGH (Pmode, offset))));
emit_insn (gen_rtx_SET (Pmode, reg, emit_insn (gen_rtx_SET (Pmode, reg,
gen_rtx_LO_SUM (Pmode, hi_sum_reg, offset))); gen_rtx_LO_SUM (Pmode, hi_sum_reg,
copy_rtx (offset))));
orig = reg; orig = reg;
#else #else
...@@ -552,7 +553,8 @@ machopic_indirect_data_reference (rtx orig, rtx reg) ...@@ -552,7 +553,8 @@ machopic_indirect_data_reference (rtx orig, rtx reg)
emit_insn (gen_rtx_SET (VOIDmode, reg, emit_insn (gen_rtx_SET (VOIDmode, reg,
gen_rtx_HIGH (Pmode, offset))); gen_rtx_HIGH (Pmode, offset)));
emit_insn (gen_rtx_SET (VOIDmode, reg, emit_insn (gen_rtx_SET (VOIDmode, reg,
gen_rtx_LO_SUM (Pmode, reg, offset))); gen_rtx_LO_SUM (Pmode, reg,
copy_rtx (offset))));
emit_insn (gen_rtx_USE (VOIDmode, pic_offset_table_rtx)); emit_insn (gen_rtx_USE (VOIDmode, pic_offset_table_rtx));
orig = gen_rtx_PLUS (Pmode, pic_offset_table_rtx, reg); orig = gen_rtx_PLUS (Pmode, pic_offset_table_rtx, reg);
...@@ -714,7 +716,8 @@ machopic_legitimize_pic_address (rtx orig, enum machine_mode mode, rtx reg) ...@@ -714,7 +716,8 @@ machopic_legitimize_pic_address (rtx orig, enum machine_mode mode, rtx reg)
emit_insn (gen_macho_high (temp_reg, asym)); emit_insn (gen_macho_high (temp_reg, asym));
mem = gen_const_mem (GET_MODE (orig), mem = gen_const_mem (GET_MODE (orig),
gen_rtx_LO_SUM (Pmode, temp_reg, asym)); gen_rtx_LO_SUM (Pmode, temp_reg,
copy_rtx (asym)));
emit_insn (gen_rtx_SET (VOIDmode, reg, mem)); emit_insn (gen_rtx_SET (VOIDmode, reg, mem));
#else #else
/* Some other CPU -- WriteMe! but right now there are no other /* Some other CPU -- WriteMe! but right now there are no other
...@@ -746,7 +749,8 @@ machopic_legitimize_pic_address (rtx orig, enum machine_mode mode, rtx reg) ...@@ -746,7 +749,8 @@ machopic_legitimize_pic_address (rtx orig, enum machine_mode mode, rtx reg)
mem = gen_const_mem (GET_MODE (orig), mem = gen_const_mem (GET_MODE (orig),
gen_rtx_LO_SUM (Pmode, gen_rtx_LO_SUM (Pmode,
hi_sum_reg, offset)); hi_sum_reg,
copy_rtx (offset)));
insn = emit_insn (gen_rtx_SET (VOIDmode, reg, mem)); insn = emit_insn (gen_rtx_SET (VOIDmode, reg, mem));
set_unique_reg_note (insn, REG_EQUAL, pic_ref); set_unique_reg_note (insn, REG_EQUAL, pic_ref);
...@@ -762,7 +766,8 @@ machopic_legitimize_pic_address (rtx orig, enum machine_mode mode, rtx reg) ...@@ -762,7 +766,8 @@ machopic_legitimize_pic_address (rtx orig, enum machine_mode mode, rtx reg)
offset)))); offset))));
emit_insn (gen_rtx_SET (VOIDmode, reg, emit_insn (gen_rtx_SET (VOIDmode, reg,
gen_rtx_LO_SUM (Pmode, reg, gen_rtx_LO_SUM (Pmode, reg,
gen_rtx_CONST (Pmode, offset)))); gen_rtx_CONST (Pmode,
copy_rtx (offset)))));
pic_ref = gen_rtx_PLUS (Pmode, pic_ref = gen_rtx_PLUS (Pmode,
pic_offset_table_rtx, reg); pic_offset_table_rtx, reg);
#endif #endif
...@@ -822,13 +827,15 @@ machopic_legitimize_pic_address (rtx orig, enum machine_mode mode, rtx reg) ...@@ -822,13 +827,15 @@ machopic_legitimize_pic_address (rtx orig, enum machine_mode mode, rtx reg)
offset)))); offset))));
emit_insn (gen_rtx_SET (VOIDmode, reg, emit_insn (gen_rtx_SET (VOIDmode, reg,
gen_rtx_LO_SUM (Pmode, gen_rtx_LO_SUM (Pmode,
hi_sum_reg, offset))); hi_sum_reg,
copy_rtx (offset))));
pic_ref = reg; pic_ref = reg;
#else #else
emit_insn (gen_rtx_SET (VOIDmode, reg, emit_insn (gen_rtx_SET (VOIDmode, reg,
gen_rtx_HIGH (Pmode, offset))); gen_rtx_HIGH (Pmode, offset)));
emit_insn (gen_rtx_SET (VOIDmode, reg, emit_insn (gen_rtx_SET (VOIDmode, reg,
gen_rtx_LO_SUM (Pmode, reg, offset))); gen_rtx_LO_SUM (Pmode, reg,
copy_rtx (offset))));
pic_ref = gen_rtx_PLUS (Pmode, pic_ref = gen_rtx_PLUS (Pmode,
pic_offset_table_rtx, reg); pic_offset_table_rtx, reg);
#endif #endif
......
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