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