asmacros.h revision 84176
134461Speter/*- 234461Speter * Copyright (c) 2001 Jake Burkholder. 334461Speter * All rights reserved. 434461Speter * 534461Speter * Redistribution and use in source and binary forms, with or without 634461Speter * modification, are permitted provided that the following conditions 734461Speter * are met: 834461Speter * 1. Redistributions of source code must retain the above copyright 934461Speter * notice, this list of conditions and the following disclaimer. 1034461Speter * 2. Redistributions in binary form must reproduce the above copyright 1134461Speter * notice, this list of conditions and the following disclaimer in the 1234461Speter * documentation and/or other materials provided with the distribution. 1334461Speter * 1434461Speter * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 1534461Speter * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 1634461Speter * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 1734461Speter * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 1834461Speter * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 1934461Speter * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 2034461Speter * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 2134461Speter * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 2234461Speter * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 2334461Speter * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 2434461Speter * SUCH DAMAGE. 2534461Speter * 2634461Speter * $FreeBSD: head/sys/sparc64/include/asmacros.h 84176 2001-09-30 18:41:57Z jake $ 2732785Speter */ 2832785Speter 2932785Speter#ifndef _MACHINE_ASMACROS_H_ 3032785Speter#define _MACHINE_ASMACROS_H_ 3132785Speter 3232785Speter#ifdef _KERNEL 3332785Speter 3432785Speter .register %g2,#ignore 3532785Speter .register %g3,#ignore 3632785Speter .register %g6,#ignore 3732785Speter .register %g7,#ignore 3832785Speter 3932785Speter#define PCPU(member) %g7 + GD_ ## member 4032785Speter#define PCPU_ADDR(member, reg) add %g7, GD_ ## member, reg 4132785Speter 4232785Speter#define DEBUGGER() ta %xcc, 1 4332785Speter 4432785Speter#define PANIC(msg, reg) \ 4532785Speter .sect .rodata ; \ 4632785Speter9: .asciz msg ; \ 4732785Speter .previous ; \ 4832785Speter setx 9b, reg, %o0 ; \ 4932785Speter call panic ; \ 5032785Speter nop 5132785Speter 5232785Speter#endif 5332785Speter 5432785Speter#define DATA(name) \ 5532785Speter .data ; \ 5632785Speter .globl name ; \ 5732785Speter .type name, @object ; \ 5832785Spetername ## : 5932785Speter 6032785Speter#define EMPTY 6132785Speter 6232785Speter#define ENTRY(name) \ 6332785Speter .text ; \ 6432785Speter .align 16 ; \ 6532785Speter .globl name ; \ 6632785Speter .type name, @function ; \ 6732785Spetername ## : 6832785Speter 6932785Speter#define END(name) \ 7032785Speter .size name, . - name 7132785Speter 7232785Speter#endif /* !_MACHINE_ASMACROS_H_ */ 7332785Speter