[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

profiling



ちょっと profile できるようにしてみました。
いくつかの syscall がまだ _PROF_PROLOGUE していませんが、
こんなもので使えるでしょうか。(ちゃんとつかったことないもので)

*** /usr/include/powerpc/asm.h	Wed Dec  2 23:31:23 1998
--- include/asm.h	Thu Feb 25 00:56:22 1999
***************
*** 63,69 ****
  	.text; .align 2; .globl x; .type x,@function; x:
  
  #ifdef GPROF
! # define _PROF_PROLOGUE	XXX
  #else
  # define _PROF_PROLOGUE
  #endif
--- 63,69 ----
  	.text; .align 2; .globl x; .type x,@function; x:
  
  #ifdef GPROF
! # define _PROF_PROLOGUE	mflr 0; stw 0,4(1); bl _mcount
  #else
  # define _PROF_PROLOGUE
  #endif
*** /usr/include/powerpc/profile.h	Thu Apr 17 20:19:59 1997
--- include/profile.h	Thu Feb 25 00:48:57 1999
***************
*** 2,10 ****
  
  #define	_MCOUNT_DECL	void mcount
  
! /* XXX implement XXX */
! 
! #define	MCOUNT
  
  #ifdef _KERNEL
  #define	MCOUNT_ENTER
--- 2,39 ----
  
  #define	_MCOUNT_DECL	void mcount
  
! #define MCOUNT __asm("		\
! 	.globl _mcount;		\
! _mcount:			\
! 	stwu	1,-64(1);	\
! 	stw	3,16(1);	\
! 	stw	4,20(1);	\
! 	stw	5,24(1);	\
! 	stw	6,28(1);	\
! 	stw	7,32(1);	\
! 	stw	8,36(1);	\
! 	stw	9,40(1);	\
! 	stw	10,44(1);	\
! 				\
! 	mflr	4;		\
! 	stw	4,48(1);	\
! 	lwz	3,68(1);	\
! 	bl	mcount;		\
! 	lwz	4,48(1);	\
! 	mtctr	4;		\
! 	lwz	3,68(1);	\
! 	mtlr	3;		\
! 				\
! 	lwz	3,16(1);	\
! 	lwz	4,20(1);	\
! 	lwz	5,24(1);	\
! 	lwz	6,28(1);	\
! 	lwz	7,32(1);	\
! 	lwz	8,36(1);	\
! 	lwz	9,40(1);	\
! 	lwz	10,44(1);	\
! 	addi	1,1,64;		\
! 	bctr;			");
  
  #ifdef _KERNEL
  #define	MCOUNT_ENTER