sy_value with appropriate accessor functions.
	* config/tc-arm.c (md_apply_fix3): Likewise.
	* config/tc-d10v.c (AT_WORD_P): Likewise.
	* config/tc-v850.c (reg_name_search): Likewise.
 1999-06-22  Ian Lance Taylor  <ian@zembu.com>
 
+       * config/tc-arc.c (get_arc_exp_reloc_type): Change uses of
+       sy_value with appropriate accessor functions.
+       * config/tc-arm.c (md_apply_fix3): Likewise.
+       * config/tc-d10v.c (AT_WORD_P): Likewise.
+       * config/tc-v850.c (reg_name_search): Likewise.
+
        * config/obj-ecoff.c (obj_ecoff_set_ext): Change uses of bsym to
        use symbol_get_bfdsym instead.
        * config/tc-ppc.c (md_assemble): Likewise.
 
 
   if (exp->X_op == O_right_shift
       && exp->X_op_symbol != NULL
-      && exp->X_op_symbol->sy_value.X_op == O_constant
-      && exp->X_op_symbol->sy_value.X_add_number == 2
+      && symbol_constant_p (exp->X_op_symbol)
+      && S_GET_VALUE (exp->X_op_symbol) == 2
       && exp->X_add_number == 0)
     {
       if (exp->X_add_symbol != NULL
-         && (exp->X_add_symbol->sy_value.X_op == O_constant
-             || exp->X_add_symbol->sy_value.X_op == O_symbol))
+         && (symbol_constant_p (exp->X_add_symbol)
+             || symbol_equated_p (exp->X_add_symbol)))
        {
          *expnew = *exp;
          expnew->X_op = O_symbol;
          return data_p ? BFD_RELOC_ARC_B26 : arc_operand_map['J'];
        }
       else if (exp->X_add_symbol != NULL
-              && exp->X_add_symbol->sy_value.X_op == O_subtract)
+              && (symbol_get_value_expression (exp->X_add_symbol)->X_op
+                  == O_subtract))
        {
-         *expnew = exp->X_add_symbol->sy_value;
+         *expnew = *symbol_get_value_expression (exp->X_add_symbol);
          return data_p ? BFD_RELOC_ARC_B26 : arc_operand_map['J'];
        }
     }
 
 
   /* Note whether this will delete the relocation.  */
 #if 0 /* patch from REarnshaw to JDavis (disabled for the moment, since it doesn't work fully) */
-  if ((fixP->fx_addsy == 0 || fixP->fx_addsy->sy_value.X_op == O_constant)
+  if ((fixP->fx_addsy == 0 || symbol_constant_p (fixP->fx_addsy))
       && !fixP->fx_pcrel)
 #else
   if (fixP->fx_addsy == 0 && !fixP->fx_pcrel)
 
 
 #define AT_WORD_P(X) ((X)->X_op == O_right_shift \
                      && (X)->X_op_symbol != NULL \
-                     && (X)->X_op_symbol->sy_value.X_op == O_constant \
-                     && (X)->X_op_symbol->sy_value.X_add_number == AT_WORD_RIGHT_SHIFT)
+                     && symbol_constant_p ((X)->X_op_symbol) \
+                     && S_GET_VALUE ((X)->X_op_symbol) == AT_WORD_RIGHT_SHIFT)
 #define AT_WORD_RIGHT_SHIFT 2
 
 
 
     {
       /* If the symbol is an alias for another name then use that.
         If the symbol is an alias for a number, then return the number.  */
-      if (symbolP->sy_value.X_op == O_symbol)
+      if (symbol_equated_p (symbolP))
        {
-         name = S_GET_NAME (symbolP->sy_value.X_add_symbol);
+         name = S_GET_NAME (symbol_get_value_expression (symbolP)->X_add_symbol);
        }
       else if (accept_numbers)
        {