asmacros.h revision 84176
1/*- 2 * Copyright (c) 2001 Jake Burkholder. 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright 9 * notice, this list of conditions and the following disclaimer. 10 * 2. Redistributions in binary form must reproduce the above copyright 11 * notice, this list of conditions and the following disclaimer in the 12 * documentation and/or other materials provided with the distribution. 13 * 14 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 15 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 18 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24 * SUCH DAMAGE. 25 * 26 * $FreeBSD: head/sys/sparc64/include/asmacros.h 84176 2001-09-30 18:41:57Z jake $ 27 */ 28 29#ifndef _MACHINE_ASMACROS_H_ 30#define _MACHINE_ASMACROS_H_ 31 32#ifdef _KERNEL 33 34 .register %g2,#ignore 35 .register %g3,#ignore 36 .register %g6,#ignore 37 .register %g7,#ignore 38 39#define PCPU(member) %g7 + GD_ ## member 40#define PCPU_ADDR(member, reg) add %g7, GD_ ## member, reg 41 42#define DEBUGGER() ta %xcc, 1 43 44#define PANIC(msg, reg) \ 45 .sect .rodata ; \ 469: .asciz msg ; \ 47 .previous ; \ 48 setx 9b, reg, %o0 ; \ 49 call panic ; \ 50 nop 51 52#endif 53 54#define DATA(name) \ 55 .data ; \ 56 .globl name ; \ 57 .type name, @object ; \ 58name ## : 59 60#define EMPTY 61 62#define ENTRY(name) \ 63 .text ; \ 64 .align 16 ; \ 65 .globl name ; \ 66 .type name, @function ; \ 67name ## : 68 69#define END(name) \ 70 .size name, . - name 71 72#endif /* !_MACHINE_ASMACROS_H_ */ 73