[BACK]Return to asm.h CVS log [TXT][DIR] Up to [local] / sys / arch / m88k / include

Annotation of sys/arch/m88k/include/asm.h, Revision 1.1.1.1

1.1       nbrk        1: /*     $OpenBSD: asm.h,v 1.8 2006/05/08 14:03:34 miod Exp $    */
                      2:
                      3: /*
                      4:  * Mach Operating System
                      5:  * Copyright (c) 1993-1992 Carnegie Mellon University
                      6:  * Copyright (c) 1991 OMRON Corporation
                      7:  * All Rights Reserved.
                      8:  *
                      9:  * Permission to use, copy, modify and distribute this software and its
                     10:  * documentation is hereby granted, provided that both the copyright
                     11:  * notice and this permission notice appear in all copies of the
                     12:  * software, derivative works or modified versions, and any portions
                     13:  * thereof, and that both notices appear in supporting documentation.
                     14:  *
                     15:  * CARNEGIE MELLON AND OMRON ALLOW FREE USE OF THIS SOFTWARE IN ITS "AS IS"
                     16:  * CONDITION.  CARNEGIE MELLON AND OMRON DISCLAIM ANY LIABILITY OF ANY KIND
                     17:  * FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
                     18:  *
                     19:  * Carnegie Mellon requests users of this software to return to
                     20:  *
                     21:  *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
                     22:  *  School of Computer Science
                     23:  *  Carnegie Mellon University
                     24:  *  Pittsburgh PA 15213-3890
                     25:  *
                     26:  * any improvements or extensions that they make and grant Carnegie the
                     27:  * rights to redistribute these changes.
                     28:  */
                     29:
                     30: #ifndef __M88K_ASM_H__
                     31: #define __M88K_ASM_H__
                     32:
                     33: #ifdef __STDC__
                     34: #define        _C_LABEL(name)          _ ## name
                     35: #else
                     36: #define        _C_LABEL(name)          _/**/name
                     37: #endif
                     38:
                     39: #define        _ASM_LABEL(name)        name
                     40:
                     41: #define        _ENTRY(name) \
                     42:        .text; .align 8; .globl name; name:
                     43:
                     44: #define        ENTRY(name)             _ENTRY(_C_LABEL(name))
                     45: #define        ASENTRY(name)           _ENTRY(_ASM_LABEL(name))
                     46:
                     47: #define        GLOBAL(name) \
                     48:        .globl _C_LABEL(name); _C_LABEL(name):
                     49:
                     50: #define ASGLOBAL(name) \
                     51:        .globl _ASM_LABEL(name); _ASM_LABEL(name):
                     52:
                     53: #define        LOCAL(name) \
                     54:        _C_LABEL(name):
                     55:
                     56: #define        ASLOCAL(name) \
                     57:        _ASM_LABEL(name):
                     58:
                     59: #define        BSS(name, size) \
                     60:        .comm   _C_LABEL(name), size
                     61:
                     62: #define        ASBSS(name, size) \
                     63:        .comm   _ASM_LABEL(name), size
                     64:
                     65: #ifdef __ELF__
                     66: #define        WEAK_ALIAS(alias,sym)                                           \
                     67:        .weak alias;                                                    \
                     68:        alias = sym
                     69: #else
                     70: #ifdef __STDC__
                     71: #define        WEAK_ALIAS(alias,sym)                                           \
                     72:        .weak _##alias;                                                 \
                     73:        _##alias = _##sym
                     74: #else
                     75: #define        WEAK_ALIAS(alias,sym)                                           \
                     76:        .weak _/**/alias;                                               \
                     77:        _/**/alias = _/**/sym
                     78: #endif
                     79: #endif
                     80:
                     81: #ifdef _KERNEL
                     82:
                     83: #ifdef _LOCORE
                     84: /*
                     85:  * Control register symbolic names
                     86:  */
                     87:
                     88: #define        PID     cr0
                     89: #define        PSR     cr1
                     90: #define        EPSR    cr2
                     91: #define        SSBR    cr3
                     92: #define        SXIP    cr4
                     93: #define        SNIP    cr5
                     94: #define        SFIP    cr6
                     95: #define        VBR     cr7
                     96: #define        DMT0    cr8
                     97: #define        DMD0    cr9
                     98: #define        DMA0    cr10
                     99: #define        DMT1    cr11
                    100: #define        DMD1    cr12
                    101: #define        DMA1    cr13
                    102: #define        DMT2    cr14
                    103: #define        DMD2    cr15
                    104: #define        DMA2    cr16
                    105: #define        SR0     cr17
                    106: #define        SR1     cr18
                    107: #define        SR2     cr19
                    108: #define        SR3     cr20
                    109:
                    110: /* MVME197 only */
                    111: #define        SRX     cr16
                    112: #define        EXIP    cr4
                    113: #define        ENIP    cr5
                    114: #define        ICMD    cr25
                    115: #define        ICTL    cr26
                    116: #define        ISAR    cr27
                    117: #define        ISAP    cr28
                    118: #define        IUAP    cr29
                    119: #define        IIR     cr30
                    120: #define        IBP     cr31
                    121: #define        IPPU    cr32
                    122: #define        IPPL    cr33
                    123: #define        ISR     cr34
                    124: #define        ILAR    cr35
                    125: #define        IPAR    cr36
                    126: #define        DCMD    cr40
                    127: #define        DCTL    cr41
                    128: #define        DSAR    cr42
                    129: #define        DSAP    cr43
                    130: #define        DUAP    cr44
                    131: #define        DIR     cr45
                    132: #define        DBP     cr46
                    133: #define        DPPU    cr47
                    134: #define        DPPL    cr48
                    135: #define        DSR     cr49
                    136: #define        DLAR    cr50
                    137: #define        DPAR    cr51
                    138: /* end MVME197 only */
                    139:
                    140: #define        FPECR   fcr0
                    141: #define        FPHS1   fcr1
                    142: #define        FPLS1   fcr2
                    143: #define        FPHS2   fcr3
                    144: #define        FPLS2   fcr4
                    145: #define        FPPT    fcr5
                    146: #define        FPRH    fcr6
                    147: #define        FPRL    fcr7
                    148: #define        FPIT    fcr8
                    149: #define        FPSR    fcr62
                    150: #define        FPCR    fcr63
                    151:
                    152: /*
                    153:  * At various times, there is the need to clear the pipeline (i.e.
                    154:  * synchronize).  A "tb1 0, r0, foo" will do that (because a trap
                    155:  * instruction always synchronizes, and this particular instruction
                    156:  * will never actually take the trap).
                    157:  */
                    158: #define        FLUSH_PIPELINE          tb1     0, r0, 0
                    159: #define        NOP                     or      r0, r0, r0
                    160: #define RTE                    NOP ; rte
                    161:
                    162: /*
                    163:  * Info about the PSR
                    164:  */
                    165: #define        PSR_SHADOW_FREEZE_BIT           0
                    166: #define        PSR_INTERRUPT_DISABLE_BIT       1
                    167: #define        PSR_FPU_DISABLE_BIT             3
                    168: #define        PSR_BIG_ENDIAN_MODE             30
                    169: #define        PSR_SUPERVISOR_MODE_BIT         31
                    170: /*
                    171:  * mc88110 PSR bit definitions (MVME197)
                    172:  */
                    173: #define PSR_GRAPHICS_DISABLE_BIT       4
                    174: #define PSR_SERIAL_MODE_BIT            29
                    175: #define PSR_CARRY_BIT                  28
                    176: #define PSR_SERIALIZE_BIT              25
                    177:
                    178: #define        VECTOR(x) \
                    179:        word    _C_LABEL(x)
                    180:
                    181: #define        CPU     SR0
                    182:
                    183: #endif /* _LOCORE */
                    184:
                    185: #define        FLUSH_PIPELINE_STRING   "tb1    0, r0, 0"
                    186:
                    187: /*
                    188:  * Status bits for an SXIP/SNIP/SFIP address.
                    189:  */
                    190: #define        RTE_VALID_BIT           1
                    191: #define        RTE_ERROR_BIT           0
                    192:
                    193: /*
                    194:  * Info about DMT0/DMT1/DMT2
                    195:  */
                    196: #define        DMT_VALID_BIT           0
                    197: #define        DMT_WRITE_BIT           1
                    198: #define        DMT_LOCK_BIT            12
                    199: #define        DMT_DOUBLE_BIT          13
                    200: #define        DMT_DAS_BIT             14
                    201: #define        DMT_DREG_OFFSET         7
                    202: #define        DMT_DREG_WIDTH          5
                    203:
                    204: #endif /* _KERNEL */
                    205:
                    206: #endif /* __M88K_ASM_H__ */

CVSweb