mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-26 05:47:26 +08:00
* config/tc-mips.c (append_insn): Warn about an attempt to put an
extended instruction in a delay slot when not reordering. Set prev_insn_valid even if not reordering. (md_convert_frag): Warn if an extended instruction appears in a delay slot.
This commit is contained in:
@ -1,5 +1,11 @@
|
|||||||
Wed Feb 12 14:36:29 1997 Ian Lance Taylor <ian@cygnus.com>
|
Wed Feb 12 14:36:29 1997 Ian Lance Taylor <ian@cygnus.com>
|
||||||
|
|
||||||
|
* config/tc-mips.c (append_insn): Warn about an attempt to put an
|
||||||
|
extended instruction in a delay slot when not reordering. Set
|
||||||
|
prev_insn_valid even if not reordering.
|
||||||
|
(md_convert_frag): Warn if an extended instruction appears in a
|
||||||
|
delay slot.
|
||||||
|
|
||||||
* config/tc-mips.c (mips_pseudo_table): Add "insn".
|
* config/tc-mips.c (mips_pseudo_table): Add "insn".
|
||||||
(s_insn): New static function.
|
(s_insn): New static function.
|
||||||
* doc/c-mips.texi: Document .insn.
|
* doc/c-mips.texi: Document .insn.
|
||||||
|
@ -1493,7 +1493,15 @@ append_insn (place, ip, address_expr, reloc_type, unmatched_hi)
|
|||||||
f = frag_more (2);
|
f = frag_more (2);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
f = frag_more (4);
|
{
|
||||||
|
if (mips16
|
||||||
|
&& mips_noreorder
|
||||||
|
&& (prev_pinfo & INSN_UNCOND_BRANCH_DELAY) != 0)
|
||||||
|
as_warn ("extended instruction in delay slot");
|
||||||
|
|
||||||
|
f = frag_more (4);
|
||||||
|
}
|
||||||
|
|
||||||
fixp = NULL;
|
fixp = NULL;
|
||||||
if (address_expr != NULL && reloc_type < BFD_RELOC_UNUSED)
|
if (address_expr != NULL && reloc_type < BFD_RELOC_UNUSED)
|
||||||
{
|
{
|
||||||
@ -1980,6 +1988,7 @@ append_insn (place, ip, address_expr, reloc_type, unmatched_hi)
|
|||||||
PC relative relocs. */
|
PC relative relocs. */
|
||||||
prev_insn = *ip;
|
prev_insn = *ip;
|
||||||
prev_insn_reloc_type = reloc_type;
|
prev_insn_reloc_type = reloc_type;
|
||||||
|
prev_insn_valid = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* We just output an insn, so the next one doesn't have a label. */
|
/* We just output an insn, so the next one doesn't have a label. */
|
||||||
@ -9969,6 +9978,12 @@ md_convert_frag (abfd, asec, fragp)
|
|||||||
record_alignment (asec, op->shift);
|
record_alignment (asec, op->shift);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (ext
|
||||||
|
&& (RELAX_MIPS16_JAL_DSLOT (fragp->fr_subtype)
|
||||||
|
|| RELAX_MIPS16_DSLOT (fragp->fr_subtype)))
|
||||||
|
as_warn_where (fragp->fr_file, fragp->fr_line,
|
||||||
|
"extended instruction in delay slot");
|
||||||
|
|
||||||
buf = (bfd_byte *) (fragp->fr_literal + fragp->fr_fix);
|
buf = (bfd_byte *) (fragp->fr_literal + fragp->fr_fix);
|
||||||
|
|
||||||
if (target_big_endian)
|
if (target_big_endian)
|
||||||
|
Reference in New Issue
Block a user