* 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:
parent
ed3eb78691
commit
035936da05
@ -1,5 +1,11 @@
|
||||
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".
|
||||
(s_insn): New static function.
|
||||
* doc/c-mips.texi: Document .insn.
|
||||
|
@ -1493,7 +1493,15 @@ append_insn (place, ip, address_expr, reloc_type, unmatched_hi)
|
||||
f = frag_more (2);
|
||||
}
|
||||
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;
|
||||
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. */
|
||||
prev_insn = *ip;
|
||||
prev_insn_reloc_type = reloc_type;
|
||||
prev_insn_valid = 1;
|
||||
}
|
||||
|
||||
/* 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);
|
||||
}
|
||||
|
||||
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);
|
||||
|
||||
if (target_big_endian)
|
||||
|
Loading…
x
Reference in New Issue
Block a user