mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-19 17:18:24 +08:00
* config/tc-mips.c (my_getExpression): In mips16 mode, if it looks
like the expression was based on `.', adjust the value of the symbol.
This commit is contained in:
@ -1,5 +1,9 @@
|
||||
Wed Feb 12 14:36:29 1997 Ian Lance Taylor <ian@cygnus.com>
|
||||
|
||||
* config/tc-mips.c (my_getExpression): In mips16 mode, if it looks
|
||||
like the expression was based on `.', adjust the value of the
|
||||
symbol.
|
||||
|
||||
* 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.
|
||||
|
@ -7692,6 +7692,19 @@ my_getExpression (ep, str)
|
||||
expression (ep);
|
||||
expr_end = input_line_pointer;
|
||||
input_line_pointer = save_in;
|
||||
|
||||
/* If we are in mips16 mode, and this is an expression based on `.',
|
||||
then we bump the value of the symbol by 1 since that is how other
|
||||
text symbols are handled. We don't bother to handle complex
|
||||
expressions, just `.' plus or minus a constant. */
|
||||
if (mips16
|
||||
&& ep->X_op == O_symbol
|
||||
&& strcmp (S_GET_NAME (ep->X_add_symbol), FAKE_LABEL_NAME) == 0
|
||||
&& S_GET_SEGMENT (ep->X_add_symbol) == now_seg
|
||||
&& ep->X_add_symbol->sy_frag == frag_now
|
||||
&& ep->X_add_symbol->sy_value.X_op == O_constant
|
||||
&& ep->X_add_symbol->sy_value.X_add_number == frag_now_fix ())
|
||||
++ep->X_add_symbol->sy_value.X_add_number;
|
||||
}
|
||||
|
||||
/* Turn a string in input_line_pointer into a floating point constant
|
||||
|
Reference in New Issue
Block a user