diff options
Diffstat (limited to 'sys/ia64/include/profile.h')
-rw-r--r-- | sys/ia64/include/profile.h | 117 |
1 files changed, 29 insertions, 88 deletions
diff --git a/sys/ia64/include/profile.h b/sys/ia64/include/profile.h index 518b974..6c06e07 100644 --- a/sys/ia64/include/profile.h +++ b/sys/ia64/include/profile.h @@ -1,99 +1,37 @@ -/* $FreeBSD$ */ -/* From: NetBSD: profile.h,v 1.9 1997/04/06 08:47:37 cgd Exp */ - /* - * Copyright (c) 1994, 1995, 1996 Carnegie-Mellon University. + * Copyright (c) 2004 Marcel Moolenaar * All rights reserved. * - * Author: Chris G. Demetriou - * - * Permission to use, copy, modify and distribute this software and - * its documentation is hereby granted, provided that both the copyright - * notice and this permission notice appear in all copies of the - * software, derivative works or modified versions, and any portions - * thereof, and that both notices appear in supporting documentation. - * - * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" - * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND - * FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. - * - * Carnegie Mellon requests users of this software to return to + * 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. * - * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU - * School of Computer Science - * Carnegie Mellon University - * Pittsburgh PA 15213-3890 + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. * - * any improvements or extensions that they make and grant Carnegie the - * rights to redistribute these changes. + * $FreeBSD$ */ -#define _MCOUNT_DECL void mcount - -#define FUNCTION_ALIGNMENT 32 +#define _MCOUNT_DECL void __mcount +#define MCOUNT -typedef u_long fptrdiff_t; +#define FUNCTION_ALIGNMENT 32 -#define MCOUNT __asm (" \n\ - .globl _mcount \n\ - .proc _mcount \n\ -_mcount: \n\ - alloc loc0=ar.pfs,8,7,2,0 // space to save r8-r11,rp,b7 \n\ - add sp=-8*16,sp // space to save f8-f15 \n\ - mov loc1=rp // caller's return address \n\ - mov loc2=b7 // our return back to caller \n\ - ;; \n\ - add r17=16,sp // leave 16 bytes for mcount \n\ - add r18=32,sp \n\ - ;; \n\ - mov loc3=r8 // structure return address \n\ - mov loc4=r9 // language specific \n\ - mov loc5=r10 // language specific \n\ - mov loc6=r11 // language specific \n\ - ;; \n\ - stf.spill [r17]=f8,32 // save float arguments \n\ - stf.spill [r18]=f9,32 \n\ - mov out0=rp // frompc \n\ - ;; \n\ - stf.spill [r17]=f10,32 \n\ - stf.spill [r18]=f11,32 \n\ - mov out1=b7 // selfpc \n\ - ;; \n\ - stf.spill [r17]=f12,32 \n\ - stf.spill [r18]=f13,32 \n\ - ;; \n\ - stf.spill [r17]=f14,32 \n\ - stf.spill [r18]=f15,32 \n\ - ;; \n\ - br.call.sptk.many rp=mcount \n\ - ;; \n\ - add r17=16,sp \n\ - add r18=32,sp \n\ - ;; \n\ - ldf.fill f8=[r17],32 \n\ - ldf.fill f9=[r18],32 \n\ - mov r8=loc3 // restore structure pointer \n\ - ;; \n\ - ldf.fill f10=[r17],32 // restore float arguments \n\ - ldf.fill f11=[r18],32 \n\ - mov r9=loc4 \n\ - ;; \n\ - ldf.fill f12=[r17],32 // etc. \n\ - ldf.fill f13=[r18],32 \n\ - mov r10=loc5 \n\ - ;; \n\ - ldf.fill f14=[r17],32 \n\ - ldf.fill f15=[r18],32 \n\ - mov r11=loc6 \n\ - ;; \n\ - mov b7=loc2 // clean up \n\ - mov rp=loc1 \n\ - mov ar.pfs=loc0 \n\ - ;; \n\ - alloc r14=ar.pfs,0,0,8,0 // drop our register frame \n\ - br.sptk.many b7 // back to caller \n\ - \n\ - .end _mcount"); +typedef unsigned long fptrdiff_t; #ifdef _KERNEL /* @@ -104,6 +42,9 @@ _mcount: \n\ #define MCOUNT_EXIT(s) \n\ intr_restore(_c) #define MCOUNT_DECL(s) register_t c; + #else /* !_KERNEL */ -typedef u_long uintfptr_t; + +typedef unsigned long uintfptr_t; + #endif |