as: Options-i960
1
1 9.17.1 i960 Command-line Options
1 --------------------------------
1
1 '-ACA | -ACA_A | -ACB | -ACC | -AKA | -AKB | -AKC | -AMC'
1 Select the 80960 architecture. Instructions or features not
1 supported by the selected architecture cause fatal errors.
1
1 '-ACA' is equivalent to '-ACA_A'; '-AKC' is equivalent to '-AMC'.
1 Synonyms are provided for compatibility with other tools.
1
1 If you do not specify any of these options, 'as' generates code for
1 any instruction or feature that is supported by _some_ version of
1 the 960 (even if this means mixing architectures!). In principle,
1 'as' attempts to deduce the minimal sufficient processor type if
1 none is specified; depending on the object code format, the
1 processor type may be recorded in the object file. If it is
1 critical that the 'as' output match a specific architecture,
1 specify that architecture explicitly.
1
1 '-b'
1 Add code to collect information about conditional branches taken,
1 for later optimization using branch prediction bits. (The
1 conditional branch instructions have branch prediction bits in the
1 CA, CB, and CC architectures.) If BR represents a conditional
1 branch instruction, the following represents the code generated by
1 the assembler when '-b' is specified:
1
1 call INCREMENT ROUTINE
1 .word 0 # pre-counter
1 Label: BR
1 call INCREMENT ROUTINE
1 .word 0 # post-counter
1
1 The counter following a branch records the number of times that
1 branch was _not_ taken; the difference between the two counters is
1 the number of times the branch _was_ taken.
1
1 A table of every such 'Label' is also generated, so that the
1 external postprocessor 'gbr960' (supplied by Intel) can locate all
1 the counters. This table is always labeled '__BRANCH_TABLE__';
1 this is a local symbol to permit collecting statistics for many
1 separate object files. The table is word aligned, and begins with
1 a two-word header. The first word, initialized to 0, is used in
1 maintaining linked lists of branch tables. The second word is a
1 count of the number of entries in the table, which follow
1 immediately: each is a word, pointing to one of the labels
1 illustrated above.
1
1 +------------+------------+------------+ ... +------------+
1 | | | | | |
1 | *NEXT | COUNT: N | *BRLAB 1 | | *BRLAB N |
1 | | | | | |
1 +------------+------------+------------+ ... +------------+
1
1 __BRANCH_TABLE__ layout
1
1 The first word of the header is used to locate multiple branch
1 tables, since each object file may contain one. Normally the links
1 are maintained with a call to an initialization routine, placed at
1 the beginning of each function in the file. The GNU C compiler
1 generates these calls automatically when you give it a '-b' option.
1 For further details, see the documentation of 'gbr960'.
1
1 '-no-relax'
1 Normally, Compare-and-Branch instructions with targets that require
1 displacements greater than 13 bits (or that have external targets)
1 are replaced with the corresponding compare (or 'chkbit') and
1 branch instructions. You can use the '-no-relax' option to specify
1 that 'as' should generate errors instead, if the target
1 displacement is larger than 13 bits.
1
1 This option does not affect the Compare-and-Jump instructions; the
1 code emitted for them is _always_ adjusted when necessary
1 (depending on displacement size), regardless of whether you use
1 '-no-relax'.
1