mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-24 04:00:07 +08:00
MIPS16/GAS: Rename the LONG_BRANCH relaxation flag
Following commit 177b4a6ad004 ("infinite loop in mips16 assembler relaxation"), <https://sourceware.org/ml/binutils/2002-03/msg00345.html> the LONG_BRANCH flag used in MIPS16 relaxation has lost its use for branches. Complement commit 88a7ef168927 ("MIPS16/GAS: Restore unsupported relocation diagnostics") then, which has removed the remains of code deactivated by the former commit, and rename the flag to ALWAYS_EXTENDED, more accurately reflecting its current use to select the extended form of PC-relative ADDIU, DADDIU, LD and LW instructions. gas/ * config/tc-mips.c (RELAX_MIPS16_LONG_BRANCH): Rename to... (RELAX_MIPS16_ALWAYS_EXTENDED): ... this. (RELAX_MIPS16_MARK_LONG_BRANCH): Rename to... (RELAX_MIPS16_MARK_ALWAYS_EXTENDED): ... this. (RELAX_MIPS16_CLEAR_LONG_BRANCH): Rename to... (RELAX_MIPS16_CLEAR_ALWAYS_EXTENDED): ... this. (mips16_extended_frag): Adjust accordingly.
This commit is contained in:
@ -1,3 +1,13 @@
|
|||||||
|
2017-04-27 Maciej W. Rozycki <macro@imgtec.com>
|
||||||
|
|
||||||
|
* config/tc-mips.c (RELAX_MIPS16_LONG_BRANCH): Rename to...
|
||||||
|
(RELAX_MIPS16_ALWAYS_EXTENDED): ... this.
|
||||||
|
(RELAX_MIPS16_MARK_LONG_BRANCH): Rename to...
|
||||||
|
(RELAX_MIPS16_MARK_ALWAYS_EXTENDED): ... this.
|
||||||
|
(RELAX_MIPS16_CLEAR_LONG_BRANCH): Rename to...
|
||||||
|
(RELAX_MIPS16_CLEAR_ALWAYS_EXTENDED): ... this.
|
||||||
|
(mips16_extended_frag): Adjust accordingly.
|
||||||
|
|
||||||
2017-04-27 Alan Modra <amodra@gmail.com>
|
2017-04-27 Alan Modra <amodra@gmail.com>
|
||||||
|
|
||||||
* symbols.c (S_FORCE_RELOC): Separate section and symbol tests.
|
* symbols.c (S_FORCE_RELOC): Separate section and symbol tests.
|
||||||
|
@ -1146,9 +1146,9 @@ static bfd_boolean mips_ignore_branch_isa;
|
|||||||
#define RELAX_MIPS16_EXTENDED(i) (((i) & 0x1000) != 0)
|
#define RELAX_MIPS16_EXTENDED(i) (((i) & 0x1000) != 0)
|
||||||
#define RELAX_MIPS16_MARK_EXTENDED(i) ((i) | 0x1000)
|
#define RELAX_MIPS16_MARK_EXTENDED(i) ((i) | 0x1000)
|
||||||
#define RELAX_MIPS16_CLEAR_EXTENDED(i) ((i) &~ 0x1000)
|
#define RELAX_MIPS16_CLEAR_EXTENDED(i) ((i) &~ 0x1000)
|
||||||
#define RELAX_MIPS16_LONG_BRANCH(i) (((i) & 0x2000) != 0)
|
#define RELAX_MIPS16_ALWAYS_EXTENDED(i) (((i) & 0x2000) != 0)
|
||||||
#define RELAX_MIPS16_MARK_LONG_BRANCH(i) ((i) | 0x2000)
|
#define RELAX_MIPS16_MARK_ALWAYS_EXTENDED(i) ((i) | 0x2000)
|
||||||
#define RELAX_MIPS16_CLEAR_LONG_BRANCH(i) ((i) &~ 0x2000)
|
#define RELAX_MIPS16_CLEAR_ALWAYS_EXTENDED(i) ((i) & ~0x2000)
|
||||||
|
|
||||||
/* For microMIPS code, we use relaxation similar to one we use for
|
/* For microMIPS code, we use relaxation similar to one we use for
|
||||||
MIPS16 code. Some instructions that take immediate values support
|
MIPS16 code. Some instructions that take immediate values support
|
||||||
@ -17216,7 +17216,7 @@ mips16_extended_frag (fragS *fragp, asection *sec, long stretch)
|
|||||||
addressT addr;
|
addressT addr;
|
||||||
offsetT maxtiny;
|
offsetT maxtiny;
|
||||||
|
|
||||||
if (RELAX_MIPS16_LONG_BRANCH (fragp->fr_subtype))
|
if (RELAX_MIPS16_ALWAYS_EXTENDED (fragp->fr_subtype))
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
pcrel_op = (const struct mips_pcrel_operand *) operand;
|
pcrel_op = (const struct mips_pcrel_operand *) operand;
|
||||||
@ -17289,7 +17289,7 @@ mips16_extended_frag (fragS *fragp, asection *sec, long stretch)
|
|||||||
if ((val & ((1 << operand->shift) - 1)) != 0)
|
if ((val & ((1 << operand->shift) - 1)) != 0)
|
||||||
{
|
{
|
||||||
fragp->fr_subtype =
|
fragp->fr_subtype =
|
||||||
RELAX_MIPS16_MARK_LONG_BRANCH (fragp->fr_subtype);
|
RELAX_MIPS16_MARK_ALWAYS_EXTENDED (fragp->fr_subtype);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -17310,7 +17310,7 @@ mips16_extended_frag (fragS *fragp, asection *sec, long stretch)
|
|||||||
&& ! RELAX_MIPS16_EXTENDED (fragp->fr_subtype))
|
&& ! RELAX_MIPS16_EXTENDED (fragp->fr_subtype))
|
||||||
{
|
{
|
||||||
fragp->fr_subtype =
|
fragp->fr_subtype =
|
||||||
RELAX_MIPS16_MARK_LONG_BRANCH (fragp->fr_subtype);
|
RELAX_MIPS16_MARK_ALWAYS_EXTENDED (fragp->fr_subtype);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user