Mercurial > hg > index.cgi
comparison docs/manual.docbook.sgml @ 517:1faf14de9d04
Update manual to correctly reflect forwardrefmax behaviour
Add a note to autobranchlength referencing forwardrefmax and also not that
forwardrefmax is enabled by default.
author | William Astle <lost@l-w.ca> |
---|---|
date | Tue, 13 Apr 2021 15:38:12 -0600 |
parents | 94bbdb2890b7 |
children | b530ff19f7c0 |
comparison
equal
deleted
inserted
replaced
516:c33b4abff860 | 517:1faf14de9d04 |
---|---|
1925 assemblers, it is strongly recommended that it be invoked using the PRAGMA | 1925 assemblers, it is strongly recommended that it be invoked using the PRAGMA |
1926 directive within the source code rather than on the command line or via the | 1926 directive within the source code rather than on the command line or via the |
1927 *PRAGMA directive. This way, an error will be raised if someone tries to | 1927 *PRAGMA directive. This way, an error will be raised if someone tries to |
1928 assemble the code under a different assembler.</para> | 1928 assemble the code under a different assembler.</para> |
1929 | 1929 |
1930 <para>Note that if the "forwardrefmax" pragma is ineffect, as is the current | |
1931 default, this pragma will not behave as expected.</para> | |
1932 | |
1930 <varlistentry> | 1933 <varlistentry> |
1931 <term>nosymbolcase</term> | 1934 <term>nosymbolcase</term> |
1932 <term>symbolnocase</term> | 1935 <term>symbolnocase</term> |
1933 <listitem> | 1936 <listitem> |
1934 | 1937 |
1965 <varlistentry> | 1968 <varlistentry> |
1966 <term>forwardrefmax</term> | 1969 <term>forwardrefmax</term> |
1967 <listitem> | 1970 <listitem> |
1968 | 1971 |
1969 <para>This pragma will disable forward reference optimization completely. | 1972 <para>This pragma will disable forward reference optimization completely. |
1970 Ordinarily, LWASM will attempt to select the shortest possible addressing | 1973 However, many source files, especially |
1971 mode for forward references. However, in many source files, especially | |
1972 those not using the PCR relative addressing modes, this optimization is | 1974 those not using the PCR relative addressing modes, this optimization is |
1973 pointless since the assembler will almost certainly settle on a 16 bit | 1975 pointless since the assembler will almost certainly settle on a 16 bit |
1974 offset or address. If all variables in the direct page are defined before | 1976 offset or address. If all variables in the direct page are defined before |
1975 the main body of the code, the benefit of forward reference optimization | 1977 the main body of the code, the benefit of forward reference optimization |
1976 almost certainly vanishes completely. However, the cost of doing that | 1978 almost certainly vanishes completely. However, the cost of doing that |
1977 optimization remains and can result in a very long assembly time.</para> | 1979 optimization remains and can result in a very long assembly time. Because |
1980 of this, "forwardrefmax" has been the default setting since version 4.14 of | |
1981 LWTOOLS. To turn it off, use "noforwardrefmax".</para> | |
1978 | 1982 |
1979 <para>Enabling this pragma will cause all forward references to use the | 1983 <para>Enabling this pragma will cause all forward references to use the |
1980 maximum offset or address size, much the same has EDTASM and other pure | 1984 maximum offset or address size, much the same has EDTASM and other pure |
1981 two pass assemblers do. The side effect is that all line lengths and | 1985 two pass assemblers do. The side effect is that all line lengths and |
1982 symbol values are fully resolved after the initial parsing pass and the | 1986 symbol values are fully resolved after the initial parsing pass and the |