diff options
Diffstat (limited to 'gas/config/tc-score7.c')
-rw-r--r-- | gas/config/tc-score7.c | 25 |
1 files changed, 11 insertions, 14 deletions
diff --git a/gas/config/tc-score7.c b/gas/config/tc-score7.c index 12271a3..367d09c 100644 --- a/gas/config/tc-score7.c +++ b/gas/config/tc-score7.c @@ -27,7 +27,6 @@ #include "subsegs.h" #include "safe-ctype.h" #include "opcode/score-inst.h" -#include "struc-symbol.h" #include "libiberty.h" #ifdef OBJ_ELF @@ -4200,7 +4199,7 @@ s7_build_la_pic (int reg_rd, expressionS exp) /* Fix part For an external symbol: lw rD, <sym>($gp) (BFD_RELOC_SCORE_GOT15 or BFD_RELOC_SCORE_CALL15) */ - sprintf (tmp, "lw_pic r%d, %s", reg_rd, add_symbol->bsym->name); + sprintf (tmp, "lw_pic r%d, %s", reg_rd, S_GET_NAME (add_symbol)); if (s7_append_insn (tmp, FALSE) == (int) s7_FAIL) return; @@ -4214,7 +4213,7 @@ s7_build_la_pic (int reg_rd, expressionS exp) addi rD, <sym> (BFD_RELOC_GOT_LO16) */ s7_inst.reloc.type = BFD_RELOC_SCORE_GOT15; memcpy (&var_insts[0], &s7_inst, sizeof (struct s7_score_it)); - sprintf (tmp, "addi_s_pic r%d, %s", reg_rd, add_symbol->bsym->name); + sprintf (tmp, "addi_s_pic r%d, %s", reg_rd, S_GET_NAME (add_symbol)); if (s7_append_insn (tmp, FALSE) == (int) s7_FAIL) return; @@ -4224,7 +4223,7 @@ s7_build_la_pic (int reg_rd, expressionS exp) else if (add_number >= -0x8000 && add_number <= 0x7fff) { /* Insn 1: lw rD, <sym>($gp) (BFD_RELOC_SCORE_GOT15) */ - sprintf (tmp, "lw_pic r%d, %s", reg_rd, add_symbol->bsym->name); + sprintf (tmp, "lw_pic r%d, %s", reg_rd, S_GET_NAME (add_symbol)); if (s7_append_insn (tmp, TRUE) == (int) s7_FAIL) return; @@ -4241,7 +4240,8 @@ s7_build_la_pic (int reg_rd, expressionS exp) /* Var part For a local symbol: addi rD, <sym>+<constant> (BFD_RELOC_GOT_LO16) */ - sprintf (tmp, "addi_s_pic r%d, %s + %d", reg_rd, add_symbol->bsym->name, (int) add_number); + sprintf (tmp, "addi_s_pic r%d, %s + %d", reg_rd, + S_GET_NAME (add_symbol), (int) add_number); if (s7_append_insn (tmp, FALSE) == (int) s7_FAIL) return; @@ -4254,7 +4254,7 @@ s7_build_la_pic (int reg_rd, expressionS exp) int lo = add_number & 0x0000FFFF; /* Insn 1: lw rD, <sym>($gp) (BFD_RELOC_SCORE_GOT15) */ - sprintf (tmp, "lw_pic r%d, %s", reg_rd, add_symbol->bsym->name); + sprintf (tmp, "lw_pic r%d, %s", reg_rd, S_GET_NAME (add_symbol)); if (s7_append_insn (tmp, TRUE) == (int) s7_FAIL) return; @@ -4296,7 +4296,7 @@ s7_build_la_pic (int reg_rd, expressionS exp) /* Var part For a local symbol: addi r1, <sym>+LO%<constant> (BFD_RELOC_GOT_LO16) */ - sprintf (tmp, "addi_u_pic r1, %s + %d", add_symbol->bsym->name, lo); + sprintf (tmp, "addi_u_pic r1, %s + %d", S_GET_NAME (add_symbol), lo); if (s7_append_insn (tmp, FALSE) == (int) s7_FAIL) return; @@ -4661,7 +4661,7 @@ s7_build_lwst_pic (int reg_rd, expressionS exp, const char *insn_name) /* Fix part For an external symbol: lw rD, <sym>($gp) (BFD_RELOC_SCORE_GOT15) */ - sprintf (tmp, "lw_pic r1, %s", add_symbol->bsym->name); + sprintf (tmp, "lw_pic r1, %s", S_GET_NAME (add_symbol)); if (s7_append_insn (tmp, FALSE) == (int) s7_FAIL) return; @@ -4673,7 +4673,7 @@ s7_build_lwst_pic (int reg_rd, expressionS exp, const char *insn_name) addi rD, <sym> (BFD_RELOC_GOT_LO16) */ s7_inst.reloc.type = BFD_RELOC_SCORE_GOT15; memcpy (&var_insts[0], &s7_inst, sizeof (struct s7_score_it)); - sprintf (tmp, "addi_s_pic r1, %s", add_symbol->bsym->name); + sprintf (tmp, "addi_s_pic r1, %s", S_GET_NAME (add_symbol)); if (s7_append_insn (tmp, FALSE) == (int) s7_FAIL) return; @@ -5263,10 +5263,7 @@ s7_b32_relax_to_b16 (fragS * fragp) if (s == NULL) frag_addr = 0; else - { - if (s->bsym != NULL) - symbol_address = (addressT) symbol_get_frag (s)->fr_address; - } + symbol_address = (addressT) symbol_get_frag (s)->fr_address; value = s7_md_chars_to_number (fragp->fr_literal, s7_INSN_SIZE); @@ -5280,7 +5277,7 @@ s7_b32_relax_to_b16 (fragS * fragp) abs_value = 0xffffffff - abs_value + 1; /* Relax branch 32 to branch 16. */ - if (relaxable_p && (s->bsym != NULL) && ((abs_value & 0xffffff00) == 0) + if (relaxable_p && ((abs_value & 0xffffff00) == 0) && (S_IS_DEFINED (s) && !S_IS_COMMON (s) && !S_IS_EXTERNAL (s))) { /* do nothing. */ |