as: M68K-Opts

 
 9.21.1 M680x0 Options
 ---------------------
 
 The Motorola 680x0 version of 'as' has a few machine dependent options:
 
 '-march=ARCHITECTURE'
      This option specifies a target architecture.  The following
      architectures are recognized: '68000', '68010', '68020', '68030',
      '68040', '68060', 'cpu32', 'isaa', 'isaaplus', 'isab', 'isac' and
      'cfv4e'.
 
 '-mcpu=CPU'
      This option specifies a target cpu.  When used in conjunction with
      the '-march' option, the cpu must be within the specified
      architecture.  Also, the generic features of the architecture are
      used for instruction generation, rather than those of the specific
      chip.
 
 '-m[no-]68851'
 '-m[no-]68881'
 '-m[no-]div'
 '-m[no-]usp'
 '-m[no-]float'
 '-m[no-]mac'
 '-m[no-]emac'
 
      Enable or disable various architecture specific features.  If a
      chip or architecture by default supports an option (for instance
      '-march=isaaplus' includes the '-mdiv' option), explicitly
      disabling the option will override the default.
 
 '-l'
      You can use the '-l' option to shorten the size of references to
      undefined symbols.  If you do not use the '-l' option, references
      to undefined symbols are wide enough for a full 'long' (32 bits).
      (Since 'as' cannot know where these symbols end up, 'as' can only
      allocate space for the linker to fill in later.  Since 'as' does
      not know how far away these symbols are, it allocates as much space
      as it can.)  If you use this option, the references are only one
      word wide (16 bits).  This may be useful if you want the object
      file to be as small as possible, and you know that the relevant
      symbols are always less than 17 bits away.
 
 '--register-prefix-optional'
      For some configurations, especially those where the compiler
      normally does not prepend an underscore to the names of user
      variables, the assembler requires a '%' before any use of a
      register name.  This is intended to let the assembler distinguish
      between C variables and functions named 'a0' through 'a7', and so
      on.  The '%' is always accepted, but is not required for certain
      configurations, notably 'sun3'.  The '--register-prefix-optional'
      option may be used to permit omitting the '%' even for
      configurations for which it is normally required.  If this is done,
      it will generally be impossible to refer to C variables and
      functions with the same names as register names.
 
 '--bitwise-or'
      Normally the character '|' is treated as a comment character, which
      means that it can not be used in expressions.  The '--bitwise-or'
      option turns '|' into a normal character.  In this mode, you must
      either use C style comments, or start comments with a '#' character
      at the beginning of a line.
 
 '--base-size-default-16 --base-size-default-32'
      If you use an addressing mode with a base register without
      specifying the size, 'as' will normally use the full 32 bit value.
      For example, the addressing mode '%a0@(%d0)' is equivalent to
      '%a0@(%d0:l)'.  You may use the '--base-size-default-16' option to
      tell 'as' to default to using the 16 bit value.  In this case,
      '%a0@(%d0)' is equivalent to '%a0@(%d0:w)'.  You may use the
      '--base-size-default-32' option to restore the default behaviour.
 
 '--disp-size-default-16 --disp-size-default-32'
      If you use an addressing mode with a displacement, and the value of
      the displacement is not known, 'as' will normally assume that the
      value is 32 bits.  For example, if the symbol 'disp' has not been
      defined, 'as' will assemble the addressing mode '%a0@(disp,%d0)' as
      though 'disp' is a 32 bit value.  You may use the
      '--disp-size-default-16' option to tell 'as' to instead assume that
      the displacement is 16 bits.  In this case, 'as' will assemble
      '%a0@(disp,%d0)' as though 'disp' is a 16 bit value.  You may use
      the '--disp-size-default-32' option to restore the default
      behaviour.
 
 '--pcrel'
      Always keep branches PC-relative.  In the M680x0 architecture all
      branches are defined as PC-relative.  However, on some processors
      they are limited to word displacements maximum.  When 'as' needs a
      long branch that is not available, it normally emits an absolute
      jump instead.  This option disables this substitution.  When this
      option is given and no long branches are available, only word
      branches will be emitted.  An error message will be generated if a
      word branch cannot reach its target.  This option has no effect on
      68020 and other processors that have long branches.  SeeBranch
      Improvement M68K-Branch.
 
 '-m68000'
      'as' can assemble code for several different members of the
      Motorola 680x0 family.  The default depends upon how 'as' was
      configured when it was built; normally, the default is to assemble
      code for the 68020 microprocessor.  The following options may be
      used to change the default.  These options control which
      instructions and addressing modes are permitted.  The members of
      the 680x0 family are very similar.  For detailed information about
      the differences, see the Motorola manuals.
 
      '-m68000'
      '-m68ec000'
      '-m68hc000'
      '-m68hc001'
      '-m68008'
      '-m68302'
      '-m68306'
      '-m68307'
      '-m68322'
      '-m68356'
           Assemble for the 68000.  '-m68008', '-m68302', and so on are
           synonyms for '-m68000', since the chips are the same from the
           point of view of the assembler.
 
      '-m68010'
           Assemble for the 68010.
 
      '-m68020'
      '-m68ec020'
           Assemble for the 68020.  This is normally the default.
 
      '-m68030'
      '-m68ec030'
           Assemble for the 68030.
 
      '-m68040'
      '-m68ec040'
           Assemble for the 68040.
 
      '-m68060'
      '-m68ec060'
           Assemble for the 68060.
 
      '-mcpu32'
      '-m68330'
      '-m68331'
      '-m68332'
      '-m68333'
      '-m68334'
      '-m68336'
      '-m68340'
      '-m68341'
      '-m68349'
      '-m68360'
           Assemble for the CPU32 family of chips.
 
      '-m5200'
      '-m5202'
      '-m5204'
      '-m5206'
      '-m5206e'
      '-m521x'
      '-m5249'
      '-m528x'
      '-m5307'
      '-m5407'
      '-m547x'
      '-m548x'
      '-mcfv4'
      '-mcfv4e'
           Assemble for the ColdFire family of chips.
 
      '-m68881'
      '-m68882'
           Assemble 68881 floating point instructions.  This is the
           default for the 68020, 68030, and the CPU32.  The 68040 and
           68060 always support floating point instructions.
 
      '-mno-68881'
           Do not assemble 68881 floating point instructions.  This is
           the default for 68000 and the 68010.  The 68040 and 68060
           always support floating point instructions, even if this
           option is used.
 
      '-m68851'
           Assemble 68851 MMU instructions.  This is the default for the
           68020, 68030, and 68060.  The 68040 accepts a somewhat
           different set of MMU instructions; '-m68851' and '-m68040'
           should not be used together.
 
      '-mno-68851'
           Do not assemble 68851 MMU instructions.  This is the default
           for the 68000, 68010, and the CPU32.  The 68040 accepts a
           somewhat different set of MMU instructions.