This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Blackfin patch: Use gen_const_mem.


Spotted this oversight from the 3.4->4.0 port while looking for uses of gen_rtx_MEM after a recent thread made it sound that those are problematic.


Bernd
	* config/bfin/bfin.c (legimitize_pic_address): Use gen_const_mem.	

Index: config/bfin/bfin.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/bfin/bfin.c,v
retrieving revision 1.20
diff -c -p -r1.20 bfin.c
*** config/bfin/bfin.c	9 Aug 2005 09:47:52 -0000	1.20
--- config/bfin/bfin.c	12 Sep 2005 10:05:26 -0000
*************** legitimize_pic_address (rtx orig, rtx re
*** 150,163 ****
  	      emit_insn (gen_movsi_high_pic (reg, addr));
  	      emit_insn (gen_movsi_low_pic (reg, reg, addr));
  	      emit_insn (gen_addsi3 (reg, reg, picreg));
! 	      new = gen_rtx_MEM (Pmode, reg);
  	    }
  	  else
  	    {
  	      rtx tmp = gen_rtx_UNSPEC (Pmode, gen_rtvec (1, addr),
  					UNSPEC_MOVE_PIC);
! 	      new = gen_rtx_MEM (Pmode,
! 				 gen_rtx_PLUS (Pmode, picreg, tmp));
  	    }
  	  emit_move_insn (reg, new);
  	}
--- 150,163 ----
  	      emit_insn (gen_movsi_high_pic (reg, addr));
  	      emit_insn (gen_movsi_low_pic (reg, reg, addr));
  	      emit_insn (gen_addsi3 (reg, reg, picreg));
! 	      new = gen_const_mem (Pmode, reg);
  	    }
  	  else
  	    {
  	      rtx tmp = gen_rtx_UNSPEC (Pmode, gen_rtvec (1, addr),
  					UNSPEC_MOVE_PIC);
! 	      new = gen_const_mem (Pmode,
! 				   gen_rtx_PLUS (Pmode, picreg, tmp));
  	    }
  	  emit_move_insn (reg, new);
  	}

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]