* Restore register correctly.
* Add missing bits for profiling.
This commit is contained in:
parent
948637b1f2
commit
828ecc1f80
@ -1,4 +1,4 @@
|
||||
/* $Id: asm.h,v 1.1 1998/01/10 22:09:52 jb Exp $ */
|
||||
/* $Id: asm.h,v 1.2 1998/06/10 10:54:23 dfr Exp $ */
|
||||
/* From: NetBSD: asm.h,v 1.18 1997/11/03 04:22:06 ross Exp */
|
||||
|
||||
/*
|
||||
@ -226,7 +226,7 @@
|
||||
* MCOUNT
|
||||
*/
|
||||
|
||||
#ifndef GPROF
|
||||
#if !defined(GPROF) && !defined(PROF)
|
||||
#define MCOUNT /* nothing */
|
||||
#else
|
||||
#define MCOUNT \
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $Id$ */
|
||||
/* $Id: profile.h,v 1.1.1.1 1998/03/09 05:43:16 jb Exp $ */
|
||||
/* From: NetBSD: profile.h,v 1.9 1997/04/06 08:47:37 cgd Exp */
|
||||
|
||||
/*
|
||||
@ -30,6 +30,10 @@
|
||||
|
||||
#define _MCOUNT_DECL void mcount
|
||||
|
||||
#define FUNCTION_ALIGNMENT 32
|
||||
|
||||
typedef u_long fptrdiff_t;
|
||||
|
||||
#if 0
|
||||
/*
|
||||
* XXX The definition of MCOUNT below is really the following code, run
|
||||
@ -192,17 +196,18 @@ LX98: ldgp $29,0($27); \
|
||||
ldq $23, 144($30); \
|
||||
ldq $24, 152($30); \
|
||||
ldq $25, 160($30); \
|
||||
ldq $25, 160($30); \
|
||||
ldq $26, 168($30); \
|
||||
ldq $27, 176($30); \
|
||||
ldq $29, 184($30); \
|
||||
\
|
||||
ldq $28, 0($30); \
|
||||
\
|
||||
lda $30, 192($30); \
|
||||
ret $31, ($28), 1; \
|
||||
\
|
||||
.end _mcount");
|
||||
|
||||
#ifdef _KERNEL
|
||||
#ifdef KERNEL
|
||||
/*
|
||||
* The following two macros do splhigh and splx respectively.
|
||||
* _alpha_pal_swpipl is a special version of alpha_pal_swpipl which
|
||||
@ -210,8 +215,23 @@ LX98: ldgp $29,0($27); \
|
||||
*
|
||||
* XXX These macros should probably use inline assembly.
|
||||
*/
|
||||
#define MCOUNT_ENTER \
|
||||
#define MCOUNT_ENTER(s) \
|
||||
s = _alpha_pal_swpipl(ALPHA_PSL_IPL_HIGH)
|
||||
#define MCOUNT_EXIT \
|
||||
#define MCOUNT_EXIT(s) \
|
||||
(void)_alpha_pal_swpipl(s);
|
||||
#define MCOUNT_DECL(s) u_long s;
|
||||
#ifdef GUPROF
|
||||
struct gmonparam;
|
||||
|
||||
void nullfunc_loop_profiled __P((void));
|
||||
void nullfunc_profiled __P((void));
|
||||
void startguprof __P((struct gmonparam *p));
|
||||
void stopguprof __P((struct gmonparam *p));
|
||||
#else
|
||||
#define startguprof(p)
|
||||
#define stopguprof(p)
|
||||
#endif /* GUPROF */
|
||||
|
||||
#else /* !KERNEL */
|
||||
typedef u_long uintfptr_t;
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user