mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-08-26 07:19:16 +08:00
* config/tc-mips.c (macro): Correct handling of constant in M_LI_D
case in little endian mode.
This commit is contained in:
@ -1,3 +1,8 @@
|
|||||||
|
Wed Oct 22 12:51:18 1997 Ian Lance Taylor <ian@cygnus.com>
|
||||||
|
|
||||||
|
* config/tc-mips.c (macro): Correct handling of constant in M_LI_D
|
||||||
|
case in little endian mode.
|
||||||
|
|
||||||
Tue Oct 21 10:20:11 1997 Doug Evans <devans@canuck.cygnus.com>
|
Tue Oct 21 10:20:11 1997 Doug Evans <devans@canuck.cygnus.com>
|
||||||
|
|
||||||
* config/tc-sparc.c (md_apply_fix3, cases ..._H44, ..._HIX22): Leave
|
* config/tc-sparc.c (md_apply_fix3, cases ..._H44, ..._HIX22): Leave
|
||||||
|
@ -4976,16 +4976,35 @@ macro (ip)
|
|||||||
or in offset_expr. */
|
or in offset_expr. */
|
||||||
if (imm_expr.X_op == O_constant || imm_expr.X_op == O_big)
|
if (imm_expr.X_op == O_constant || imm_expr.X_op == O_big)
|
||||||
{
|
{
|
||||||
load_register (&icnt, treg, &imm_expr, mips_opts.isa >= 3);
|
if (mips_opts.isa >= 3)
|
||||||
if (mips_opts.isa < 3 && treg != 31)
|
load_register (&icnt, treg, &imm_expr, 1);
|
||||||
|
else
|
||||||
{
|
{
|
||||||
if (offset_expr.X_op == O_absent)
|
int hreg, lreg;
|
||||||
macro_build ((char *) NULL, &icnt, NULL, "move", "d,s",
|
|
||||||
treg + 1, 0);
|
if (target_big_endian)
|
||||||
|
{
|
||||||
|
hreg = treg;
|
||||||
|
lreg = treg + 1;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
assert (offset_expr.X_op == O_constant);
|
hreg = treg + 1;
|
||||||
load_register (&icnt, treg + 1, &offset_expr, 0);
|
lreg = treg;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (hreg <= 31)
|
||||||
|
load_register (&icnt, hreg, &imm_expr, 0);
|
||||||
|
if (lreg <= 31)
|
||||||
|
{
|
||||||
|
if (offset_expr.X_op == O_absent)
|
||||||
|
macro_build ((char *) NULL, &icnt, NULL, "move", "d,s",
|
||||||
|
lreg, 0);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
assert (offset_expr.X_op == O_constant);
|
||||||
|
load_register (&icnt, lreg, &offset_expr, 0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
|
Reference in New Issue
Block a user