summaryrefslogtreecommitdiff
path: root/sys/arch/luna88k/include/asm.h
diff options
context:
space:
mode:
Diffstat (limited to 'sys/arch/luna88k/include/asm.h')
-rw-r--r--sys/arch/luna88k/include/asm.h313
1 files changed, 3 insertions, 310 deletions
diff --git a/sys/arch/luna88k/include/asm.h b/sys/arch/luna88k/include/asm.h
index 37e414359c7..d4edacc3046 100644
--- a/sys/arch/luna88k/include/asm.h
+++ b/sys/arch/luna88k/include/asm.h
@@ -1,310 +1,3 @@
-/* $OpenBSD: asm.h,v 1.1 2004/04/21 15:23:56 aoyama Exp $ */
-
-/*
- * Mach Operating System
- * Copyright (c) 1993-1992 Carnegie Mellon University
- * Copyright (c) 1991 OMRON Corporation
- * All Rights Reserved.
- *
- * 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 AND OMRON ALLOW FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION. CARNEGIE MELLON AND OMRON DISCLAIM 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
- *
- * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU
- * School of Computer Science
- * Carnegie Mellon University
- * Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie the
- * rights to redistribute these changes.
- */
-
-#ifndef __MACHINE_M88K_ASM_H__
-#define __MACHINE_M88K_ASM_H__
-
-#ifdef __STDC__
-#define _C_LABEL(name) _ ## name
-#else
-#define _C_LABEL(name) _/**/name
-#endif
-
-#define _ASM_LABEL(name) name
-
-#define _ENTRY(name) \
- .text; .align 8; .globl name; name:
-
-#define ENTRY(name) _ENTRY(_C_LABEL(name))
-#define ASENTRY(name) _ENTRY(_ASM_LABEL(name))
-
-#define GLOBAL(name) \
- .globl _C_LABEL(name); _C_LABEL(name):
-
-#define ASGLOBAL(name) \
- .globl _ASM_LABEL(name); _ASM_LABEL(name):
-
-#define LOCAL(name) \
- _C_LABEL(name):
-
-#define ASLOCAL(name) \
- _ASM_LABEL(name):
-
-#define BSS(name, size) \
- .comm _C_LABEL(name), size
-
-#define ASBSS(name, size) \
- .comm _ASM_LABEL(name), size
-
-#ifdef __ELF__
-#define WEAK_ALIAS(alias,sym) \
- .weak alias; \
- alias = sym
-#else
-#ifdef __STDC__
-#define WEAK_ALIAS(alias,sym) \
- .weak _##alias; \
- _##alias = _##sym
-#else
-#define WEAK_ALIAS(alias,sym) \
- .weak _/**/alias; \
- _/**/alias = _/**/sym
-#endif
-#endif
-
-#ifdef _KERNEL
-
-/*
- * Control register symbolic names
- */
-
-#define PID cr0
-#define PSR cr1
-#define EPSR cr2
-#define SSBR cr3
-#define SXIP cr4
-#define SNIP cr5
-#define SFIP cr6
-#define VBR cr7
-#define DMT0 cr8
-#define DMD0 cr9
-#define DMA0 cr10
-#define DMT1 cr11
-#define DMD1 cr12
-#define DMA1 cr13
-#define DMT2 cr14
-#define DMD2 cr15
-#define DMA2 cr16
-#define SR0 cr17
-#define SR1 cr18
-#define SR2 cr19
-#define SR3 cr20
-
-/* MVME197 only */
-#define SRX cr16
-#define EXIP cr4
-#define ENIP cr5
-#define ICMD cr25
-#define ICTL cr26
-#define ISAR cr27
-#define ISAP cr28
-#define IUAP cr29
-#define IIR cr30
-#define IBP cr31
-#define IPPU cr32
-#define IPPL cr33
-#define ISR cr34
-#define ILAR cr35
-#define IPAR cr36
-#define DCMD cr40
-#define DCTL cr41
-#define DSAR cr42
-#define DSAP cr43
-#define DUAP cr44
-#define DIR cr45
-#define DBP cr46
-#define DPPU cr47
-#define DPPL cr48
-#define DSR cr49
-#define DLAR cr50
-#define DPAR cr51
-/* end MVME197 only */
-
-#define FPECR fcr0
-#define FPHS1 fcr1
-#define FPLS1 fcr2
-#define FPHS2 fcr3
-#define FPLS2 fcr4
-#define FPPT fcr5
-#define FPRH fcr6
-#define FPRL fcr7
-#define FPIT fcr8
-#define FPSR fcr62
-#define FPCR fcr63
-
-/*
- * At various times, there is the need to clear the pipeline (i.e.
- * synchronize). A "tb1 0, r0, foo" will do that (because a trap
- * instruction always synchronizes, and this particular instruction
- * will never actually take the trap).
- */
-#if 0
-#define FLUSH_PIPELINE tcnd ne0, r0, 0
-#define FLUSH_PIPELINE_STRING "tcnd ne0, r0, 0"
-#else
-#define FLUSH_PIPELINE tb1 0, r0, 0
-#define FLUSH_PIPELINE_STRING "tb1 0, r0, 0"
-#endif
-#define NOP or r0, r0, r0
-#define NOP_STRING "or r0, r0, r0"
-
-#define RTE NOP ; rte
-
-/*
- * Useful in some situations.
- */
-#define CALL(NAME, ARG1, ARG2) \
- subu r31, r31, 32; \
- or r2, r0, ARG1; \
- bsr.n NAME; \
- or r3, r0, ARG2; \
- addu r31, r31, 32
-
-/* This define is similar to CALL, but accepts a function pointer XXX smurph */
-#define CALLP(NAME, ARG1, ARG2) \
- subu r31, r31, 32; \
- or.u r5, r0, hi16(NAME); \
- ld r4, r5, lo16(NAME); \
- or r2, r0, ARG1; \
- jsr.n r4; \
- or r3, r0, ARG2; \
- addu r31, r31, 32
-
-/*
- * SR1 - CPU FLAGS REGISTER
- * XXX clean this when the trap handler is reworked. Among the things
- * I like to see is having the trap frame on the kernel stack instead
- * of putting in the PCB. If done properly, we don't need SR1 for doing
- * anything special. nivas
- *
- * SR1 contains flags about the current CPU status.
- *
- * The bit FLAG_IGNORE_DATA_EXCEPTION indicates that any data exceptions
- * should be ignored (well, at least treated in a special way).
- * The bit FLAG_ENABLING_FPU indicates that the exception handler is
- * in the process of enabling the FPU (so that an exception can
- * be serviced). This is needed because enabling the FPU can
- * cause other exceptions to happen, and the whole system is
- * in a rather precarious state and so special cautions must
- * be taken.
- */
-#define FLAG_CPU_FIELD_WIDTH 2 /* must be <= 12 */
-#define FLAG_IGNORE_DATA_EXCEPTION 5
-#define FLAG_ENABLING_FPU 7
-#define FLAG_FROM_KERNEL 8
-
-/* REGister OFFset into the E.F. (exception frame) */
-#define REG_OFF(reg_num) ((reg_num) * 4) /* (num * sizeof(register_t)) */
-#define GENREG_OFF(num) (REG_OFF(EF_R0 + (num))) /* GENeral REGister OFFset */
-
-/*
- * Some registers used during the setting up of the new exception frame.
- * Don't choose r1, r30, or r31 for any of them.
- *
- * Also, if any are 'r2' or 'r3', be careful using with CALL above!
- */
-#define FLAGS r2
-#define TMP r3
-#define TMP2 r10
-#define TMP3 r11
-#define SAVE_TMP2 st r10, r31, GENREG_OFF(10)
-#define SAVE_TMP3 st r11, r31, GENREG_OFF(11)
-#define RESTORE_TMP2 ld r10, r31, GENREG_OFF(10)
-#define RESTORE_TMP3 ld r11, r31, GENREG_OFF(11)
-
-/*
- * Info about the PSR
- */
-#define PSR_SHADOW_FREEZE_BIT 0
-#define PSR_INTERRUPT_DISABLE_BIT 1
-#define PSR_FPU_DISABLE_BIT 3
-#define PSR_BIG_ENDIAN_MODE 30
-#define PSR_SUPERVISOR_MODE_BIT 31
-/*
- * mc88110 PSR bit definitions (MVME197)
- */
-#define PSR_GRAPHICS_DISABLE_BIT 4
-#define PSR_SERIAL_MODE_BIT 29
-#define PSR_CARRY_BIT 28
-#define PSR_SERIALIZE_BIT 25
-
-/*
- * Status bits for an SXIP/SNIP/SFIP address.
- */
-#define RTE_VALID_BIT 1
-#define RTE_ERROR_BIT 0
-
-/*
- * Info about DMT0/DMT1/DMT2
- */
-#define DMT_VALID_BIT 0
-#define DMT_WRITE_BIT 1
-#define DMT_LOCK_BIT 12
-#define DMT_DOUBLE_BIT 13
-#define DMT_DAS_BIT 14
-#define DMT_DREG_OFFSET 7
-#define DMT_DREG_WIDTH 5
-
-/*
- * Bits for eh_debug.
- */
-#define DEBUG_INTERRUPT_BIT 0
-#define DEBUG_DATA_BIT 1
-#define DEBUG_INSTRUCTION_BIT 2
-#define DEBUG_MISALIGN_BIT 3
-#define DEBUG_UNIMP_BIT 4
-#define DEBUG_DIVIDE_BIT 5
-#define DEBUG_OF_BIT 6
-#define DEBUG_FPp_BIT 7
-#define DEBUG_FPi_BIT 8
-#define DEBUG_SYSCALL_BIT 9
-#define DEBUG_MACHSYSCALL_BIT 10
-#define DEBUG_UNIMPLEMENTED_BIT 11
-#define DEBUG_PRIVILEGE_BIT 12
-#define DEBUG_BOUNDS_BIT 13
-#define DEBUG_OVERFLOW_BIT 14
-#define DEBUG_ERROR_BIT 15
-#define DEBUG_SIGSYS_BIT 16
-#define DEBUG_SIGTRAP_BIT 17
-#define DEBUG_BREAK_BIT 18
-#define DEBUG_TRACE_BIT 19
-#define DEBUG_KDB_BIT 20
-#define DEBUG_JKDB_BIT 21
-#define DEBUG_BUGCALL_BIT 22
-/* MVME197 Non-Maskable Interrupt */
-#define DEBUG_NON_MASK_BIT 23
-/* MVME197 Data Read Miss (Software Table Searches) */
-#define DEBUG_197_READ_BIT 25
-/* MVME197 Data Write Miss (Software Table Searches) */
-#define DEBUG_197_WRITE_BIT 26
-/* MVME197 Inst ATC Miss (Software Table Searches) */
-#define DEBUG_197_INST_BIT 27
-
-#define DEBUG_UNKNOWN_BIT 31
-
-/* exception vector marker */
-#define UNKNOWN_HANDLER 0xffffffff
-#define END_OF_VECTOR_LIST 0xfffffffe
-
-#define VECTOR(x) \
- word _C_LABEL(x)
-
-#endif /* _KERNEL */
-
-#endif /* __MACHINE_M88K_ASM_H__ */
+/* $OpenBSD */
+/* public domain */
+#include <m88k/asm.h>