as: CRIS-Opts

 
 9.8.1 Command-line Options
 --------------------------
 
 The CRIS version of 'as' has these machine-dependent command-line
 options.
 
    The format of the generated object files can be either ELF or a.out,
 specified by the command-line options '--emulation=crisaout' and
 '--emulation=criself'.  The default is ELF (criself), unless 'as' has
 been configured specifically for a.out by using the configuration name
 'cris-axis-aout'.
 
    There are two different link-incompatible ELF object file variants
 for CRIS, for use in environments where symbols are expected to be
 prefixed by a leading '_' character and for environments without such a
 symbol prefix.  The variant used for GNU/Linux port has no symbol
 prefix.  Which variant to produce is specified by either of the options
 '--underscore' and '--no-underscore'.  The default is '--underscore'.
 Since symbols in CRIS a.out objects are expected to have a '_' prefix,
 specifying '--no-underscore' when generating a.out objects is an error.
 Besides the object format difference, the effect of this option is to
 parse register names differently (Seecrisnous).  The
 '--no-underscore' option makes a '$' register prefix mandatory.
 
    The option '--pic' must be passed to 'as' in order to recognize the
 symbol syntax used for ELF (SVR4 PIC) position-independent-code (See
 crispic).  This will also affect expansion of instructions.  The
 expansion with '--pic' will use PC-relative rather than (slightly
 faster) absolute addresses in those expansions.  This option is only
 valid when generating ELF format object files.
 
    The option '--march=ARCHITECTURE' specifies the recognized
 instruction set and recognized register names.  It also controls the
 architecture type of the object file.  Valid values for ARCHITECTURE
 are:
 
 'v0_v10'
      All instructions and register names for any architecture variant in
      the set v0...v10 are recognized.  This is the default if the target
      is configured as cris-*.
 
 'v10'
      Only instructions and register names for CRIS v10 (as found in
      ETRAX 100 LX) are recognized.  This is the default if the target is
      configured as crisv10-*.
 
 'v32'
      Only instructions and register names for CRIS v32 (code name
      Guinness) are recognized.  This is the default if the target is
      configured as crisv32-*.  This value implies '--no-mul-bug-abort'.
      (A subsequent '--mul-bug-abort' will turn it back on.)
 
 'common_v10_v32'
      Only instructions with register names and addressing modes with
      opcodes common to the v10 and v32 are recognized.
 
    When '-N' is specified, 'as' will emit a warning when a 16-bit branch
 instruction is expanded into a 32-bit multiple-instruction construct
 (SeeCRIS-Expand).
 
    Some versions of the CRIS v10, for example in the Etrax 100 LX,
 contain a bug that causes destabilizing memory accesses when a multiply
 instruction is executed with certain values in the first operand just
 before a cache-miss.  When the '--mul-bug-abort' command-line option is
 active (the default value), 'as' will refuse to assemble a file
 containing a multiply instruction at a dangerous offset, one that could
 be the last on a cache-line, or is in a section with insufficient
 alignment.  This placement checking does not catch any case where the
 multiply instruction is dangerously placed because it is located in a
 delay-slot.  The '--mul-bug-abort' command-line option turns off the
 checking.