Annotation of GNUtools/cctools/include/architecture/m88k/reg_help.h, revision 1.1

1.1     ! root        1: /* Copyright (c) 1991 NeXT Computer, Inc.  All rights reserved.
        !             2:  *
        !             3:  *     File:   architecture/m88k/reg_help.h
        !             4:  *     Author: Mike DeMoney, NeXT Computer, Inc.
        !             5:  *
        !             6:  *     This header file defines cpp macros useful for defining
        !             7:  *     machine register and doing machine-level operations.
        !             8:  *
        !             9:  * HISTORY
        !            10:  * 23-Jan-91  Mike DeMoney ([email protected])
        !            11:  *     Created.
        !            12:  */
        !            13: 
        !            14: #ifndef _ARCH_M88K_REG_HELP_H_
        !            15: #define _ARCH_M88K_REG_HELP_H_
        !            16: 
        !            17: #import <architecture/nrw/reg_help.h>
        !            18: 
        !            19: /* Stack pointer must always be a multiple of 16 */
        !            20: #define        STACK_INCR      16
        !            21: #define        ROUND_FRAME(x)  ((((unsigned)(x)) + STACK_INCR - 1) & ~(STACK_INCR-1))
        !            22: 
        !            23: /*
        !            24:  * REG_PAIR_DEF -- define a register pair
        !            25:  * Register pairs are appropriately aligned to allow access via
        !            26:  * ld.d and st.d.
        !            27:  *
        !            28:  * Usage:
        !            29:  *     struct foo {
        !            30:  *             REG_PAIR_DEF(
        !            31:  *                     bar_t *,        barp,
        !            32:  *                     afu_t,          afu
        !            33:  *             );
        !            34:  *     };
        !            35:  *
        !            36:  * Access to individual entries of the pair is via the REG_PAIR
        !            37:  * macro (below).
        !            38:  */
        !            39: #define        REG_PAIR_DEF(type0, name0, type1, name1)                \
        !            40:        struct {                                                \
        !            41:                type0   name0 __attribute__(( aligned(8) ));    \
        !            42:                type1   name1;                                  \
        !            43:        } name0##_##name1
        !            44: 
        !            45: /*
        !            46:  * REG_PAIR -- Macro to define names for accessing individual registers
        !            47:  * of register pairs.
        !            48:  *
        !            49:  * Usage:
        !            50:  *     arg0 is first element of pair
        !            51:  *     arg1 is second element of pair
        !            52:  *     arg2 is desired element of pair
        !            53:  * eg:
        !            54:  *     #define foo_barp        REG_PAIR(barp, afu, afu)
        !            55:  */
        !            56: #define        REG_PAIR(name0, name1, the_name)                        \
        !            57:        name0##_##name1.the_name
        !            58: 
        !            59: #endif  _ARCH_M88K_REG_HELP_H_

unix.superglobalmegacorp.com

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