profile.h revision 1.4 1 /* $NetBSD: profile.h,v 1.4 1999/03/05 07:59:14 tsubai Exp $ */
2
3 #define _MCOUNT_DECL void mcount
4
5 #ifdef PIC
6 #define _PLT "@plt"
7 #else
8 #define _PLT
9 #endif
10
11 #define MCOUNT __asm(" \
12 .globl _mcount; \
13 _mcount: \
14 stwu 1,-64(1); \
15 stw 3,16(1); \
16 stw 4,20(1); \
17 stw 5,24(1); \
18 stw 6,28(1); \
19 stw 7,32(1); \
20 stw 8,36(1); \
21 stw 9,40(1); \
22 stw 10,44(1); \
23 \
24 mflr 4; \
25 stw 4,48(1); \
26 lwz 3,68(1); \
27 bl mcount" _PLT "; \
28 lwz 3,68(1); \
29 mtlr 3; \
30 lwz 4,48(1); \
31 mtctr 4; \
32 \
33 lwz 3,16(1); \
34 lwz 4,20(1); \
35 lwz 5,24(1); \
36 lwz 6,28(1); \
37 lwz 7,32(1); \
38 lwz 8,36(1); \
39 lwz 9,40(1); \
40 lwz 10,44(1); \
41 addi 1,1,64; \
42 bctr; ");
43
44 #ifdef _KERNEL
45 #define MCOUNT_ENTER
46 #define MCONT_EXIT
47 #endif
48