aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/pa
diff options
context:
space:
mode:
authorTorbjorn Granlund <tege@gnu.org>1992-09-01 15:38:03 +0000
committerTorbjorn Granlund <tege@gnu.org>1992-09-01 15:38:03 +0000
commit498ee10c6a1a15f8b06cafa63ef925b6f81e12c3 (patch)
tree4a25268a743cef08a6611315fe4db43a98077997 /gcc/config/pa
parent663216865f55ee324407cb57d2959d500111a5de (diff)
downloadgcc-498ee10c6a1a15f8b06cafa63ef925b6f81e12c3.zip
gcc-498ee10c6a1a15f8b06cafa63ef925b6f81e12c3.tar.gz
gcc-498ee10c6a1a15f8b06cafa63ef925b6f81e12c3.tar.bz2
(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
Diffstat (limited to 'gcc/config/pa')
-rw-r--r--gcc/config/pa/pa.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/gcc/config/pa/pa.c b/gcc/config/pa/pa.c
index 1e5a98e..aff943c 100644
--- a/gcc/config/pa/pa.c
+++ b/gcc/config/pa/pa.c
@@ -905,10 +905,10 @@ output_move_double (operands)
/* XXX THIS PROBABLY DOESN'T WORK. */
/* Do the late half first. */
if (addreg1)
- output_asm_insn ("addi 4,%0", &addreg1);
+ output_asm_insn ("ldo 4(%0),%0", &addreg1);
output_asm_insn (singlemove_string (latehalf), latehalf);
if (addreg1)
- output_asm_insn ("addi -4,%0", &addreg1);
+ output_asm_insn ("ldo -4(%0),%0", &addreg1);
/* Then clobber. */
return singlemove_string (operands);
}
@@ -926,18 +926,18 @@ output_move_double (operands)
/* Make any unoffsettable addresses point at high-numbered word. */
if (addreg0)
- output_asm_insn ("addi 4,%0", &addreg0);
+ output_asm_insn ("ldo 4(%0),%0", &addreg0);
if (addreg1)
- output_asm_insn ("addi 4,%0", &addreg1);
+ output_asm_insn ("ldo 4(%0),%0", &addreg1);
/* Do that word. */
output_asm_insn (singlemove_string (latehalf), latehalf);
/* Undo the adds we just did. */
if (addreg0)
- output_asm_insn ("addi -4,%0", &addreg0);
+ output_asm_insn ("ldo -4(%0),%0", &addreg0);
if (addreg1)
- output_asm_insn ("addi -4,%0", &addreg1);
+ output_asm_insn ("ldo -4(%0),%0", &addreg1);
return "";
}
@@ -1078,7 +1078,7 @@ output_load_address (operands)
if (offset == const0_rtx)
output_asm_insn ("add %6,%7,%0", operands);
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
output_asm_insn ("addil L'%8,%6\n\tldo R'%8(1),%0\n\tadd %0,%7,%0", operands);
}