Enable gprof on alpha.

* alpha.{c,h} are same as i386.{c,h}.
* Force address calculation to be done in long precision(64bit on alpha)
  rather than double precision(52bit).
This commit is contained in:
Hidetoshi Shimokawa 1999-07-16 07:22:10 +00:00
parent daa2e8d835
commit 13a29a8a17
5 changed files with 64 additions and 6 deletions

View File

@ -1,5 +1,5 @@
# From: @(#)Makefile 8.3 (Berkeley) 1/7/94
# $Id: Makefile,v 1.126 1999/04/18 09:51:43 obrien Exp $
# $Id: Makefile,v 1.127 1999/04/18 15:56:20 peter Exp $
# XXX MISSING: deroff diction graph learn plot
# spell spline struct xsend
@ -58,6 +58,7 @@ SUBDIR= apply \
gensetdefs \
getopt \
global \
gprof \
head \
hexdump \
host \
@ -211,7 +212,6 @@ SUBDIR+=ar \
brandelf \
doscmd \
gcore \
gprof \
gprof4 \
nm \
ranlib \

11
usr.bin/gprof/alpha.c Normal file
View File

@ -0,0 +1,11 @@
#include "gprof.h"
/*
* gprof -c isn't currently supported...
*/
findcall( parentp , p_lowpc , p_highpc )
nltype *parentp;
unsigned long p_lowpc;
unsigned long p_highpc;
{
}

44
usr.bin/gprof/alpha.h Normal file
View File

@ -0,0 +1,44 @@
/*-
* Copyright (c) 1991, 1993
* The Regents of the University of California. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* This product includes software developed by the University of
* California, Berkeley and its contributors.
* 4. Neither the name of the University nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* @(#)i386.h 8.1 (Berkeley) 6/6/93
*/
/*
* offset (in bytes) of the code from the entry address of a routine.
* (see asgnsamples for use and explanation.)
*/
#define OFFSET_OF_CODE 0
#define UNITS_TO_CODE (OFFSET_OF_CODE / sizeof(UNIT))
enum opermodes { dummy };
typedef enum opermodes operandenum;

View File

@ -42,7 +42,7 @@ static const char copyright[] =
static char sccsid[] = "@(#)gprof.c 8.1 (Berkeley) 6/6/93";
#endif
static const char rcsid[] =
"$Id: gprof.c,v 1.8 1998/09/07 23:31:59 jdp Exp $";
"$Id: gprof.c,v 1.9 1999/05/23 00:37:54 jmz Exp $";
#endif /* not lint */
#include <err.h>
@ -489,8 +489,8 @@ asgnsamples()
ccnt = samples[i];
if (ccnt == 0)
continue;
pcl = lowpc + scale * i;
pch = lowpc + scale * (i + 1);
pcl = lowpc + (unsigned long)(scale * i);
pch = lowpc + (unsigned long)(scale * (i + 1));
time = ccnt;
# ifdef DEBUG
if ( debug & SAMPLEDEBUG ) {

View File

@ -40,6 +40,9 @@
#include <stdio.h>
#include <stdlib.h>
#if __alpha__
# include "alpha.h"
#endif
#if vax
# include "vax.h"
#endif
@ -207,7 +210,7 @@ UNIT *samples;
unsigned long s_lowpc; /* lowpc from the profile file */
unsigned long s_highpc; /* highpc from the profile file */
unsigned lowpc, highpc; /* range profiled, in UNIT's */
unsigned long lowpc, highpc; /* range profiled, in UNIT's */
unsigned sampbytes; /* number of bytes of samples */
int nsamples; /* number of samples */
double actime; /* accumulated time thus far for putprofline */