From 174419c1231afcc09fdf141a1b2b85bb7e8f64fa Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Thu, 3 Jun 1999 09:50:01 +0000 Subject: [PATCH] * config/tc-arm.h: Update for symbol handling changes. * config/tc-arm.c: Likewise. (symbol_make_empty): Remove. Just use symbol_create. --- gas/ChangeLog | 6 ++++++ gas/config/tc-arm.c | 40 ++++++++++++---------------------------- gas/config/tc-arm.h | 6 +++--- 3 files changed, 21 insertions(+), 31 deletions(-) diff --git a/gas/ChangeLog b/gas/ChangeLog index ec4ae4b..e5da8e5 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,5 +1,11 @@ 1999-06-03 Ian Lance Taylor + * config/tc-arm.h: Update for symbol handling changes. + * config/tc-arm.c: Likewise. + (symbol_make_empty): Remove. Just use symbol_create. + + * symbols.c (symbol_set_tc): Correct name. + * Makefile.am: Rebuild dependencies. ($(OBJS)): Don't depend upon struc-symbol.h. (.dep1, .tcdep, .objdep): Create itbl-parse.h. diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c index 3d04600..e355a1b 100644 --- a/gas/config/tc-arm.c +++ b/gas/config/tc-arm.c @@ -955,7 +955,6 @@ literalT literals[MAX_LITERAL_POOL_SIZE]; int next_literal_pool_place = 0; /* Next free entry in the pool */ int lit_pool_num = 1; /* Next literal pool number */ symbolS * current_poolP = NULL; -symbolS * symbol_make_empty PARAMS ((void)); static int add_to_lit_pool () @@ -963,7 +962,8 @@ add_to_lit_pool () int lit_count = 0; if (current_poolP == NULL) - current_poolP = symbol_make_empty (); + current_poolP = symbol_create (FAKE_LABEL_NAME, undefined_section, + (valueT) 0, &zero_address_frag); /* Check if this literal value is already in the pool: */ while (lit_count < next_literal_pool_place) @@ -1027,7 +1027,7 @@ symbol_locate (symbolP, name, segment, valu, frag) S_SET_VALUE (symbolP, valu); symbol_clear_list_pointers(symbolP); - symbolP->sy_frag = frag; + symbol_set_frag (symbolP, frag); /* Link to end of symbol chain. */ { @@ -1049,23 +1049,6 @@ symbol_locate (symbolP, name, segment, valu, frag) #endif /* DEBUG_SYMS */ } -symbolS * -symbol_make_empty () -{ - symbolS * symbolP; - - symbolP = (symbolS *) obstack_alloc (¬es, sizeof (symbolS)); - - /* symbol must be born in some fixed state. This seems as good as any. */ - memset (symbolP, 0, sizeof (symbolS)); - - symbolP->bsym = bfd_make_empty_symbol (stdoutput); - assert (symbolP->bsym != 0); - symbolP->bsym->udata.p = (PTR) symbolP; - - return symbolP; -} - /* Check that an immediate is valid, and if so, convert it to the right format. */ static unsigned int @@ -2039,14 +2022,14 @@ static int walk_no_bignums (sp) symbolS * sp; { - if (sp->sy_value.X_op == O_big) + if (symbol_get_value_expression (sp)->X_op == O_big) return 1; - if (sp->sy_value.X_add_symbol) + if (symbol_get_value_expression (sp)->X_add_symbol) { - return (walk_no_bignums (sp->sy_value.X_add_symbol) - || (sp->sy_value.X_op_symbol - && walk_no_bignums (sp->sy_value.X_op_symbol))); + return (walk_no_bignums (symbol_get_value_expression (sp)->X_add_symbol) + || (symbol_get_value_expression (sp)->X_op_symbol + && walk_no_bignums (symbol_get_value_expression (sp)->X_op_symbol))); } return 0; @@ -5620,7 +5603,8 @@ tc_gen_reloc (section, fixp) reloc = (arelent *) xmalloc (sizeof (arelent)); - reloc->sym_ptr_ptr = &fixp->fx_addsy->bsym; + reloc->sym_ptr_ptr = (asymbol **) xmalloc (sizeof (asymbol *)); + *reloc->sym_ptr_ptr = symbol_get_bfdsym (fixp->fx_addsy); reloc->address = fixp->fx_frag->fr_address + fixp->fx_where; /* @@ Why fx_addnumber sometimes and fx_offset other times? */ @@ -5801,7 +5785,7 @@ md_assemble (str) /* Align the previous label if needed. */ if (last_label_seen != NULL) { - last_label_seen->sy_frag = frag_now; + symbol_set_frag (last_label_seen, frag_now); S_SET_VALUE (last_label_seen, (valueT) frag_now_fix ()); S_SET_SEGMENT (last_label_seen, now_seg); } @@ -6625,7 +6609,7 @@ arm_adjust_symtab () { if (THUMB_IS_FUNC (sym)) { - elf_sym = elf_symbol (sym->bsym); + elf_sym = elf_symbol (symbol_get_bfdsym (sym)); bind = ELF_ST_BIND (elf_sym); elf_sym->internal_elf_sym.st_info = ELF_ST_INFO (bind, STT_ARM_TFUNC); } diff --git a/gas/config/tc-arm.h b/gas/config/tc-arm.h index 7f676e7..72a5713 100644 --- a/gas/config/tc-arm.h +++ b/gas/config/tc-arm.h @@ -122,9 +122,9 @@ /* We need to keep some local information on symbols. */ #define TC_SYMFIELD_TYPE unsigned int -#define ARM_GET_FLAG(s) ((s)->sy_tc) -#define ARM_SET_FLAG(s,v) ((s)->sy_tc |= (v)) -#define ARM_RESET_FLAG(s,v) ((s)->sy_tc &= ~(v)) +#define ARM_GET_FLAG(s) (*symbol_get_tc (s)) +#define ARM_SET_FLAG(s,v) (*symbol_get_tc (s) |= (v)) +#define ARM_RESET_FLAG(s,v) (*symbol_get_tc (s) &= ~(v)) #define ARM_FLAG_THUMB (1 << 0) /* The symbol is a Thumb symbol rather than an Arm symbol. */ #define ARM_FLAG_INTERWORK (1 << 1) /* The symbol is attached to code that suppports interworking. */ -- 2.7.4