* 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
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;
+void
kmstartup()
{
u_long fromssize, tossize;
kcount = (u_short *)(((int)sbuf) + sizeof (struct phdr));
}
+void
mcount()
{
register char *selfpc; /* r11 => r5 */
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(hp300)
asm("movw sr,%0" : "=g" (s));
asm("movw #0x2700,sr");
+#else
+#if defined(i386)
+ asm("cli");
#else
s = splhigh();
+#endif
#endif
/*
* Check that frompcindex is a reasonable pc value.
done:
#if defined(hp300)
asm("movw %0,sr" : : "g" (s));
+#else
+#if defined(i386)
+ asm("sti");
#else
splx(s);
+#endif
#endif
/* and fall through */
out: