B.2. Assembler Options

The Assembler has several additional command line options as follows:

-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 the Assembler cannot know where these symbols end up, the Assembler can only allocate space for the linker to fill in later. Since the Assembler 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.

--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, the Assembler 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 the Assembler 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, the Assembler will normally assume that the value is 32 bits. For example, if the symbol disp has not been defined, the Assembler 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 the Assembler to instead assume that the displacement is 16 bits. In this case, the Assembler 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.

-m68000, -m68008, -m68302, -m68306, -m68307, -m68322, -m68356

Assemble for the MC68000. -m68008, -m68302, and so on are synonyms for -m68000, since the CPUs are the same from the point of view of the assembler.

-m68010

Assemble for the MC68010.

-m68020

Assemble for the MC68020.

-m68030

Assemble for the MC68030.

-m68040

Assemble for the MC68040. This is the default.

-m68060

Assemble for the MC68060.

-mcpu32, -m68330, -m68331, -m68332, -m68333, -m68334, -m68336, -m68340, -m68341, -m68349, -m68360

Assemble for the CPU32.

-m5200

Assemble for the ColdFire.

-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.