X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=docs%2Frmac.rst;h=bfbd66c08eac4e3abf390d77995a0bfca59f15e2;hb=40883e54a528bc424c55e2ed042a211e17a3aca8;hp=d937ff57bd4d40b89c8b034b37a30dd8fc2cad8b;hpb=72743a7fa1ef26bef694889b21219db454591034;p=rmac diff --git a/docs/rmac.rst b/docs/rmac.rst index d937ff5..bfbd66c 100644 --- a/docs/rmac.rst +++ b/docs/rmac.rst @@ -4,8 +4,8 @@ RMAC ===================== Reference Manual ================ -version 2.0.8 -============= +version 2.0.21 +============== © and notes =========== @@ -17,7 +17,7 @@ the accuracy of printed or duplicated material after the date of publication and disclaims liability for changes, errors or omissions.* -*Copyright © 2011-2019, Reboot* +*Copyright © 2011-2020, Reboot* *All rights reserved.* @@ -154,8 +154,8 @@ Switch Description -o\ *file[.o]* Direct object code output to the specified file. +/~oall Turn all optimisations on/off -+o\ *0-9* Enable specific optimisation -~o\ *0-9* Disable specific optimisation ++o\ *0-10*/*p* Enable specific optimisation +~o\ *0-10*/*p* Disable specific optimisation `0: Absolute long adddresses to word (on by default)` @@ -167,7 +167,7 @@ Switch Description `4: lea to addq` - `5: Base displacement ([bd,An,Xn],od) etc to ([An,Xn],od)` + `5: 68020+ Absolute long base/outer displacement to word` `6: Convert null short branches to NOP` @@ -177,7 +177,7 @@ Switch Description `9: Convert adda.w/l #x,Dy to lea x(Dy),Dy` - 'p: Enforce PC relative' + `p: Force PC-Relative mode (alternative: o10)` -p Produce an executable (**.prg**) output file. -ps Produce an executable (**.prg**) output file with symbols. -px Produce an executable (**.prg**) output file with extended symbols. @@ -803,7 +803,7 @@ Operator Description **~** Tilde: bitwise not (l's complement). **^^defined** *symbol* True if symbol has a value. **^^referenced** *symbol* True if symbol has been referenced. -**^^streq** *stringl*,*string2* True if the strings are equal. +**^^streq** *stringl*, *string2* True if the strings are equal. **^^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 @@ -902,12 +902,12 @@ code if the debugging code is referenced, as in: lea string,a0 ; AO -> message jsr debug ; print a message - its ; and return + rts ; and return string: dc.b "Help me, Spock!",0 ; (the message) . . . - .iif ^^defined debug, .include "debug.s" + .iif ^^referenced debug, .include "debug.s" The **jsr** statement references the symbol debug. Near the end of the source file, the "**.iif**" statement includes the file "**debug.s**" if the symbol debug was referenced. @@ -1530,12 +1530,22 @@ The assembler provides "creature comforts" when it processes 68000 mnemonics: * All optimisations are turned off for any source line that has an exclamation mark (*!*) on their first column. - + + * Optimisation switches 0, 1 and 2 are turned on by default for legacy reasons. + All other levels are off by default. (refer to section `The Command Line`_ + for a description of all the switches). + + * Optimisation warnings are off by default. Invoke RMAC with the *-s* switch to + turn on warnings in console and listing output. + + * In DSP56001 mode size optimisations are on by default. Currently there is no + way to disable this behaviour. + * In GPU/DSP code sections, you can use JUMP (Rx) in place of JUMP T, (Rx) and JR - (Rx) in place of JR T,(Rx). + (Rx) in place of JR T,(Rx). * RMAC tests all GPU/DSP restrictions and corrects them wherever possible (such as - inserting a NOP instruction when needed). + inserting a NOP instruction when needed). * The *(Rx+N)* addressing mode for GPU/DSP instructions is optimized to *(Rx)* when *N* is zero. @@ -2078,7 +2088,7 @@ indicates that the assembler could not determine which file had the problem. The following sections list warnings, errors and fatal errors in alphabetical order, along with a short description of what may have caused the problem. -.. [3] If you come across an internal error, we would appreciate it if you would contact Atari Technical Support and let us know about the problem. +.. [3] If you come across an internal error, we would appreciate it if you would contact the rmac development team and let us know about the problem. `Warnings`_ ''''''''''' @@ -2396,13 +2406,13 @@ order, along with a short description of what may have caused the problem. **unknown symbol following ^^** - You followed a ^^ with something other than one of the names defined, ref- - erenced or streq. + You followed a ^^ with something other than one of the names defined, referenced + or streq. **unsupported 68020 addressing mode** - The assembler saw a 68020-type addressing mode. RMAC does not assem- - ble code for the 68020 or 68010. + The assembler saw a 68020-type addressing mode. RMAC does not assemble + code for the 68020 or 68010. **unterminated string**