[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

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