Browse Source

* config/tc-bfin.c (Expr_Node_Gen_Reloc): If have symbol + constant,

make a single reloc with an offset rather than a stack.
	* config/tc-bfin.h (MD_APPLY_SYM_VALUE): Define to 0.
readline_5_1-import-branch
Bernd Schmidt 21 years ago
parent
commit
beb6bfe84a
  1. 6
      gas/ChangeLog
  2. 15
      gas/config/tc-bfin.c
  3. 3
      gas/config/tc-bfin.h

6
gas/ChangeLog

@ -1,3 +1,9 @@
2005-10-24 Bernd Schmidt <bernd.schmidt@analog.com>
* config/tc-bfin.c (Expr_Node_Gen_Reloc): If have symbol + constant,
make a single reloc with an offset rather than a stack.
* config/tc-bfin.h (MD_APPLY_SYM_VALUE): Define to 0.
2005-10-24 Alexandre Oliva <aoliva@redhat.com>
* read.c (potable): Add weakref.

15
gas/config/tc-bfin.c

@ -1003,6 +1003,21 @@ Expr_Node_Gen_Reloc (Expr_Node * head, int parent_reloc)
if (note1 != NULL_CODE)
note = conscode (note1, note);
}
else if (head->type == Expr_Node_Binop
&& (head->value.op_value == Expr_Op_Type_Add
|| head->value.op_value == Expr_Op_Type_Sub)
&& head->Left_Child->type == Expr_Node_Reloc
&& head->Right_Child->type == Expr_Node_Constant)
{
int val = head->Right_Child->value.i_value;
if (head->value.op_value == Expr_Op_Type_Sub)
val = -val;
note = conscode (note_reloc2 (gencode (0), head->Left_Child->value.s_value,
parent_reloc, val, 0),
NULL_CODE);
if (note1 != NULL_CODE)
note = conscode (note1, note);
}
else
{
/* Call the recursive function. */

3
gas/config/tc-bfin.h

@ -72,4 +72,7 @@ extern int bfin_force_relocation PARAMS ((struct fix *));
#define MD_PCREL_FROM_SECTION(FIX, SEC) md_pcrel_from_section (FIX, SEC)
extern long md_pcrel_from_section PARAMS ((struct fix *, segT));
/* Values passed to md_apply_fix3 don't include symbol values. */
#define MD_APPLY_SYM_VALUE(FIX) 0
/* end of tc-bfin.h */

Loading…
Cancel
Save