* read.c (do_s_func): New function.

(s_func): Call it.
	* read.h (do_s_func): Add prototype.
	* config/tc-dvp.c (md_pseudo_table): Add .func/.endfunc.
	(s_dvp_func): New function.
This commit is contained in:
Doug Evans
1998-06-02 16:54:59 +00:00
parent 30596dfc4f
commit c68b56efc5
2 changed files with 32 additions and 10 deletions

View File

@@ -1,6 +1,12 @@
Tue Jun 2 09:25:34 1998 Doug Evans <devans@canuck.cygnus.com> 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 start-sanitize-r5900
Mon Jun 1 17:04:56 1998 Jeffrey A Law (law@cygnus.com) Mon Jun 1 17:04:56 1998 Jeffrey A Law (law@cygnus.com)

View File

@@ -4920,6 +4920,17 @@ generate_lineno_debug ()
void void
s_func (end_p) s_func (end_p)
int 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 /* Record the current function so that we can issue an error message for
misplaced .func,.endfunc, and also so that .endfunc needs no misplaced .func,.endfunc, and also so that .endfunc needs no
@@ -4960,16 +4971,21 @@ s_func (end_p)
SKIP_WHITESPACE (); SKIP_WHITESPACE ();
if (*input_line_pointer != ',') if (*input_line_pointer != ',')
{ {
char leading_char = 0; if (default_prefix)
#ifdef BFD_ASSEMBLER asprintf (&label, "%s%s", default_prefix, name);
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 else
label = name; {
char leading_char = 0;
#ifdef BFD_ASSEMBLER
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;
}
} }
else else
{ {