Mercurial > hg > index.cgi
comparison docs/manual.docbook.sgml @ 117:8e2523061ce9
Document the new autobranchlength pragma
author | lost@l-w.ca |
---|---|
date | Tue, 09 Aug 2011 18:16:41 -0600 |
parents | c0aedb1584af |
children | d90ab253471e |
comparison
equal
deleted
inserted
replaced
116:7b0716264251 | 117:8e2523061ce9 |
---|---|
1599 <para>Lines where this pragma is in effect will not appear in the assembly | 1599 <para>Lines where this pragma is in effect will not appear in the assembly |
1600 listing. Also, any symbols defined under this pragma will not show up in | 1600 listing. Also, any symbols defined under this pragma will not show up in |
1601 the symbol list. This is most useful in include files to avoid spamming the | 1601 the symbol list. This is most useful in include files to avoid spamming the |
1602 assembly listing with dozens, hundreds, or thousands of irrelevant | 1602 assembly listing with dozens, hundreds, or thousands of irrelevant |
1603 symbols.</para> | 1603 symbols.</para> |
1604 | |
1605 </listitem> | |
1606 </varlistentry> | |
1607 | |
1608 <varlistentry> | |
1609 <term>autobranchlength</term> | |
1610 <listitem> | |
1611 | |
1612 <para>One of the perennial annoyances for 6809 programmers is that the | |
1613 mneumonics for the short and long branch instructions are different (bxx vs. | |
1614 lbxx), which is at odds with the rest of the instruction set. This pragma | |
1615 is a solution to those annoying byte overflow errors that short branch | |
1616 instructions tend to aquire.</para> | |
1617 | |
1618 <para>When this pragma is in effect, which is not the default, whenever any | |
1619 relative branch instruction is used, its size will be automatically | |
1620 determined based on the actual distance to the destination. In other words, | |
1621 one can write code with long or short branches everywhere and the assembler | |
1622 will choose a size for the branch.</para> | |
1623 | |
1624 <para>Also, while this pragma is in effect, the > and < symbols can be used | |
1625 to force the branch size, analogous to their use for other instructions with | |
1626 < forcing 8 bit offsets and > forcing 16 bit offets.</para> | |
1627 | |
1628 <para>Because this pragma leads to source that is incompatible with other | |
1629 assemblers, it is strongly recommended that it be invoked using the PRAGMA | |
1630 directive within the source code rather than on the command line or via the | |
1631 *PRAGMA directive. This way, an error will be raised if someone tries to | |
1632 * assemble the code under a different assembler.</para> | |
1633 | |
1634 | |
1604 | 1635 |
1605 </listitem> | 1636 </listitem> |
1606 </varlistentry> | 1637 </varlistentry> |
1607 | 1638 |
1608 </variablelist> | 1639 </variablelist> |