Tue Jun 2 09:25:34 1998 Doug Evans <devans@canuck.cygnus.com>
- * read.c (s_func): Prepend `leading char' by default.
+ * read.c (do_s_func): New function.
+ (s_func): Call it.
+ * read.h (do_s_func): Add prototype.
+start-sanitize-sky
+ * config/tc-dvp.c (md_pseudo_table): Add .func/.endfunc.
+ (s_dvp_func): New function.
+end-sanitize-sky
start-sanitize-r5900
Mon Jun 1 17:04:56 1998 Jeffrey A Law (law@cygnus.com)
void
s_func (end_p)
int end_p;
+{
+ do_s_func (end_p, NULL);
+}
+
+/* Subroutine of s_func so targets can choose a different default prefix.
+ If DEFAULT_PREFIX is NULL, use the target's "leading char". */
+
+void
+do_s_func (end_p, default_prefix)
+ int end_p;
+ const char *default_prefix;
{
/* Record the current function so that we can issue an error message for
misplaced .func,.endfunc, and also so that .endfunc needs no
SKIP_WHITESPACE ();
if (*input_line_pointer != ',')
{
- char leading_char = 0;
+ if (default_prefix)
+ asprintf (&label, "%s%s", default_prefix, name);
+ else
+ {
+ char leading_char = 0;
#ifdef BFD_ASSEMBLER
- leading_char = bfd_get_symbol_leading_char (stdoutput);
+ leading_char = bfd_get_symbol_leading_char (stdoutput);
#endif
- /* Missing entry point, use function's name with the leading
- char prepended. */
- if (leading_char)
- asprintf (&label, "%c%s", leading_char, name);
- else
- label = name;
+ /* Missing entry point, use function's name with the leading
+ char prepended. */
+ if (leading_char)
+ asprintf (&label, "%c%s", leading_char, name);
+ else
+ label = name;
+ }
}
else
{