|
|
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;
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.