* read.c (do_s_func): New function.
authorDoug Evans <dje@google.com>
Tue, 2 Jun 1998 16:54:20 +0000 (16:54 +0000)
committerDoug Evans <dje@google.com>
Tue, 2 Jun 1998 16:54:20 +0000 (16:54 +0000)
(s_func): Call it.
* config/tc-dvp.c (md_pseudo_table): Add .func/.endfunc.
(s_dvp_func): New function.

gas/config/tc-dvp.c

index 99683b77b95b00b903b4111cb14a3f13d21e5453..204f1c881050267706b802c1dc8bef83b9a34f29 100644 (file)
@@ -276,6 +276,7 @@ static void s_endmpg PARAMS ((int));
 static void s_endunpack PARAMS ((int));
 static void s_endgif PARAMS ((int));
 static void s_state PARAMS ((int));
+static void s_dvp_func PARAMS ((int));
 
 /* The target specific pseudo-ops which we support.  */
 const pseudo_typeS md_pseudo_table[] =
@@ -290,6 +291,10 @@ const pseudo_typeS md_pseudo_table[] =
   { "endunpack", s_endunpack, 0 },
   { "endgif", s_endgif, 0 },
   { "vu", s_state, ASM_VU },
+  /* We need to intercept .func/.endfunc so that we can prepend _$.
+     ??? Not sure this is right though as _$foo is the lma version.  */
+  { "func", s_dvp_func, 0 },
+  { "endfunc", s_dvp_func, 1 },
   { NULL, NULL, 0 }
 };
 \f
@@ -3192,3 +3197,12 @@ s_state (state)
 
   demand_empty_rest_of_line ();
 }
+
+/* Same as read.c:s_func except prepend VU_LABEL_PREFIX by default.  */
+
+static void
+s_dvp_func (end_p)
+     int end_p;
+{
+  do_s_func (end_p, VU_LABEL_PREFIX);
+}