Annotation of GNUtools/cctools/as/relax.h, revision 1.1

1.1     ! root        1: /* The type used for a target address */
        !             2: typedef unsigned long relax_addressT;
        !             3: 
        !             4: /*
        !             5:  * relax_stateT is a fragment's type and stored in a struct frag's fr_type
        !             6:  * field.
        !             7:  */
        !             8: typedef enum {
        !             9:     rs_fill,   /* Variable chars to be repeated fr_offset */
        !            10:                /* times. Fr_symbol unused. */
        !            11:                /* Used with fr_offset == 0 for a constant */
        !            12:                /* length frag. */
        !            13:     rs_align,  /* Align: Fr_offset: power of 2. */
        !            14:                /* 1 variable char: fill character. */
        !            15:     rs_org,    /* Org: Fr_offset, fr_symbol: address. */
        !            16:                /* 1 variable char: fill character. */
        !            17:     rs_machine_dependent,
        !            18: } relax_stateT;
        !            19: 
        !            20: /*
        !            21:  * For machine dependent fragments, a struct frag's who's fr_type field is
        !            22:  * rs_machine_dependent it's substate is stored in the struct frag's fr_subtype;
        !            23:  * field.  The substate is used to index in to md_relax_table by relax_section()
        !            24:  * in layout.c to drive the span dependent branch algorithm of the assembler.
        !            25:  * The substate is a machine dependent indication of what type of branch
        !            26:  * instruction this fragment is.
        !            27:  */
        !            28: typedef unsigned long relax_substateT;
        !            29: 
        !            30: /*
        !            31:  * relax_typeS is the structure that is the entry in the md_relax_table array.
        !            32:  * It is indexed into by the substate of a fragment for machine depependent
        !            33:  * branches that have variable sizes.  The entry tell how far this branch can
        !            34:  * reach, rlx_forward and rlx_backward, as well as the size of branch,
        !            35:  * rlx_length, and which substate go to, rlx_more, if this sized branch can't 
        !            36:  * reach it's target.
        !            37:  */
        !            38: typedef struct {
        !            39:     long           rlx_forward;  /* Forward  reach. Signed number. > 0. */
        !            40:     long           rlx_backward; /* Backward reach. Signed number. < 0. */
        !            41:     unsigned char   rlx_length;          /* Bytes length of this address. */
        !            42:     relax_substateT rlx_more;    /* Next longer relax-state. */
        !            43:                                  /* 0 means there is no 'next' relax-state. */
        !            44: } relax_typeS;

unix.superglobalmegacorp.com

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