`1: move.l #x,Dn/An to moveq (on by default)`
`2: Word branches to short (on by default)`
`1: move.l #x,Dn/An to moveq (on by default)`
`2: Word branches to short (on by default)`
-r *size* automatically pad the size of each
segment in the output file until the size is an integral multiple of the
specified boundary. Size is a letter that specifies the desired boundary.
-r *size* automatically pad the size of each
segment in the output file until the size is an integral multiple of the
specified boundary. Size is a letter that specifies the desired boundary.
`-rq Quad Phrase (32 bytes)`
-s Warn about unoptimized long branches and applied optimisations.
-u Force referenced and undefined symbols global.
`-rq Quad Phrase (32 bytes)`
-s Warn about unoptimized long branches and applied optimisations.
-u Force referenced and undefined symbols global.
**~** Tilde: bitwise not (l's complement).
**^^defined** *symbol* True if symbol has a value.
**^^referenced** *symbol* True if symbol has been referenced.
**~** Tilde: bitwise not (l's complement).
**^^defined** *symbol* True if symbol has a value.
**^^referenced** *symbol* True if symbol has been referenced.
**^^macdef** *macroName* True if the macro is defined.
**^^abscount** Returns the size of current .abs section
**^^filesize** *string_filename* Returns the file size of supplied filename
**^^macdef** *macroName* True if the macro is defined.
**^^abscount** Returns the size of current .abs section
**^^filesize** *string_filename* Returns the file size of supplied filename
These directives control the optimisations that rmac applies to the source
automatically. Each directive is applied immediately from the line encountered
onwards. So it is possible to turn specific optimisations on and off globally
(when placed at the start of the first file) or locally (by turning desired
optimisations on and off at certain parts of the source). For a list of the
optimisations (*n*) available please consult the table in section `The Command Line`_.
These directives control the optimisations that rmac applies to the source
automatically. Each directive is applied immediately from the line encountered
onwards. So it is possible to turn specific optimisations on and off globally
(when placed at the start of the first file) or locally (by turning desired
optimisations on and off at certain parts of the source). For a list of the
optimisations (*n*) available please consult the table in section `The Command Line`_.
- **all**, as expected, turns all available optimisations on or off.
+
+ **all**, as expected, turns all available optimisations on or off. An exception to this
+ is *o10*/*op* as this is not an optimisation that should be turned on unless the user
+ absolutely needs it.
Lastly, as a "creature comfort" feature, if the first column of any line is prefixed
with an exclamation mark (*!*) then for that line all optimisations are turned off.
Lastly, as a "creature comfort" feature, if the first column of any line is prefixed
with an exclamation mark (*!*) then for that line all optimisations are turned off.
**.comm** *symbol*, *expression*
Specifies a label and the size of a common region. The label is made global,
**.comm** *symbol*, *expression*
Specifies a label and the size of a common region. The label is made global,
Undefines a register name (regname) previously assigned using the
.CCDEF directive. This is only implemented in GPU and DSP code
Undefines a register name (regname) previously assigned using the
.CCDEF directive. This is only implemented in GPU and DSP code
**.incbin** "*file*" [, [*size*], [*offset*]]
Include a file as a binary. This can be thought of a series of **dc.b** statements
**.incbin** "*file*" [, [*size*], [*offset*]]
Include a file as a binary. This can be thought of a series of **dc.b** statements
directive. The directive is not allowed in a BSS section. Optional parameters
control the amount of bytes to be included and offset from the start of the file.
All the following lines are valid:
directive. The directive is not allowed in a BSS section. Optional parameters
control the amount of bytes to be included and offset from the start of the file.
All the following lines are valid:
.incbin "test.bin" ; Include the whole file
.incbin "test.bin",,$30 ; Skip the first 48 bytes
.incbin "test.bin",$70,$30 ; Include $70 bytes starting at offset $30
.incbin "test.bin" ; Include the whole file
.incbin "test.bin",,$30 ; Skip the first 48 bytes
.incbin "test.bin",$70,$30 ; Include $70 bytes starting at offset $30
============ ====== =======
Definition Bit(s) Meaning
============ ====== =======
============ ====== =======
Definition Bit(s) Meaning
============ ====== =======
-PF_FASTLOAD 0 If set, clear only the BSS area on program load, otherwise clear the entire heap.
-PF_TTRAMLOAD 1 If set, the program may be loaded into alternative RAM, otherwise it must be loaded into standard RAM.
-PF_TTRAMMEM 2 If set, the program's Malloc() requests may be satisfied from alternative RAM, otherwise they must be satisfied from standard RAM.
+PF_FASTLOAD 0 If set, clear only the BSS area on program load, otherwise clear the entire heap.
+PF_TTRAMLOAD 1 If set, the program may be loaded into alternative RAM, otherwise it must be loaded into standard RAM.
+PF_TTRAMMEM 2 If set, the program's Malloc() requests may be satisfied from alternative RAM, otherwise they must be satisfied from standard RAM.
-See left. 4 & 5 If these bits are set to 0 (PF_PRIVATE), the processes' entire memory space will be considered private (when memory protection is enabled).If these bits are set to 1 (PF_GLOBAL), the processes' entire memory space will be readable and writable by any process (i.e. global).If these bits are set to 2 (PF_SUPERVISOR), the processes' entire memory space will only be readable and writable by itself and any other process in supervisor mode.If these bits are set to 3 (PF_READABLE), the processes' entire memory space will be readable by any application but only writable by itself.
+See left. 4 & 5 If these bits are set to 0 (PF_PRIVATE), the processes' entire memory space will be considered private (when memory protection is enabled).If these bits are set to 1 (PF_GLOBAL), the processes' entire memory space will be readable and writable by any process (i.e. global).If these bits are set to 2 (PF_SUPERVISOR), the processes' entire memory space will only be readable and writable by itself and any other process in supervisor mode.If these bits are set to 3 (PF_READABLE), the processes' entire memory space will be readable by any application but only writable by itself.
their quick forms; **ADDQ** and **SUBQ** must be explicit.
* All optimisations are controllable using the **.opt** directive. Refer to its
their quick forms; **ADDQ** and **SUBQ** must be explicit.
* All optimisations are controllable using the **.opt** directive. Refer to its
* All optimisations are turned off for any source line that has an exclamation mark
(*!*) on their first column.
* All optimisations are turned off for any source line that has an exclamation mark
(*!*) on their first column.
distinguish between the two. rmac needs the user to be explicit and will
generate an error if the programmer tries to use syntax from one instruction
to the other.
distinguish between the two. rmac needs the user to be explicit and will
generate an error if the programmer tries to use syntax from one instruction
to the other.
and **movem**. rmac also not accept such aliasing and generate an error.
- Motorola's assembler uses the underscore character (*_*) to define local
labels. In order for rmac to maintain a uniform syntax across all platforms,
and **movem**. rmac also not accept such aliasing and generate an error.
- Motorola's assembler uses the underscore character (*_*) to define local
labels. In order for rmac to maintain a uniform syntax across all platforms,