Annotation of qemu/roms/openbios/include/arch/ppc/asmdefs.h, revision 1.1

1.1     ! root        1: /*   -*- asm -*-
        !             2:  *
        !             3:  *   Creation Date: <2001/02/03 19:38:07 samuel>
        !             4:  *   Time-stamp: <2003/07/08 18:55:50 samuel>
        !             5:  *
        !             6:  *     <asmdefs.h>
        !             7:  *
        !             8:  *     Common assembly definitions
        !             9:  *
        !            10:  *   Copyright (C) 2001, 2002, 2003 Samuel Rydh ([email protected])
        !            11:  *
        !            12:  *   This program is free software; you can redistribute it and/or
        !            13:  *   modify it under the terms of the GNU General Public License
        !            14:  *   as published by the Free Software Foundation
        !            15:  *
        !            16:  */
        !            17: 
        !            18: #ifndef _H_ASMDEFS
        !            19: #define _H_ASMDEFS
        !            20: 
        !            21: /************************************************************************/
        !            22: /*     High/low halfword compatibility macros                          */
        !            23: /************************************************************************/
        !            24: 
        !            25: #ifndef __darwin__
        !            26: #define        ha16( v )       (v)##@ha
        !            27: #define        hi16( v )       (v)##@h
        !            28: #define        lo16( v )       (v)##@l
        !            29: #endif
        !            30: #define                HA(v)           ha16(v)
        !            31: #define                HI(v)           hi16(v)
        !            32: #define                LO(v)           lo16(v)
        !            33: 
        !            34: /* from Linux: include/asm-powerpc/ppc_asm.h */
        !            35: /*
        !            36:  * Copyright (C) 1995-1999 Gary Thomas, Paul Mackerras, Cort Dougan.
        !            37:  */
        !            38: 
        !            39: /* General Purpose Registers (GPRs) */
        !            40: 
        !            41: #define        r0      0
        !            42: #define        r1      1
        !            43: #define        r2      2
        !            44: #define        r3      3
        !            45: #define        r4      4
        !            46: #define        r5      5
        !            47: #define        r6      6
        !            48: #define        r7      7
        !            49: #define        r8      8
        !            50: #define        r9      9
        !            51: #define        r10     10
        !            52: #define        r11     11
        !            53: #define        r12     12
        !            54: #define        r13     13
        !            55: #define        r14     14
        !            56: #define        r15     15
        !            57: #define        r16     16
        !            58: #define        r17     17
        !            59: #define        r18     18
        !            60: #define        r19     19
        !            61: #define        r20     20
        !            62: #define        r21     21
        !            63: #define        r22     22
        !            64: #define        r23     23
        !            65: #define        r24     24
        !            66: #define        r25     25
        !            67: #define        r26     26
        !            68: #define        r27     27
        !            69: #define        r28     28
        !            70: #define        r29     29
        !            71: #define        r30     30
        !            72: #define        r31     31
        !            73: 
        !            74: /************************************************************************/
        !            75: /*     MISC                                                            */
        !            76: /************************************************************************/
        !            77: 
        !            78: #ifdef __powerpc64__
        !            79: 
        !            80: #define LOAD_REG_IMMEDIATE(D, x) \
        !            81:        lis  (D),      (x)@highest ; \
        !            82:        ori  (D), (D), (x)@higher ; \
        !            83:        sldi (D), (D), 32 ; \
        !            84:        oris (D), (D), (x)@h ; \
        !            85:        ori  (D), (D), (x)@l
        !            86: 
        !            87: #define LOAD_REG_FUNC(D, x) \
        !            88:     LOAD_REG_IMMEDIATE((D), (x)) ; \
        !            89:     ld (D), 0(D)
        !            90: 
        !            91: #else
        !            92: 
        !            93: #define LOAD_REG_IMMEDIATE(D, x) \
        !            94:        lis  (D),      HA(x) ; \
        !            95:        addi (D), (D), LO(x)
        !            96: 
        !            97: #define LOAD_REG_FUNC(D, x) \
        !            98:     LOAD_REG_IMMEDIATE((D), (x))
        !            99: 
        !           100: #endif
        !           101: 
        !           102: #ifdef __powerpc64__
        !           103: #define PPC_LL   ld
        !           104: #define PPC_STL  std
        !           105: #define PPC_STLU stdu
        !           106: #define RFI rfid
        !           107: #define MTMSRD(r) mtmsrd r
        !           108: #define DATA_LONG(x) .quad x
        !           109: #define BRANCH_LABEL(name) . ## name
        !           110: #define PPC_LR_STKOFF 16
        !           111: #else
        !           112: #define PPC_LL   lwz
        !           113: #define PPC_STL  stw
        !           114: #define PPC_STLU stwu
        !           115: #define RFI rfi
        !           116: #define MTMSRD(r) mtmsr  r
        !           117: #define DATA_LONG(x) .long x
        !           118: #define BRANCH_LABEL(name) name
        !           119: #define PPC_LR_STKOFF 4
        !           120: #endif
        !           121: 
        !           122: #ifndef __darwin__
        !           123: #define GLOBL( name )          .globl name ; name
        !           124: #define EXTERN( name )         name
        !           125: #else
        !           126: /* an underscore is needed on Darwin */
        !           127: #define GLOBL( name )          .globl _##name ; name: ; _##name
        !           128: #define EXTERN( name )         _##name
        !           129: #endif
        !           130: 
        !           131: #if defined(__powerpc64__) && !defined(__darwin__)
        !           132: #define _GLOBAL(name) \
        !           133:         .align 2 ; \
        !           134:         .section ".opd", "aw" ; \
        !           135:         .globl name ; \
        !           136:         .globl .##name ; \
        !           137:     name: \
        !           138:         .quad .##name ; \
        !           139:         .quad .TOC.@tocbase ; \
        !           140:         .quad 0 ; \
        !           141:         .previous ; \
        !           142:         .type .##name, @function ; \
        !           143:     .##name
        !           144: #else
        !           145: #define _GLOBAL(name) \
        !           146:     GLOBL(name)
        !           147: #endif
        !           148: 
        !           149: #define        BIT(n)          (1<<(31-(n)))
        !           150: 
        !           151: #endif   /* _H_ASMDEFS */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.