Commit b5cc037f by Richard Earnshaw

(arm_reload_out_hi): Rewrite.

(arm_reload_out_hi): Rewrite.  Add support for processors running in
big-endian mode.
(fp_immediate_constant): Fix typo in argument declaration.

From-SVN: r7449
parent fe241a29
...@@ -794,17 +794,26 @@ arm_reload_out_hi (operands) ...@@ -794,17 +794,26 @@ arm_reload_out_hi (operands)
{ {
rtx base = find_replacement (&XEXP (operands[0], 0)); rtx base = find_replacement (&XEXP (operands[0], 0));
emit_insn (gen_rtx (SET, VOIDmode, if (BYTES_BIG_ENDIAN)
gen_rtx (MEM, QImode, base), {
gen_rtx (SUBREG, QImode, operands[1], 0))); emit_insn (gen_movqi (gen_rtx (MEM, QImode, plus_constant (base, 1)),
emit_insn (gen_rtx (SET, VOIDmode, operands[2], gen_rtx (SUBREG, QImode, operands[1], 0)));
gen_rtx (LSHIFTRT, SImode, emit_insn (gen_lshrsi3 (operands[2],
gen_rtx (SUBREG, SImode, operands[1], 0), gen_rtx (SUBREG, SImode, operands[1], 0),
GEN_INT (8)))); GEN_INT (8)));
emit_insn (gen_rtx (SET, VOIDmode, emit_insn (gen_movqi (gen_rtx (MEM, QImode, base),
gen_rtx (MEM, QImode, gen_rtx (SUBREG, QImode, operands[2], 0)));
plus_constant (base, 1)), }
gen_rtx (SUBREG, QImode, operands[2], 0))); else
{
emit_insn (gen_movqi (gen_rtx (MEM, QImode, base),
gen_rtx (SUBREG, QImode, operands[1], 0)));
emit_insn (gen_lshrsi3 (operands[2],
gen_rtx (SUBREG, SImode, operands[1], 0),
GEN_INT (8)));
emit_insn (gen_movqi (gen_rtx (MEM, QImode, plus_constant (base, 1)),
gen_rtx (SUBREG, QImode, operands[2], 0)));
}
} }
/* Check to see if a branch is forwards or backwards. Return TRUE if it /* Check to see if a branch is forwards or backwards. Return TRUE if it
...@@ -845,7 +854,7 @@ arm_insn_not_targeted (insn) ...@@ -845,7 +854,7 @@ arm_insn_not_targeted (insn)
when cross compiling. */ when cross compiling. */
char * char *
fp_immediate_constant (x) fp_immediate_constant (x)
rtx (x); rtx x;
{ {
REAL_VALUE_TYPE r; REAL_VALUE_TYPE r;
int i; int i;
......
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