Commit 498ee10c by Torbjorn Granlund

(output_move_double): Use `ldo' for immediate adds (instead of `addi' with bad syntax).

(output_move_double): Use `ldo' for immediate adds (instead of
`addi' with bad syntax).
(output_load_address): Likewise.

From-SVN: r2013
parent 66321686
...@@ -905,10 +905,10 @@ output_move_double (operands) ...@@ -905,10 +905,10 @@ output_move_double (operands)
/* XXX THIS PROBABLY DOESN'T WORK. */ /* XXX THIS PROBABLY DOESN'T WORK. */
/* Do the late half first. */ /* Do the late half first. */
if (addreg1) if (addreg1)
output_asm_insn ("addi 4,%0", &addreg1); output_asm_insn ("ldo 4(%0),%0", &addreg1);
output_asm_insn (singlemove_string (latehalf), latehalf); output_asm_insn (singlemove_string (latehalf), latehalf);
if (addreg1) if (addreg1)
output_asm_insn ("addi -4,%0", &addreg1); output_asm_insn ("ldo -4(%0),%0", &addreg1);
/* Then clobber. */ /* Then clobber. */
return singlemove_string (operands); return singlemove_string (operands);
} }
...@@ -926,18 +926,18 @@ output_move_double (operands) ...@@ -926,18 +926,18 @@ output_move_double (operands)
/* Make any unoffsettable addresses point at high-numbered word. */ /* Make any unoffsettable addresses point at high-numbered word. */
if (addreg0) if (addreg0)
output_asm_insn ("addi 4,%0", &addreg0); output_asm_insn ("ldo 4(%0),%0", &addreg0);
if (addreg1) if (addreg1)
output_asm_insn ("addi 4,%0", &addreg1); output_asm_insn ("ldo 4(%0),%0", &addreg1);
/* Do that word. */ /* Do that word. */
output_asm_insn (singlemove_string (latehalf), latehalf); output_asm_insn (singlemove_string (latehalf), latehalf);
/* Undo the adds we just did. */ /* Undo the adds we just did. */
if (addreg0) if (addreg0)
output_asm_insn ("addi -4,%0", &addreg0); output_asm_insn ("ldo -4(%0),%0", &addreg0);
if (addreg1) if (addreg1)
output_asm_insn ("addi -4,%0", &addreg1); output_asm_insn ("ldo -4(%0),%0", &addreg1);
return ""; return "";
} }
...@@ -1078,7 +1078,7 @@ output_load_address (operands) ...@@ -1078,7 +1078,7 @@ output_load_address (operands)
if (offset == const0_rtx) if (offset == const0_rtx)
output_asm_insn ("add %6,%7,%0", operands); output_asm_insn ("add %6,%7,%0", operands);
else if (INT_14_BITS (offset)) else if (INT_14_BITS (offset))
output_asm_insn ("add %6,%7,%0\n\taddi %8,%0", operands); output_asm_insn ("add %6,%7,%0\n\tldo %8(%0),%0", operands);
else else
output_asm_insn ("addil L'%8,%6\n\tldo R'%8(1),%0\n\tadd %0,%7,%0", operands); output_asm_insn ("addil L'%8,%6\n\tldo R'%8(1),%0\n\tadd %0,%7,%0", operands);
} }
......
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