[BACK]Return to pal.s CVS log [TXT][DIR] Up to [local] / sys / arch / alpha / alpha

Annotation of sys/arch/alpha/alpha/pal.s, Revision 1.1

1.1     ! nbrk        1: /* $OpenBSD: pal.s,v 1.6 2000/11/08 19:16:59 ericj Exp $ */
        !             2: /* $NetBSD: pal.s,v 1.14 1999/12/02 22:08:04 thorpej Exp $ */
        !             3:
        !             4: /*
        !             5:  * Copyright (c) 1994, 1995 Carnegie-Mellon University.
        !             6:  * All rights reserved.
        !             7:  *
        !             8:  * Author: Chris G. Demetriou
        !             9:  *
        !            10:  * Permission to use, copy, modify and distribute this software and
        !            11:  * its documentation is hereby granted, provided that both the copyright
        !            12:  * notice and this permission notice appear in all copies of the
        !            13:  * software, derivative works or modified versions, and any portions
        !            14:  * thereof, and that both notices appear in supporting documentation.
        !            15:  *
        !            16:  * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
        !            17:  * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND
        !            18:  * FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
        !            19:  *
        !            20:  * Carnegie Mellon requests users of this software to return to
        !            21:  *
        !            22:  *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
        !            23:  *  School of Computer Science
        !            24:  *  Carnegie Mellon University
        !            25:  *  Pittsburgh PA 15213-3890
        !            26:  *
        !            27:  * any improvements or extensions that they make and grant Carnegie the
        !            28:  * rights to redistribute these changes.
        !            29:  */
        !            30:
        !            31: /*
        !            32:  * The various OSF PALcode routines.
        !            33:  *
        !            34:  * The following code is originally derived from pages: (I) 6-5 - (I) 6-7
        !            35:  * and (III) 2-1 - (III) 2-25 of "Alpha Architecture Reference Manual" by
        !            36:  * Richard L. Sites.
        !            37:  *
        !            38:  * Updates taken from pages: (II-B) 2-1 - (II-B) 2-33 of "Alpha AXP
        !            39:  * Architecture Reference Manual, Second Edition" by Richard L. Sites
        !            40:  * and Richard T. Witek.
        !            41:  */
        !            42:
        !            43: inc2:  .stabs  __FILE__,132,0,0,inc2; .loc     1 __LINE__
        !            44: /*
        !            45:  * alpha_amask: read architecture features (XXX INSTRUCTION, NOT PALcode OP)
        !            46:  *
        !            47:  * Arguments:
        !            48:  *     a0      bitmask of features to test
        !            49:  *
        !            50:  * Returns:
        !            51:  *     v0      bitmask - bit is _cleared_ if feature is supported
        !            52:  */
        !            53:        .text
        !            54: LEAF(alpha_amask,1)
        !            55:        amask   a0, v0
        !            56:        RET
        !            57:        END(alpha_amask)
        !            58:
        !            59: /*
        !            60:  * alpha_implver: read implementation version (XXX INSTRUCTION, NOT PALcode OP)
        !            61:  *
        !            62:  * Returns:
        !            63:  *     v0      implementation version - see <machine/alpha_cpu.h>
        !            64:  */
        !            65:        .text
        !            66: LEAF(alpha_implver,0)
        !            67: #if 0
        !            68:        implver 0x1, v0
        !            69: #else
        !            70:        .long   0x47e03d80      /* XXX gas(1) does the Wrong Thing */
        !            71: #endif
        !            72:        RET
        !            73:        END(alpha_implver)
        !            74:
        !            75: /*
        !            76:  * alpha_pal_cflush: Cache flush [PRIVILEGED]
        !            77:  *
        !            78:  * Flush the entire physical page specified by the PFN specified in
        !            79:  * a0 from any data caches associated with the current processor.
        !            80:  *
        !            81:  * Arguments:
        !            82:  *     a0      page frame number of page to flush
        !            83:  */
        !            84:        .text
        !            85: LEAF(alpha_pal_cflush,1)
        !            86:        call_pal PAL_cflush
        !            87:        RET
        !            88:        END(alpha_pal_cflush)
        !            89:
        !            90: /*
        !            91:  * alpha_pal_halt: Halt the processor. [PRIVILEGED]
        !            92:  */
        !            93:        .text
        !            94: LEAF(alpha_pal_halt,0)
        !            95:        call_pal PAL_halt
        !            96:        br      zero,alpha_pal_halt     /* Just in case */
        !            97:        RET
        !            98:        END(alpha_pal_halt)
        !            99:
        !           100: /*
        !           101:  * alpha_pal_rdps: Read processor status. [PRIVILEGED]
        !           102:  *
        !           103:  * Return:
        !           104:  *     v0      current PS value
        !           105:  */
        !           106:        .text
        !           107: LEAF(alpha_pal_rdps,0)
        !           108:        call_pal PAL_OSF1_rdps
        !           109:        RET
        !           110:        END(alpha_pal_rdps)
        !           111:
        !           112: /*
        !           113:  * alpha_pal_swpipl: Swap Interrupt priority level. [PRIVILEGED]
        !           114:  * _alpha_pal_swpipl: Same, from profiling code. [PRIVILEGED]
        !           115:  *
        !           116:  * Arguments:
        !           117:  *     a0      new IPL
        !           118:  *
        !           119:  * Return:
        !           120:  *     v0      old IPL
        !           121:  */
        !           122:        .text
        !           123: LEAF(alpha_pal_swpipl,1)
        !           124:        call_pal PAL_OSF1_swpipl
        !           125:        RET
        !           126:        END(alpha_pal_swpipl)
        !           127:
        !           128: LEAF_NOPROFILE(_alpha_pal_swpipl,1)
        !           129:        call_pal PAL_OSF1_swpipl
        !           130:        RET
        !           131:        END(_alpha_pal_swpipl)
        !           132:
        !           133: /*
        !           134:  * alpha_pal_wrent: Write system entry address. [PRIVILEGED]
        !           135:  *
        !           136:  * Arguments:
        !           137:  *     a0      new vector
        !           138:  *     a1      vector selector
        !           139:  */
        !           140:        .text
        !           141: LEAF(alpha_pal_wrent,2)
        !           142:        call_pal PAL_OSF1_wrent
        !           143:        RET
        !           144:        END(alpha_pal_wrent)
        !           145:
        !           146: /*
        !           147:  * alpha_pal_wrvptptr: Write virtual page table pointer. [PRIVILEGED]
        !           148:  *
        !           149:  * Arguments:
        !           150:  *     a0      new virtual page table pointer
        !           151:  */
        !           152:        .text
        !           153: LEAF(alpha_pal_wrvptptr,1)
        !           154:        call_pal PAL_OSF1_wrvptptr
        !           155:        RET
        !           156:        END(alpha_pal_wrvptptr)

CVSweb