mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-23 11:39:26 +08:00
* config/tc-mips.c (macro): Subtract 8 from offset in non PIC l.d
case. See comment.
This commit is contained in:
@ -1,3 +1,8 @@
|
|||||||
|
Wed Dec 1 12:10:41 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
|
||||||
|
|
||||||
|
* config/tc-mips.c (macro): Subtract 8 from offset in non PIC l.d
|
||||||
|
case. See comment.
|
||||||
|
|
||||||
Tue Nov 30 13:40:30 1993 Jeffrey A. Law (law@snake.cs.utah.edu)
|
Tue Nov 30 13:40:30 1993 Jeffrey A. Law (law@snake.cs.utah.edu)
|
||||||
|
|
||||||
* write.c (TC_FORCE_RELOCATION): Provide a default definition.
|
* write.c (TC_FORCE_RELOCATION): Provide a default definition.
|
||||||
|
@ -924,6 +924,9 @@ append_insn (place, ip, address_expr, reloc_type)
|
|||||||
there are any branches to anything other than a
|
there are any branches to anything other than a
|
||||||
label, users must use .set noreorder. */
|
label, users must use .set noreorder. */
|
||||||
|| insn_label != NULL
|
|| insn_label != NULL
|
||||||
|
/* If the previous instruction is in a variant frag, we
|
||||||
|
can not do the swap. */
|
||||||
|
|| prev_insn_frag->fr_type == rs_machine_dependent
|
||||||
/* If the branch reads the condition codes, we don't
|
/* If the branch reads the condition codes, we don't
|
||||||
even try to swap, because in the sequence
|
even try to swap, because in the sequence
|
||||||
ctc1 $X,$31
|
ctc1 $X,$31
|
||||||
@ -3009,7 +3012,16 @@ macro (ip)
|
|||||||
! used_at && mips_noat),
|
! used_at && mips_noat),
|
||||||
offset_expr.X_add_symbol, (long) 0,
|
offset_expr.X_add_symbol, (long) 0,
|
||||||
(char *) NULL);
|
(char *) NULL);
|
||||||
offset_expr.X_add_number -= 4;
|
|
||||||
|
/* We just generated two relocs. When tc_gen_reloc
|
||||||
|
handles this case, it will skip the first reloc and
|
||||||
|
handle the second. The second reloc already has an
|
||||||
|
extra addend of 4, which we added above. We must
|
||||||
|
subtract it out, and then subtract another 4 to make
|
||||||
|
the first reloc come out right. The second reloc
|
||||||
|
will come out right because we are going to add 4 to
|
||||||
|
offset_expr when we build its instruction below. */
|
||||||
|
offset_expr.X_add_number -= 8;
|
||||||
offset_expr.X_op = O_constant;
|
offset_expr.X_op = O_constant;
|
||||||
}
|
}
|
||||||
macro_build_lui (p, &icnt, &offset_expr, AT);
|
macro_build_lui (p, &icnt, &offset_expr, AT);
|
||||||
|
Reference in New Issue
Block a user