return (symbol_decode);
} /* decode_local_label_name() */
+/* Get the value of a symbol. */
+
+valueT
+S_GET_VALUE (s)
+ symbolS *s;
+{
+ if (s->sy_value.X_seg != absolute_section)
+ as_bad ("Attempt to get value of unresolved symbol");
+ return (valueT) s->sy_value.X_add_number;
+}
+
+/* Set the value of a symbol. */
+
+void
+S_SET_VALUE (s, val)
+ symbolS *s;
+ valueT val;
+{
+ s->sy_value.X_seg = absolute_section;
+ s->sy_value.X_add_number = (offsetT) val;
+}
+
#ifdef BFD_ASSEMBLER
int
return S_GET_NAME (s) == 0;
}
-valueT
-S_GET_VALUE (s)
- symbolS *s;
-{
- return s->bsym->value;
-}
-
CONST char *
S_GET_NAME (s)
symbolS *s;
return s->bsym->section;
}
-void
-S_SET_VALUE (s, val)
- symbolS *s;
- valueT val;
-{
- s->bsym->value = val;
-}
-
void
S_SET_SEGMENT (s, seg)
symbolS *s;