Annotation of GNUtools/cctools/include/mach-o/i860/reloc.h, revision 1.1

1.1     ! root        1: /*
        !             2:  * Relocation types used in the I860 implementation.  Relocation entries for
        !             3:  * things other than instructions use the same generic relocation as discribed
        !             4:  * above and their r_type is RELOC_VANILLA.  The rest of the relocation types
        !             5:  * are for instructions.  Since they are for instructions the r_address field
        !             6:  * indicates the 32 bit instruction that the relocation is to be preformed on.
        !             7:  * The fields r_pcrel and r_length are ignored for non-RELOC_VANILLA r_types
        !             8:  * except RELOC_SPLIT0 as discribed below.
        !             9:  */
        !            10: enum reloc_type_i860
        !            11: {
        !            12:     I860_RELOC_VANILLA,        /* generic relocation as discribed above */
        !            13: 
        !            14:     I860_RELOC_PAIR,   /* Only follows a I860_RELOC_HIGH or a
        !            15:                         * I860_RELOC_HIGHADJ and only the r_address has any
        !            16:                         * meaning.
        !            17:                         */ 
        !            18:     I860_RELOC_HIGH,   /* The low 16 bits of the instruction contains the high
        !            19:                         * 16 bits of the item being refered to.  This
        !            20:                         * relocation type must be followed by a I860_RELOC_PAIR
        !            21:                         * relocation type.  The low 16 bits of the item being
        !            22:                         * refered to is stored in the r_address of the
        !            23:                         * I860_RELOC_PAIR entry.
        !            24:                         */
        !            25:     I860_RELOC_LOW0,   /* For all of these the low 16 bits of the instruction*/
        !            26:     I860_RELOC_LOW1,   /* (minus the low 0, 1, 2, 3, or 4 bits) contain the  */
        !            27:     I860_RELOC_LOW2,   /* low 16 bits of the item being refered to.  The bits*/
        !            28:     I860_RELOC_LOW3,   /* of the reference that are missing are 0 and the    */
        !            29:     I860_RELOC_LOW4,   /* bits in the instruction are part of the encoding of*/
        !            30:                        /* instruction.  The resulting low 16 bits of the item*/
        !            31:                        /* being refered to is sign extended to 32 bits.      */
        !            32: 
        !            33:     I860_RELOC_SPLIT0, /* For all of these the bits 20-14 and bits 10-0 of   */
        !            34:     I860_RELOC_SPLIT1, /* the instruction (minus the low 0, 1 or 2 bits)     */
        !            35:     I860_RELOC_SPLIT2, /* contain the low 16 bits of the item to being       */
        !            36:                        /* refered to.  The bits of the reference that are    */
        !            37:                        /* missing are 0 and the bits of the instruction are  */
        !            38:                        /* part of the encoding of the instruction.  The      */
        !            39:                        /* resulting low 16 bits of the item being relocated  */
        !            40:                        /* is sign extened to 32 bits.  A special case of the */
        !            41:                        /* I860_RELOC_SPLIT0 is when r_pcrel is non-zero (for */
        !            42:                        /* branch displacements).  In this case the 16 bits   */
        !            43:                        /* from the instruction is a 32 bit word displacement.*/
        !            44: 
        !            45:     I860_RELOC_HIGHADJ,        /* Same as the RELOC_HIGH except the low 16 bits and the
        !            46:                         * high 16 bits are added together with the low 16 bits
        !            47:                         * sign extened first.  This means if bit 15 of the low
        !            48:                         * 16 bits is set the high 16 bits stored in the
        !            49:                         * instruction will be adjusted.
        !            50:                         */
        !            51:     I860_RELOC_BRADDR, /* The low 26 bits of the instruction is a 32 bit
        !            52:                         * word displacement from the pc to the item to being
        !            53:                         * refered to.
        !            54:                         */
        !            55:     I860_RELOC_SECTDIFF /* a PAIR follows with subtract symbol value */
        !            56: };

unix.superglobalmegacorp.com

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