From Bde:
[unix-history] / sys / kern / subr_mcount.c
index 3c9204c..0a67d52 100644 (file)
@@ -30,7 +30,8 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- *     @(#)subr_mcount.c       7.10 (Berkeley) 5/7/91
+ *     from: @(#)subr_mcount.c 7.10 (Berkeley) 5/7/91
+ *     $Id: subr_mcount.c,v 1.5 1993/12/20 16:23:51 davidg Exp $
  */
 
 #ifdef GPROF
  */
 
 #ifdef GPROF
@@ -46,14 +47,16 @@ int profiling = 3;
 u_short        *froms;
 struct tostruct *tos = 0;
 long   tolimit = 0;
 u_short        *froms;
 struct tostruct *tos = 0;
 long   tolimit = 0;
-char   *s_lowpc = (char *)KERNBASE;
-extern char etext;
-char   *s_highpc = &etext;
+extern char btext[];
+char   *s_lowpc = btext;
+extern char etext[];
+char   *s_highpc = etext;
 u_long s_textsize = 0;
 int    ssiz;
 u_short        *sbuf;
 u_short        *kcount;
 
 u_long s_textsize = 0;
 int    ssiz;
 u_short        *sbuf;
 u_short        *kcount;
 
+void
 kmstartup()
 {
        u_long fromssize, tossize;
 kmstartup()
 {
        u_long fromssize, tossize;
@@ -106,6 +109,7 @@ kmstartup()
        kcount = (u_short *)(((int)sbuf) + sizeof (struct phdr));
 }
 
        kcount = (u_short *)(((int)sbuf) + sizeof (struct phdr));
 }
 
+void
 mcount()
 {
        register char *selfpc;                  /* r11 => r5 */
 mcount()
 {
        register char *selfpc;                  /* r11 => r5 */
@@ -166,9 +170,6 @@ mcount()
        asm("   movl (sp), r11");       /* selfpc = ... (jsb frame) */
        asm("   movl 16(fp), r10");     /* frompcindex =     (calls frame) */
 #endif
        asm("   movl (sp), r11");       /* selfpc = ... (jsb frame) */
        asm("   movl 16(fp), r10");     /* frompcindex =     (calls frame) */
 #endif
-#if defined(i386)
-       Fix Me!!
-#endif /* i386 */
 #if defined(tahoe)
        asm("   movl -8(fp),r12");      /* selfpc = callf frame */
        asm("   movl (fp),r11");
 #if defined(tahoe)
        asm("   movl -8(fp),r12");      /* selfpc = callf frame */
        asm("   movl (fp),r11");
@@ -187,8 +188,12 @@ mcount()
 #if defined(hp300)
        asm("movw       sr,%0" : "=g" (s));
        asm("movw       #0x2700,sr");
 #if defined(hp300)
        asm("movw       sr,%0" : "=g" (s));
        asm("movw       #0x2700,sr");
+#else
+#if defined(i386)
+       asm("cli");
 #else
        s = splhigh();
 #else
        s = splhigh();
+#endif
 #endif
        /*
         * Check that frompcindex is a reasonable pc value.
 #endif
        /*
         * Check that frompcindex is a reasonable pc value.
@@ -269,8 +274,12 @@ mcount()
 done:
 #if defined(hp300)
        asm("movw       %0,sr" : : "g" (s));
 done:
 #if defined(hp300)
        asm("movw       %0,sr" : : "g" (s));
+#else
+#if defined(i386)
+       asm("sti");
 #else
        splx(s);
 #else
        splx(s);
+#endif
 #endif
        /* and fall through */
 out:
 #endif
        /* and fall through */
 out: