diff options
author | tjr <tjr@FreeBSD.org> | 2003-10-30 12:21:31 +0000 |
---|---|---|
committer | tjr <tjr@FreeBSD.org> | 2003-10-30 12:21:31 +0000 |
commit | f6d56a96f70efbad25608a00a293edc15d337e5d (patch) | |
tree | 9ce882d57c9ab384c0353a3672bf2d299be781d1 /usr.bin/gprof | |
parent | 10c0052ec4ac1d18a7c1d6025ce3f9ffb1440cb6 (diff) | |
download | FreeBSD-src-f6d56a96f70efbad25608a00a293edc15d337e5d.zip FreeBSD-src-f6d56a96f70efbad25608a00a293edc15d337e5d.tar.gz |
Remove MD bits for unsupported architectures.
Diffstat (limited to 'usr.bin/gprof')
-rw-r--r-- | usr.bin/gprof/gprof.c | 2 | ||||
-rw-r--r-- | usr.bin/gprof/gprof.h | 19 | ||||
-rw-r--r-- | usr.bin/gprof/hp300.c | 14 | ||||
-rw-r--r-- | usr.bin/gprof/hp300.h | 44 | ||||
-rw-r--r-- | usr.bin/gprof/mips.c | 117 | ||||
-rw-r--r-- | usr.bin/gprof/mips.h | 50 | ||||
-rw-r--r-- | usr.bin/gprof/sparc.c | 115 | ||||
-rw-r--r-- | usr.bin/gprof/sparc.h | 48 | ||||
-rw-r--r-- | usr.bin/gprof/tahoe.c | 354 | ||||
-rw-r--r-- | usr.bin/gprof/tahoe.h | 59 | ||||
-rw-r--r-- | usr.bin/gprof/vax.c | 352 | ||||
-rw-r--r-- | usr.bin/gprof/vax.h | 65 |
12 files changed, 1 insertions, 1238 deletions
diff --git a/usr.bin/gprof/gprof.c b/usr.bin/gprof/gprof.c index f0e0bce..7b857b8 100644 --- a/usr.bin/gprof/gprof.c +++ b/usr.bin/gprof/gprof.c @@ -85,7 +85,7 @@ main(argc, argv) cyclethreshold = atoi( *++argv ); break; case 'c': -#if defined(vax) || defined(tahoe) +#if 0 cflag = TRUE; #else errx(1, "-c isn't supported on this architecture yet"); diff --git a/usr.bin/gprof/gprof.h b/usr.bin/gprof/gprof.h index db9f4c8..d9dad7a 100644 --- a/usr.bin/gprof/gprof.h +++ b/usr.bin/gprof/gprof.h @@ -53,28 +53,9 @@ #if __powerpc__ # include "powerpc.h" #endif -#if vax -# include "vax.h" -#endif -#if sparc -# include "sparc.h" -#endif -#if tahoe -# include "tahoe.h" -#endif -#if hp300 -# include "hp300.h" -#endif -#if luna68k -# include "luna68k.h" -#endif #if __i386__ # include "i386.h" #endif -#if mips -# include "mips.h" -#endif - /* * booleans diff --git a/usr.bin/gprof/hp300.c b/usr.bin/gprof/hp300.c deleted file mode 100644 index c35cd63..0000000 --- a/usr.bin/gprof/hp300.c +++ /dev/null @@ -1,14 +0,0 @@ -#include <sys/cdefs.h> -__FBSDID("$FreeBSD$"); - -#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; -{ -} diff --git a/usr.bin/gprof/hp300.h b/usr.bin/gprof/hp300.h deleted file mode 100644 index 37e6350..0000000 --- a/usr.bin/gprof/hp300.h +++ /dev/null @@ -1,44 +0,0 @@ -/*- - * 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. - * - * @(#)hp300.h 8.1 (Berkeley) 6/6/93 - * $FreeBSD$ - */ - - /* - * offset (in bytes) of the code from the entry address of a routine. - * (see asgnsamples for use and explanation.) - */ -#define OFFSET_OF_CODE 0 - -enum opermodes { dummy }; -typedef enum opermodes operandenum; diff --git a/usr.bin/gprof/mips.c b/usr.bin/gprof/mips.c deleted file mode 100644 index b68a2e0..0000000 --- a/usr.bin/gprof/mips.c +++ /dev/null @@ -1,117 +0,0 @@ -/* - * Copyright (c) 1992, 1993 - * The Regents of the University of California. All rights reserved. - * - * This software was developed by the Computer Systems Engineering group - * at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and - * contributed to Berkeley. Modified by Ralph Campbell for mips. - * - * 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. - * - * From: sparc.c 5.1 (Berkeley) 7/7/92 - */ - -#if 0 -#ifndef lint -static char sccsid[] = "@(#)mips.c 8.1 (Berkeley) 6/6/93"; -#endif /* not lint */ -#endif - -#include <sys/cdefs.h> -__FBSDID("$FreeBSD$"); - -#include "gprof.h" - - /* - * a namelist entry to be the child of indirect calls - */ -nltype indirectchild = { - "(*)" , /* the name */ - (unsigned long) 0 , /* the pc entry point */ - (unsigned long) 0 , /* entry point aligned to histogram */ - (double) 0.0 , /* ticks in this routine */ - (double) 0.0 , /* cumulative ticks in children */ - (long) 0 , /* how many times called */ - (long) 0 , /* times called by live arcs */ - (long) 0 , /* how many calls to self */ - (double) 1.0 , /* propagation fraction */ - (double) 0.0 , /* self propagation time */ - (double) 0.0 , /* child propagation time */ - (short) 0 , /* print flag */ - (short) 0 , /* flags */ - (int) 0 , /* index in the graph list */ - (int) 0 , /* graph call chain top-sort order */ - (int) 0 , /* internal number of cycle on */ - (int) 0 , /* number of live parent arcs */ - (struct nl *) &indirectchild , /* pointer to head of cycle */ - (struct nl *) 0 , /* pointer to next member of cycle */ - (arctype *) 0 , /* list of caller arcs */ - (arctype *) 0 /* list of callee arcs */ -}; - -findcall(parentp, p_lowpc, p_highpc) - nltype *parentp; - unsigned long p_lowpc; - unsigned long p_highpc; -{ - register u_long pc; - nltype *childp; - unsigned long destpc; - register long op; - register int off; - - if (textspace == 0) - return; - if (p_lowpc < s_lowpc) - p_lowpc = s_lowpc; - if (p_highpc > s_highpc) - p_highpc = s_highpc; - - for (pc = p_lowpc; pc < p_highpc; pc += 4) { - off = pc - s_lowpc; - op = *(u_long *)&textspace[off]; - if ((op & 0xfc000000) == 0x0c000000) { - /* - * a jal insn -- check that this - * is the address of a function. - */ - off = (op & 0x03ffffff) << 2; - destpc = (pc & 0xf0000000) | off; - if (destpc >= s_lowpc && destpc <= s_highpc) { - childp = nllookup(destpc); - if (childp != 0 && childp->value == destpc) - addarc(parentp, childp, 0L); - } - } else if ((op & 0xfc00f83f) == 0x0000f809) - /* - * A jalr -- an indirect call. - */ - addarc(parentp, &indirectchild, 0L); - } -} diff --git a/usr.bin/gprof/mips.h b/usr.bin/gprof/mips.h deleted file mode 100644 index 7a48afa..0000000 --- a/usr.bin/gprof/mips.h +++ /dev/null @@ -1,50 +0,0 @@ -/*- - * Copyright (c) 1992, 1993 - * The Regents of the University of California. All rights reserved. - * - * This software was developed by the Computer Systems Engineering group - * at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and - * contributed to Berkeley. Modified by Ralph Campbell for mips. - * - * 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. - * - * @(#)mips.h 8.1 (Berkeley) 6/6/93 - * - * From: @(#)sparc.h 5.1 (Berkeley) 7/8/92 - * $FreeBSD$ - */ - -/* - * offset (in bytes) of the code from the entry address of a routine. - * (see asgnsamples for use and explanation.) - */ -#define OFFSET_OF_CODE 0 - -enum opermodes { dummy }; -typedef enum opermodes operandenum; diff --git a/usr.bin/gprof/sparc.c b/usr.bin/gprof/sparc.c deleted file mode 100644 index 553071c3..0000000 --- a/usr.bin/gprof/sparc.c +++ /dev/null @@ -1,115 +0,0 @@ -/* - * Copyright (c) 1992, 1993 - * The Regents of the University of California. All rights reserved. - * - * This software was developed by the Computer Systems Engineering group - * at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and - * contributed to Berkeley. - * - * 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. - */ - -#if 0 -#ifndef lint -static char sccsid[] = "@(#)sparc.c 8.1 (Berkeley) 6/6/93"; -#endif /* not lint */ -#endif - -#include <sys/cdefs.h> -__FBSDID("$FreeBSD$"); - -#include "gprof.h" - - /* - * a namelist entry to be the child of indirect calls - */ -nltype indirectchild = { - "(*)" , /* the name */ - (unsigned long) 0 , /* the pc entry point */ - (unsigned long) 0 , /* entry point aligned to histogram */ - (double) 0.0 , /* ticks in this routine */ - (double) 0.0 , /* cumulative ticks in children */ - (long) 0 , /* how many times called */ - (long) 0 , /* times called by live arcs */ - (long) 0 , /* how many calls to self */ - (double) 1.0 , /* propagation fraction */ - (double) 0.0 , /* self propagation time */ - (double) 0.0 , /* child propagation time */ - (short) 0 , /* print flag */ - (short) 0 , /* flags */ - (int) 0 , /* index in the graph list */ - (int) 0 , /* graph call chain top-sort order */ - (int) 0 , /* internal number of cycle on */ - (int) 0 , /* number of live parent arcs */ - (struct nl *) &indirectchild , /* pointer to head of cycle */ - (struct nl *) 0 , /* pointer to next member of cycle */ - (arctype *) 0 , /* list of caller arcs */ - (arctype *) 0 /* list of callee arcs */ -}; - -findcall(parentp, p_lowpc, p_highpc) - nltype *parentp; - unsigned long p_lowpc; - unsigned long p_highpc; -{ - register u_long pc; - nltype *childp; - unsigned long destpc; - register long op; - register int off; - - if (textspace == 0) - return; - if (p_lowpc < s_lowpc) - p_lowpc = s_lowpc; - if (p_highpc > s_highpc) - p_highpc = s_highpc; - - for (pc = p_lowpc; pc < p_highpc; pc += 4) { - off = pc - s_lowpc; - op = *(u_long *)&textspace[off]; - if ((op & 0xc0000000) == 0x40000000) { - /* - * a pc relative call insn -- check that this - * is the address of a function. - */ - off = (op & 0x3fffffff) << 2; - destpc = pc + off; - if (destpc >= s_lowpc && destpc <= s_highpc) { - childp = nllookup(destpc); - if (childp != 0 && childp->value == destpc) - addarc(parentp, childp, 0L); - } - } else if ((op & 0xfff80000) == 0x9fc00000) - /* - * A jmpl with rd = 15 (%o7) -- an indirect call. - */ - addarc(parentp, &indirectchild, 0L); - } -} diff --git a/usr.bin/gprof/sparc.h b/usr.bin/gprof/sparc.h deleted file mode 100644 index 856e6ad2..0000000 --- a/usr.bin/gprof/sparc.h +++ /dev/null @@ -1,48 +0,0 @@ -/*- - * Copyright (c) 1992, 1993 - * The Regents of the University of California. All rights reserved. - * - * This software was developed by the Computer Systems Engineering group - * at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and - * contributed to Berkeley. - * - * 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. - * - * @(#)sparc.h 8.1 (Berkeley) 6/6/93 - * $FreeBSD$ - */ - -/* - * offset (in bytes) of the code from the entry address of a routine. - * (see asgnsamples for use and explanation.) - */ -#define OFFSET_OF_CODE 0 - -enum opermodes { dummy }; -typedef enum opermodes operandenum; diff --git a/usr.bin/gprof/tahoe.c b/usr.bin/gprof/tahoe.c deleted file mode 100644 index 7a235ac..0000000 --- a/usr.bin/gprof/tahoe.c +++ /dev/null @@ -1,354 +0,0 @@ -/* - * Copyright (c) 1983, 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. - */ - -#if 0 -#ifndef lint -static char sccsid[] = "@(#)tahoe.c 8.1 (Berkeley) 6/6/93"; -#endif /* not lint */ -#endif - -#include <sys/cdefs.h> -__FBSDID("$FreeBSD$"); - -#include "gprof.h" - - /* - * a namelist entry to be the child of indirect callf - */ -nltype indirectchild = { - "(*)" , /* the name */ - (unsigned long) 0 , /* the pc entry point */ - (unsigned long) 0 , /* entry point aligned to histogram */ - (double) 0.0 , /* ticks in this routine */ - (double) 0.0 , /* cumulative ticks in children */ - (long) 0 , /* how many times called */ - (long) 0 , /* how many calls to self */ - (double) 1.0 , /* propagation fraction */ - (double) 0.0 , /* self propagation time */ - (double) 0.0 , /* child propagation time */ - (bool) 0 , /* print flag */ - (int) 0 , /* index in the graph list */ - (int) 0 , /* graph call chain top-sort order */ - (int) 0 , /* internal number of cycle on */ - (struct nl *) &indirectchild , /* pointer to head of cycle */ - (struct nl *) 0 , /* pointer to next member of cycle */ - (arctype *) 0 , /* list of caller arcs */ - (arctype *) 0 /* list of callee arcs */ - }; - -operandenum -operandmode( modep ) - unsigned char *modep; -{ - long usesreg = ((long)*modep) & 0xf; - - switch ( ((long)*modep) >> 4 ) { - case 0: - case 1: - case 2: - case 3: - return literal; - case 4: - return indexed; - case 5: - return reg; - case 6: - return regdef; - case 7: - return autodec; - case 8: - return ( usesreg != 0xe ? autoinc : immediate ); - case 9: - return ( usesreg != PC ? autoincdef : absolute ); - case 10: - return ( usesreg != PC ? bytedisp : byterel ); - case 11: - return ( usesreg != PC ? bytedispdef : bytereldef ); - case 12: - return ( usesreg != PC ? worddisp : wordrel ); - case 13: - return ( usesreg != PC ? worddispdef : wordreldef ); - case 14: - return ( usesreg != PC ? longdisp : longrel ); - case 15: - return ( usesreg != PC ? longdispdef : longreldef ); - } - /* NOTREACHED */ -} - -char * -operandname( mode ) - operandenum mode; -{ - - switch ( mode ) { - case literal: - return "literal"; - case indexed: - return "indexed"; - case reg: - return "register"; - case regdef: - return "register deferred"; - case autodec: - return "autodecrement"; - case autoinc: - return "autoincrement"; - case autoincdef: - return "autoincrement deferred"; - case bytedisp: - return "byte displacement"; - case bytedispdef: - return "byte displacement deferred"; - case byterel: - return "byte relative"; - case bytereldef: - return "byte relative deferred"; - case worddisp: - return "word displacement"; - case worddispdef: - return "word displacement deferred"; - case wordrel: - return "word relative"; - case wordreldef: - return "word relative deferred"; - case immediate: - return "immediate"; - case absolute: - return "absolute"; - case longdisp: - return "long displacement"; - case longdispdef: - return "long displacement deferred"; - case longrel: - return "long relative"; - case longreldef: - return "long relative deferred"; - } - /* NOTREACHED */ -} - -long -operandlength( modep ) - unsigned char *modep; -{ - - switch ( operandmode( modep ) ) { - case literal: - case reg: - case regdef: - case autodec: - case autoinc: - case autoincdef: - return 1; - case bytedisp: - case bytedispdef: - case byterel: - case bytereldef: - return 2; - case worddisp: - case worddispdef: - case wordrel: - case wordreldef: - return 3; - case immediate: - case absolute: - case longdisp: - case longdispdef: - case longrel: - case longreldef: - return 5; - case indexed: - return 1+operandlength( modep + 1 ); - } - /* NOTREACHED */ -} - -unsigned long -reladdr( modep ) - char *modep; -{ - operandenum mode = operandmode( modep ); - char *cp; - short *sp; - long *lp; - int i; - long value = 0; - - cp = modep; - cp += 1; /* skip over the mode */ - switch ( mode ) { - default: - fprintf( stderr , "[reladdr] not relative address\n" ); - return (unsigned long) modep; - case byterel: - return (unsigned long) ( cp + sizeof *cp + *cp ); - case wordrel: - for (i = 0; i < sizeof *sp; i++) - value = (value << 8) + (cp[i] & 0xff); - return (unsigned long) ( cp + sizeof *sp + value ); - case longrel: - for (i = 0; i < sizeof *lp; i++) - value = (value << 8) + (cp[i] & 0xff); - return (unsigned long) ( cp + sizeof *lp + value ); - } -} - -findcall( parentp , p_lowpc , p_highpc ) - nltype *parentp; - unsigned long p_lowpc; - unsigned long p_highpc; -{ - unsigned char *instructp; - long length; - nltype *childp; - operandenum mode; - operandenum firstmode; - unsigned long destpc; - - if ( textspace == 0 ) { - return; - } - if ( p_lowpc < s_lowpc ) { - p_lowpc = s_lowpc; - } - if ( p_highpc > s_highpc ) { - p_highpc = s_highpc; - } -# ifdef DEBUG - if ( debug & CALLDEBUG ) { - printf( "[findcall] %s: 0x%x to 0x%x\n" , - parentp -> name , p_lowpc , p_highpc ); - } -# endif DEBUG - for ( instructp = textspace + p_lowpc ; - instructp < textspace + p_highpc ; - instructp += length ) { - length = 1; - if ( *instructp == CALLF ) { - /* - * maybe a callf, better check it out. - * skip the count of the number of arguments. - */ -# ifdef DEBUG - if ( debug & CALLDEBUG ) { - printf( "[findcall]\t0x%x:callf" , instructp - textspace ); - } -# endif DEBUG - firstmode = operandmode( instructp+length ); - switch ( firstmode ) { - case literal: - case immediate: - break; - default: - goto botched; - } - length += operandlength( instructp+length ); - mode = operandmode( instructp + length ); -# ifdef DEBUG - if ( debug & CALLDEBUG ) { - printf( "\tfirst operand is %s", operandname( firstmode ) ); - printf( "\tsecond operand is %s\n" , operandname( mode ) ); - } -# endif DEBUG - switch ( mode ) { - case regdef: - case bytedispdef: - case worddispdef: - case longdispdef: - case bytereldef: - case wordreldef: - case longreldef: - /* - * indirect call: call through pointer - * either *d(r) as a parameter or local - * (r) as a return value - * *f as a global pointer - * [are there others that we miss?, - * e.g. arrays of pointers to functions???] - */ - addarc( parentp , &indirectchild , (long) 0 ); - length += operandlength( instructp + length ); - continue; - case byterel: - case wordrel: - case longrel: - /* - * regular pc relative addressing - * check that this is the address of - * a function. - */ - destpc = reladdr( instructp+length ) - - (unsigned long) textspace; - if ( destpc >= s_lowpc && destpc <= s_highpc ) { - childp = nllookup( destpc ); -# ifdef DEBUG - if ( debug & CALLDEBUG ) { - printf( "[findcall]\tdestpc 0x%x" , destpc ); - printf( " childp->name %s" , childp -> name ); - printf( " childp->value 0x%x\n" , - childp -> value ); - } -# endif DEBUG - if ( childp -> value == destpc ) { - /* - * a hit - */ - addarc( parentp , childp , (long) 0 ); - length += operandlength( instructp + length ); - continue; - } - goto botched; - } - /* - * else: - * it looked like a callf, - * but it wasn't to anywhere. - */ - goto botched; - default: - botched: - /* - * something funny going on. - */ -# ifdef DEBUG - if ( debug & CALLDEBUG ) { - printf( "[findcall]\tbut it's a botch\n" ); - } -# endif DEBUG - length = 1; - continue; - } - } - } -} diff --git a/usr.bin/gprof/tahoe.h b/usr.bin/gprof/tahoe.h deleted file mode 100644 index 0a63975..0000000 --- a/usr.bin/gprof/tahoe.h +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright (c) 1983, 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. - * - * @(#)tahoe.h 8.1 (Berkeley) 6/6/93 - * $FreeBSD$ - */ - - /* - * opcode of the `callf' instruction - */ -#define CALLF 0xfe - - /* - * offset (in bytes) of the code from the entry address of a routine. - * (see asgnsamples for use and explanation.) - */ -#define OFFSET_OF_CODE 2 - - /* - * register for pc relative addressing - */ -#define PC 0xf - -enum opermodes { - literal, indexed, reg, regdef, autodec, autoinc, autoincdef, - bytedisp, bytedispdef, worddisp, worddispdef, longdisp, longdispdef, - immediate, absolute, byterel, bytereldef, wordrel, wordreldef, - longrel, longreldef -}; -typedef enum opermodes operandenum; diff --git a/usr.bin/gprof/vax.c b/usr.bin/gprof/vax.c deleted file mode 100644 index 30838b5..0000000 --- a/usr.bin/gprof/vax.c +++ /dev/null @@ -1,352 +0,0 @@ -/* - * Copyright (c) 1983, 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. - */ - -#if 0 -#ifndef lint -static char sccsid[] = "@(#)vax.c 8.1 (Berkeley) 6/6/93"; -#endif /* not lint */ -#endif - -#include <sys/cdefs.h> -__FBSDID("$FreeBSD$"); - -#include "gprof.h" - - /* - * a namelist entry to be the child of indirect calls - */ -nltype indirectchild = { - "(*)" , /* the name */ - (unsigned long) 0 , /* the pc entry point */ - (unsigned long) 0 , /* entry point aligned to histogram */ - (double) 0.0 , /* ticks in this routine */ - (double) 0.0 , /* cumulative ticks in children */ - (long) 0 , /* how many times called */ - (long) 0 , /* how many calls to self */ - (double) 1.0 , /* propagation fraction */ - (double) 0.0 , /* self propagation time */ - (double) 0.0 , /* child propagation time */ - (bool) 0 , /* print flag */ - (int) 0 , /* index in the graph list */ - (int) 0 , /* graph call chain top-sort order */ - (int) 0 , /* internal number of cycle on */ - (struct nl *) &indirectchild , /* pointer to head of cycle */ - (struct nl *) 0 , /* pointer to next member of cycle */ - (arctype *) 0 , /* list of caller arcs */ - (arctype *) 0 /* list of callee arcs */ - }; - -operandenum -operandmode( modep ) - struct modebyte *modep; -{ - long usesreg = modep -> regfield; - - switch ( modep -> modefield ) { - case 0: - case 1: - case 2: - case 3: - return literal; - case 4: - return indexed; - case 5: - return reg; - case 6: - return regdef; - case 7: - return autodec; - case 8: - return ( usesreg != PC ? autoinc : immediate ); - case 9: - return ( usesreg != PC ? autoincdef : absolute ); - case 10: - return ( usesreg != PC ? bytedisp : byterel ); - case 11: - return ( usesreg != PC ? bytedispdef : bytereldef ); - case 12: - return ( usesreg != PC ? worddisp : wordrel ); - case 13: - return ( usesreg != PC ? worddispdef : wordreldef ); - case 14: - return ( usesreg != PC ? longdisp : longrel ); - case 15: - return ( usesreg != PC ? longdispdef : longreldef ); - } - /* NOTREACHED */ -} - -char * -operandname( mode ) - operandenum mode; -{ - - switch ( mode ) { - case literal: - return "literal"; - case indexed: - return "indexed"; - case reg: - return "register"; - case regdef: - return "register deferred"; - case autodec: - return "autodecrement"; - case autoinc: - return "autoincrement"; - case autoincdef: - return "autoincrement deferred"; - case bytedisp: - return "byte displacement"; - case bytedispdef: - return "byte displacement deferred"; - case byterel: - return "byte relative"; - case bytereldef: - return "byte relative deferred"; - case worddisp: - return "word displacement"; - case worddispdef: - return "word displacement deferred"; - case wordrel: - return "word relative"; - case wordreldef: - return "word relative deferred"; - case immediate: - return "immediate"; - case absolute: - return "absolute"; - case longdisp: - return "long displacement"; - case longdispdef: - return "long displacement deferred"; - case longrel: - return "long relative"; - case longreldef: - return "long relative deferred"; - } - /* NOTREACHED */ -} - -long -operandlength( modep ) - struct modebyte *modep; -{ - - switch ( operandmode( modep ) ) { - case literal: - case reg: - case regdef: - case autodec: - case autoinc: - case autoincdef: - return 1; - case bytedisp: - case bytedispdef: - case byterel: - case bytereldef: - return 2; - case worddisp: - case worddispdef: - case wordrel: - case wordreldef: - return 3; - case immediate: - case absolute: - case longdisp: - case longdispdef: - case longrel: - case longreldef: - return 5; - case indexed: - return 1+operandlength( (struct modebyte *) ((char *) modep) + 1 ); - } - /* NOTREACHED */ -} - -unsigned long -reladdr( modep ) - struct modebyte *modep; -{ - operandenum mode = operandmode( modep ); - char *cp; - short *sp; - long *lp; - - cp = (char *) modep; - cp += 1; /* skip over the mode */ - switch ( mode ) { - default: - fprintf( stderr , "[reladdr] not relative address\n" ); - return (unsigned long) modep; - case byterel: - return (unsigned long) ( cp + sizeof *cp + *cp ); - case wordrel: - sp = (short *) cp; - return (unsigned long) ( cp + sizeof *sp + *sp ); - case longrel: - lp = (long *) cp; - return (unsigned long) ( cp + sizeof *lp + *lp ); - } -} - -findcall( parentp , p_lowpc , p_highpc ) - nltype *parentp; - unsigned long p_lowpc; - unsigned long p_highpc; -{ - unsigned char *instructp; - long length; - nltype *childp; - operandenum mode; - operandenum firstmode; - unsigned long destpc; - - if ( textspace == 0 ) { - return; - } - if ( p_lowpc < s_lowpc ) { - p_lowpc = s_lowpc; - } - if ( p_highpc > s_highpc ) { - p_highpc = s_highpc; - } -# ifdef DEBUG - if ( debug & CALLDEBUG ) { - printf( "[findcall] %s: 0x%x to 0x%x\n" , - parentp -> name , p_lowpc , p_highpc ); - } -# endif DEBUG - for ( instructp = textspace + p_lowpc ; - instructp < textspace + p_highpc ; - instructp += length ) { - length = 1; - if ( *instructp == CALLS ) { - /* - * maybe a calls, better check it out. - * skip the count of the number of arguments. - */ -# ifdef DEBUG - if ( debug & CALLDEBUG ) { - printf( "[findcall]\t0x%x:calls" , instructp - textspace ); - } -# endif DEBUG - firstmode = operandmode( (struct modebyte *) (instructp+length) ); - switch ( firstmode ) { - case literal: - case immediate: - break; - default: - goto botched; - } - length += operandlength( (struct modebyte *) (instructp+length) ); - mode = operandmode( (struct modebyte *) ( instructp + length ) ); -# ifdef DEBUG - if ( debug & CALLDEBUG ) { - printf( "\tfirst operand is %s", operandname( firstmode ) ); - printf( "\tsecond operand is %s\n" , operandname( mode ) ); - } -# endif DEBUG - switch ( mode ) { - case regdef: - case bytedispdef: - case worddispdef: - case longdispdef: - case bytereldef: - case wordreldef: - case longreldef: - /* - * indirect call: call through pointer - * either *d(r) as a parameter or local - * (r) as a return value - * *f as a global pointer - * [are there others that we miss?, - * e.g. arrays of pointers to functions???] - */ - addarc( parentp , &indirectchild , (long) 0 ); - length += operandlength( - (struct modebyte *) ( instructp + length ) ); - continue; - case byterel: - case wordrel: - case longrel: - /* - * regular pc relative addressing - * check that this is the address of - * a function. - */ - destpc = reladdr( (struct modebyte *) (instructp+length) ) - - (unsigned long) textspace; - if ( destpc >= s_lowpc && destpc <= s_highpc ) { - childp = nllookup( destpc ); -# ifdef DEBUG - if ( debug & CALLDEBUG ) { - printf( "[findcall]\tdestpc 0x%x" , destpc ); - printf( " childp->name %s" , childp -> name ); - printf( " childp->value 0x%x\n" , - childp -> value ); - } -# endif DEBUG - if ( childp -> value == destpc ) { - /* - * a hit - */ - addarc( parentp , childp , (long) 0 ); - length += operandlength( (struct modebyte *) - ( instructp + length ) ); - continue; - } - goto botched; - } - /* - * else: - * it looked like a calls, - * but it wasn't to anywhere. - */ - goto botched; - default: - botched: - /* - * something funny going on. - */ -# ifdef DEBUG - if ( debug & CALLDEBUG ) { - printf( "[findcall]\tbut it's a botch\n" ); - } -# endif DEBUG - length = 1; - continue; - } - } - } -} diff --git a/usr.bin/gprof/vax.h b/usr.bin/gprof/vax.h deleted file mode 100644 index cb24524..0000000 --- a/usr.bin/gprof/vax.h +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Copyright (c) 1983, 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. - * - * @(#)vax.h 8.1 (Berkeley) 6/6/93 - * $FreeBSD$ - */ - - /* - * opcode of the `calls' instruction - */ -#define CALLS 0xfb - - /* - * offset (in bytes) of the code from the entry address of a routine. - * (see asgnsamples for use and explanation.) - */ -#define OFFSET_OF_CODE 2 - - /* - * register for pc relative addressing - */ -#define PC 0xf - -enum opermodes { - literal, indexed, reg, regdef, autodec, autoinc, autoincdef, - bytedisp, bytedispdef, worddisp, worddispdef, longdisp, longdispdef, - immediate, absolute, byterel, bytereldef, wordrel, wordreldef, - longrel, longreldef -}; -typedef enum opermodes operandenum; - -struct modebyte { - unsigned int regfield:4; - unsigned int modefield:4; -}; - |