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

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

1.1       nbrk        1: /*     $OpenBSD: asm.h,v 1.15 2005/01/23 16:28:29 mickey Exp $ */
                      2:
                      3: /*
                      4:  * Copyright (c) 1990,1991,1994 The University of Utah and
                      5:  * the Computer Systems Laboratory (CSL).  All rights reserved.
                      6:  *
                      7:  * Permission to use, copy, modify and distribute this software is hereby
                      8:  * granted provided that (1) source code retains these copyright, permission,
                      9:  * and disclaimer notices, and (2) redistributions including binaries
                     10:  * reproduce the notices in supporting documentation, and (3) all advertising
                     11:  * materials mentioning features or use of this software display the following
                     12:  * acknowledgement: ``This product includes software developed by the
                     13:  * Computer Systems Laboratory at the University of Utah.''
                     14:  *
                     15:  * THE UNIVERSITY OF UTAH AND CSL ALLOW FREE USE OF THIS SOFTWARE IN ITS "AS
                     16:  * IS" CONDITION.  THE UNIVERSITY OF UTAH AND CSL DISCLAIM ANY LIABILITY OF
                     17:  * ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
                     18:  *
                     19:  * CSL requests users of this software to return to csl-dist@cs.utah.edu any
                     20:  * improvements that they make and grant CSL redistribution rights.
                     21:  *
                     22:  *     Utah $Hdr: asm.h 1.8 94/12/14$
                     23:  */
                     24:
                     25: #ifndef _MACHINE_ASM_H_
                     26: #define _MACHINE_ASM_H_
                     27:
                     28: /*
                     29:  *     hppa assembler definitions
                     30:  */
                     31:
                     32: /*
                     33:  * Hardware General Registers
                     34:  */
                     35: r0     .reg    %r0
                     36: r1     .reg    %r1
                     37: r2     .reg    %r2
                     38: r3     .reg    %r3
                     39: r4     .reg    %r4
                     40: r5     .reg    %r5
                     41: r6     .reg    %r6
                     42: r7     .reg    %r7
                     43: r8     .reg    %r8
                     44: r9     .reg    %r9
                     45: r10    .reg    %r10
                     46: r11    .reg    %r11
                     47: r12    .reg    %r12
                     48: r13    .reg    %r13
                     49: r14    .reg    %r14
                     50: r15    .reg    %r15
                     51: r16    .reg    %r16
                     52: r17    .reg    %r17
                     53: r18    .reg    %r18
                     54: r19    .reg    %r19
                     55: r20    .reg    %r20
                     56: r21    .reg    %r21
                     57: r22    .reg    %r22
                     58: r23    .reg    %r23
                     59: r24    .reg    %r24
                     60: r25    .reg    %r25
                     61: r26    .reg    %r26
                     62: r27    .reg    %r27
                     63: r28    .reg    %r28
                     64: r29    .reg    %r29
                     65: r30    .reg    %r30
                     66: r31    .reg    %r31
                     67:
                     68: /*
                     69:  * Hardware Space Registers
                     70:  */
                     71: sr0    .reg    %sr0
                     72: sr1    .reg    %sr1
                     73: sr2    .reg    %sr2
                     74: sr3    .reg    %sr3
                     75: sr4    .reg    %sr4
                     76: sr5    .reg    %sr5
                     77: sr6    .reg    %sr6
                     78: sr7    .reg    %sr7
                     79:
                     80: /*
                     81:  * Hardware Floating Point Registers
                     82:  */
                     83: fr0    .reg    %fr0
                     84: fr1    .reg    %fr1
                     85: fr2    .reg    %fr2
                     86: fr3    .reg    %fr3
                     87: fr4    .reg    %fr4
                     88: fr5    .reg    %fr5
                     89: fr6    .reg    %fr6
                     90: fr7    .reg    %fr7
                     91: fr8    .reg    %fr8
                     92: fr9    .reg    %fr9
                     93: fr10   .reg    %fr10
                     94: fr11   .reg    %fr11
                     95: fr12   .reg    %fr12
                     96: fr13   .reg    %fr13
                     97: fr14   .reg    %fr14
                     98: fr15   .reg    %fr15
                     99: fr16   .reg    %fr16
                    100: fr17   .reg    %fr17
                    101: fr18   .reg    %fr18
                    102: fr19   .reg    %fr19
                    103: fr20   .reg    %fr20
                    104: fr21   .reg    %fr21
                    105: fr22   .reg    %fr22
                    106: fr23   .reg    %fr23
                    107: fr24   .reg    %fr24
                    108: fr25   .reg    %fr25
                    109: fr26   .reg    %fr26
                    110: fr27   .reg    %fr27
                    111: fr28   .reg    %fr28
                    112: fr29   .reg    %fr29
                    113: fr30   .reg    %fr30
                    114: fr31   .reg    %fr31
                    115:
                    116: /*
                    117:  * Hardware Control Registers
                    118:  */
                    119: cr0    .reg    %cr0
                    120: cr8    .reg    %cr8
                    121: cr9    .reg    %cr9
                    122: cr10   .reg    %cr10
                    123: cr11   .reg    %cr11
                    124: cr12   .reg    %cr12
                    125: cr13   .reg    %cr13
                    126: cr14   .reg    %cr14
                    127: cr15   .reg    %cr15
                    128: cr16   .reg    %cr16
                    129: cr17   .reg    %cr17
                    130: cr18   .reg    %cr18
                    131: cr19   .reg    %cr19
                    132: cr20   .reg    %cr20
                    133: cr21   .reg    %cr21
                    134: cr22   .reg    %cr22
                    135: cr23   .reg    %cr23
                    136: cr24   .reg    %cr24
                    137: cr25   .reg    %cr25
                    138: cr26   .reg    %cr26
                    139: cr27   .reg    %cr27
                    140: cr28   .reg    %cr28
                    141: cr29   .reg    %cr29
                    142: cr30   .reg    %cr30
                    143: cr31   .reg    %cr31
                    144:
                    145: rctr   .reg    %cr0
                    146: pidr1  .reg    %cr8
                    147: pidr2  .reg    %cr9
                    148: ccr    .reg    %cr10
                    149: sar    .reg    %cr11
                    150: pidr3  .reg    %cr12
                    151: pidr4  .reg    %cr13
                    152: iva    .reg    %cr14
                    153: eiem   .reg    %cr15
                    154: itmr   .reg    %cr16
                    155: pcsq   .reg    %cr17
                    156: pcoq   .reg    %cr18
                    157: iir    .reg    %cr19
                    158: isr    .reg    %cr20
                    159: ior    .reg    %cr21
                    160: ipsw   .reg    %cr22
                    161: eirr   .reg    %cr23
                    162: tr0    .reg    %cr24
                    163: vtop   .reg    %cr25
                    164: tr1    .reg    %cr25
                    165: tr2    .reg    %cr26
                    166: tr3    .reg    %cr27
                    167: tr4    .reg    %cr28
                    168: tr5    .reg    %cr29
                    169: tr6    .reg    %cr30
                    170: tr7    .reg    %cr31
                    171:
                    172: /*
                    173:  * Calling Convention
                    174:  */
                    175: rp     .reg    %r2
                    176: arg3   .reg    %r23
                    177: arg2   .reg    %r24
                    178: arg1   .reg    %r25
                    179: arg0   .reg    %r26
                    180: dp     .reg    %r27
                    181: ret0   .reg    %r28
                    182: ret1   .reg    %r29
                    183: sl     .reg    %r29
                    184: sp     .reg    %r30
                    185:
                    186: /*
                    187:  * Temporary registers
                    188:  */
                    189: t1     .reg    %r22
                    190: t2     .reg    %r21
                    191: t3     .reg    %r20
                    192: t4     .reg    %r19
                    193:
                    194: /*
                    195:  * Temporary space registers
                    196:  */
                    197: ts1    .reg    %sr2
                    198:
                    199: /*
                    200:  * Space Registers - SW Conventions
                    201:  */
                    202: sret   .reg    %sr1    ; return value
                    203: sarg   .reg    %sr1    ; argument
                    204:
                    205: /*
                    206:  * Floating Point Registers - SW Conventions
                    207:  */
                    208: farg0  .reg    %fr5
                    209: farg1  .reg    %fr6
                    210: farg2  .reg    %fr7
                    211: farg3  .reg    %fr8
                    212: fret   .reg    %fr4
                    213:
                    214: /*
                    215:  * Temporary floating point registers
                    216:  */
                    217: tf1    .reg    %fr11
                    218: tf2    .reg    %fr10
                    219: tf3    .reg    %fr9
                    220: tf4    .reg    %fr8
                    221:
                    222: #ifdef __STDC__
                    223: #define        __CONCAT(a,b)   a ## b
                    224: #else
                    225: #define        __CONCAT(a,b)   a/**/b
                    226: #endif
                    227:
                    228: #ifdef PROF
                    229: #define        _PROF_PROLOGUE !\
                    230:        stw rp, HPPA_FRAME_CRP(sr0,sp)  !\
                    231:        ldil L%_mcount,r1               !\
                    232:        ble R%_mcount(sr0,r1)           !\
                    233:        ldo HPPA_FRAME_SIZE(sp),sp      !\
                    234:        ldw HPPA_FRAME_CRP(sr0,sp),rp
                    235: #else
                    236: #define        _PROF_PROLOGUE
                    237: #endif
                    238:
                    239: #define        LEAF_ENTRY(x) ! .text ! .align  4       !\
                    240:        .export x, entry ! .label x ! .proc     !\
                    241:        .callinfo frame=0,no_calls,save_rp      !\
                    242:        .entry ! _PROF_PROLOGUE
                    243:
                    244: #define        ENTRY(x,n) ! .text ! .align 4                   !\
                    245:        .export x, entry ! .label x ! .proc             !\
                    246:        .callinfo frame=n,calls, save_rp, save_sp       !\
                    247:        .entry ! _PROF_PROLOGUE
                    248:
                    249: #define ALTENTRY(x) ! .export x, entry ! .label  x
                    250: #define EXIT(x) ! .exit ! .procend ! .size   x, .-x
                    251:
                    252: #define        BSS(n,s)        ! .data ! .label n ! .comm s
                    253:
                    254: #endif /* _MACHINE_ASM_H_ */

CVSweb