re PR rtl-optimization/11320 (Scheduler bug)
authorBernd Schmidt <bernds@codesourcery.com>
Thu, 14 Jul 2011 17:06:33 +0000 (17:06 +0000)
committerBernd Schmidt <bernds@gcc.gnu.org>
Thu, 14 Jul 2011 17:06:33 +0000 (17:06 +0000)
PR rtl-optimization/11320
* config/ia64/ia64.md (load_symptr_low): Show a MEM.
* config/ia64/ia64.c (ia64_expand_load_address): Generate it.

From-SVN: r176280

gcc/ChangeLog
gcc/config/ia64/ia64.c
gcc/config/ia64/ia64.md

index 5ffb0dc644e525b9aa9e3e28511e05abb6fc3989..a4a1a23d3f4758738877086ba56fb75a55863cd2 100644 (file)
@@ -1,5 +1,11 @@
+2011-07-14  Bernd Schmidt  <bernds@codesourcery.com>
+
+       PR rtl-optimization/11320
+       * config/ia64/ia64.md (load_symptr_low): Show a MEM.
+       * config/ia64/ia64.c (ia64_expand_load_address): Generate it.
+
 2011-07-14  Georg-Johann Lay  <avr@gjlay.de>
-       
+
        PR target/49487
        * config/avr/avr.md (rotl<mode>3): Generate SCRATCH instead
        of REG.
index 2ebb225ec8b9777eeb769058e5e002a1492aa4ec..c21eb9643ac7d8836b7f921b56e843724213d515 100644 (file)
@@ -1047,7 +1047,7 @@ ia64_expand_load_address (rtx dest, rtx src)
       tmp = gen_rtx_PLUS (Pmode, tmp, pic_offset_table_rtx);
       emit_insn (gen_rtx_SET (VOIDmode, dest, tmp));
 
-      tmp = gen_rtx_LO_SUM (Pmode, dest, src);
+      tmp = gen_rtx_LO_SUM (Pmode, gen_const_mem (Pmode, dest), src);
       emit_insn (gen_rtx_SET (VOIDmode, dest, tmp));
 
       if (addend)
index c258ca5b7a54e43cb86ef98020ac2e38b9566e24..46eebc25ad8bdade7e854542485a4434986a1ccb 100644 (file)
 
 (define_insn "*load_symptr_low"
   [(set (match_operand:DI 0 "register_operand" "=r")
-       (lo_sum:DI (match_operand:DI 1 "register_operand" "r")
+       (lo_sum:DI (mem:DI (match_operand:DI 1 "register_operand" "r"))
                   (match_operand 2 "got_symbolic_operand" "s")))]
   "reload_completed"
 {