diff options
author | benno <benno@FreeBSD.org> | 2001-01-07 03:43:21 +0000 |
---|---|---|
committer | benno <benno@FreeBSD.org> | 2001-01-07 03:43:21 +0000 |
commit | 4814964c58402679456d5cd5f24e99aa61237096 (patch) | |
tree | 8455712fa8a072c2c4c93ab96a53bd55b5781be2 /sys/powerpc | |
parent | 297080615ff78e2ed5109c0e4270ea432bca4410 (diff) | |
download | FreeBSD-src-4814964c58402679456d5cd5f24e99aa61237096.zip FreeBSD-src-4814964c58402679456d5cd5f24e99aa61237096.tar.gz |
PowerPC assembler #defines.
Reviewed by: obrien
Obtained from: NetBSD
Diffstat (limited to 'sys/powerpc')
-rw-r--r-- | sys/powerpc/include/asm.h | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/sys/powerpc/include/asm.h b/sys/powerpc/include/asm.h new file mode 100644 index 0000000..14d2596 --- /dev/null +++ b/sys/powerpc/include/asm.h @@ -0,0 +1,95 @@ +/* $FreeBSD$ */ + +/* + * Copyright (C) 1995, 1996 Wolfgang Solfrank. + * Copyright (C) 1995, 1996 TooLs GmbH. + * 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 TooLs GmbH. + * 4. The name of TooLs GmbH may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY TOOLS GMBH ``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 TOOLS GMBH 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. + * + * $NetBSD: asm.h,v 1.6.18.1 2000/07/25 08:37:14 kleink Exp $ + */ + +#ifndef _MACHINE_ASM_H_ +#define _MACHINE_ASM_H_ + +#ifdef PIC +#define PIC_PROLOGUE XXX +#define PIC_EPILOGUE XXX +#define PIC_PLT(x) x@plt +#ifdef __STDC__ +#define PIC_GOT(x) XXX +#define PIC_GOTOFF(x) XXX +#else /* not __STDC__ */ +#define PIC_GOT(x) XXX +#define PIC_GOTOFF(x) XXX +#endif /* __STDC__ */ +#else +#define PIC_PROLOGUE +#define PIC_EPILOGUE +#define PIC_PLT(x) x +#define PIC_GOT(x) x +#define PIC_GOTOFF(x) x +#endif + +#define _C_LABEL(x) x +#define _ASM_LABEL(x) x + +#define _GLOBAL(x) \ + .data; .align 2; .globl x; x: + +#define _ENTRY(x) \ + .text; .align 2; .globl x; .type x,@function; x: + +#ifdef GPROF +# define _PROF_PROLOGUE mflr 0; stw 0,4(1); bl _mcount +#else +# define _PROF_PROLOGUE +#endif + +#define ENTRY(y) _ENTRY(_C_LABEL(y)); _PROF_PROLOGUE +#define ASENTRY(y) _ENTRY(_ASM_LABEL(y)); _PROF_PROLOGUE +#define GLOBAL(y) _GLOBAL(_C_LABEL(y)) + +#define ASMSTR .asciz + +#define RCSID(x) .text; .asciz x + +#ifdef __ELF__ +#define WEAK_ALIAS(alias,sym) \ + .weak alias; \ + alias = sym +#endif + +#ifdef __STDC__ +#define WARN_REFERENCES(_sym,_msg) \ + .section .gnu.warning. ## _sym ; .ascii _msg ; .text +#else +#define WARN_REFERENCES(_sym,_msg) \ + .section .gnu.warning./**/_sym ; .ascii _msg ; .text +#endif /* __STDC__ */ + +#endif /* !_MACHINE_ASM_H_ */ |