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