Commit 46aaf10d by David Edelsohn

[multiple changes]

2001-11-04  Alan Modra  <amodra@bigpond.net.au>

        * config/rs6000/rs6000.md (load_toc_aix_{si,di}): Mark r2 as used.

2001-11-04  David Edelsohn  <edelsohn@gnu.org>

        * config/rs6000/rs6000.c (rs6000_emit_move): Handle 64-bit
        mode as well.  Do not explicitly create intermediate regs.

From-SVN: r46777
parent 5f37d07c
2001-11-04 Alan Modra <amodra@bigpond.net.au>
* config/rs6000/rs6000.md (load_toc_aix_{si,di}): Mark r2 as used.
2001-11-04 David Edelsohn <edelsohn@gnu.org>
* config/rs6000/rs6000.c (rs6000_emit_move): Handle 64-bit
mode as well. Do not explicitly create intermediate regs.
2001-11-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2001-11-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* arm/aof.h (aof_text_section, aof_data_section): Don't declare. * arm/aof.h (aof_text_section, aof_data_section): Don't declare.
......
...@@ -1811,17 +1811,23 @@ rs6000_emit_move (dest, source, mode) ...@@ -1811,17 +1811,23 @@ rs6000_emit_move (dest, source, mode)
if (GET_CODE (operands[0]) == MEM if (GET_CODE (operands[0]) == MEM
&& GET_CODE (operands[1]) == MEM && GET_CODE (operands[1]) == MEM
&& mode == DImode && mode == DImode
&& ! TARGET_POWERPC64
&& (SLOW_UNALIGNED_ACCESS(DImode, MEM_ALIGN(operands[0])) && (SLOW_UNALIGNED_ACCESS(DImode, MEM_ALIGN(operands[0]))
|| SLOW_UNALIGNED_ACCESS(DImode, MEM_ALIGN(operands[1])))) || SLOW_UNALIGNED_ACCESS(DImode, MEM_ALIGN(operands[1]))))
{ {
rtx reg1, reg2; if (!TARGET_POWERPC64)
reg1 = gen_reg_rtx(SImode); {
reg2 = gen_reg_rtx(SImode); emit_move_insn (simplify_subreg (SImode, operands[0], DImode, 0),
rs6000_emit_move (reg1, simplify_subreg (SImode, operands[1], DImode, 0), SImode); simplify_subreg (SImode, operands[1], DImode, 0));
rs6000_emit_move (reg2, simplify_subreg (SImode, operands[1], DImode, 4), SImode); emit_move_insn (simplify_subreg (SImode, operands[0], DImode, 4),
rs6000_emit_move (simplify_subreg (SImode, operands[0], DImode, 0), reg1, SImode); simplify_subreg (SImode, operands[1], DImode, 4));
rs6000_emit_move (simplify_subreg (SImode, operands[0], DImode, 4), reg2, SImode); }
else
{
emit_move_insn (gen_lowpart (SImode, operands[0]),
gen_lowpart (SImode, operands[1]));
emit_move_insn (gen_highpart (SImode, operands[0]),
gen_highpart (SImode, operands[1]));
}
return; return;
} }
......
...@@ -9077,8 +9077,9 @@ ...@@ -9077,8 +9077,9 @@
;; Code to initialize the TOC register... ;; Code to initialize the TOC register...
(define_insn "load_toc_aix_si" (define_insn "load_toc_aix_si"
[(set (match_operand:SI 0 "register_operand" "=r") [(parallel [(set (match_operand:SI 0 "register_operand" "=r")
(unspec:SI [(const_int 0)] 7))] (unspec:SI [(const_int 0)] 7))
(use (reg:SI 2))])]
"DEFAULT_ABI == ABI_AIX && TARGET_32BIT" "DEFAULT_ABI == ABI_AIX && TARGET_32BIT"
"* "*
{ {
...@@ -9091,8 +9092,9 @@ ...@@ -9091,8 +9092,9 @@
[(set_attr "type" "load")]) [(set_attr "type" "load")])
(define_insn "load_toc_aix_di" (define_insn "load_toc_aix_di"
[(set (match_operand:DI 0 "register_operand" "=r") [(parallel [(set (match_operand:DI 0 "register_operand" "=r")
(unspec:DI [(const_int 0)] 7))] (unspec:DI [(const_int 0)] 7))
(use (reg:DI 2))])]
"DEFAULT_ABI == ABI_AIX && TARGET_64BIT" "DEFAULT_ABI == ABI_AIX && TARGET_64BIT"
"* "*
{ {
......
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