[comp.sys.ibm.pc.rt] Patch for /sys/ca/fpglue.s

brunner@bullhead.uucp (07/25/89)

Subject: Fix for kernel profiling
Index: /sys/ca/fpglue.s

Description:
	Kernel profiling gives incorrect times for fpglue.

Fix:
	Apply the attached patch.

*** fpglue.s	Fri Jul  7 10:15:11 1989
--- fpglue.s.fix	Thu Jul 13 14:48:53 1989
***************
*** 28,34 ****
  
  	.globl	FPGLUE
  	.globl  fpglue
! #if defined(KERNEL) || defined(PROFILE)
  	.globl	_.fpgen			# necessary to call fpgen() directly
  	.globl	_fpgen			# necessary to call fpgen() directly
  #endif KERNEL
--- 28,34 ----
  
  	.globl	FPGLUE
  	.globl  fpglue
! #if defined(KERNEL) || defined(PROFILE) || defined(GPROF)
  	.globl	_.fpgen			# necessary to call fpgen() directly
  	.globl	_fpgen			# necessary to call fpgen() directly
  #endif KERNEL
***************
*** 35,41 ****
  	.globl	.oVncs
  	.set	.oVncs,0
  
! #ifdef PROFILE
  	.data
  	.align	2
  .fpglue:
--- 35,41 ----
  	.globl	.oVncs
  	.set	.oVncs,0
  
! #if defined(PROFILE) || defined(GPROF)
  	.data
  	.align	2
  .fpglue:
***************
*** 61,67 ****
  	st	r0,-40(sp)		# change return address by  
  					# override the stored r15
  	cal	sp,-100(sp)		# move stack pointer
! #ifdef PROFILE
  	mr	r12,r15			# remember where RTFL block starts
  	get	r14,$.fpglue
  	bali	r15,mcount
--- 61,67 ----
  	st	r0,-40(sp)		# change return address by  
  					# override the stored r15
  	cal	sp,-100(sp)		# move stack pointer
! #if defined(PROFILE) || defined(GPROF)
  	mr	r12,r15			# remember where RTFL block starts
  	get	r14,$.fpglue
  	bali	r15,mcount
***************
*** 110,116 ****
  	ti	4,r6,6			# tlti r6,6
  #endif
  
! #if defined(KERNEL) || defined(PROFILE)
  	get	r6,$fp_genaddr		# calling fpgen() directly
  #else
   	get	r6,$fp_CodeGen		# addr of ptr to fpgen()
--- 110,116 ----
  	ti	4,r6,6			# tlti r6,6
  #endif
  
! #if defined(KERNEL) || defined(PROFILE) || defined(GPROF)
  	get	r6,$fp_genaddr		# calling fpgen() directly
  #else
   	get	r6,$fp_CodeGen		# addr of ptr to fpgen()
***************
*** 182,188 ****
  
  	.data
  	.align	2
! #if defined(KERNEL) || defined(PROFILE)
  fp_genaddr:	.long	_fpgen		# for calling fpgen() directly
  #endif KERNEL
  
--- 182,188 ----
  
  	.data
  	.align	2
! #if defined(KERNEL) || defined(PROFILE) || defined(GPROF)
  fp_genaddr:	.long	_fpgen		# for calling fpgen() directly
  #endif KERNEL
  

Eric Brunner
uunet!ibmsupt!brunner