annotate docs/manual/x237.html @ 416:b4d0eafc5bfe

Fix code generation error in gcc6809 It turned out that under some circumstances, the gcc optimizer would select an instruction sequence that had the sense of a branch inverted. It seems this was due to a particular instruction pattern included in the machine description not being quite right with respect to how the condition codes were tracked. Removing that instruction pattern seems to fix things (subtraction with the arguments reversed). gcc seems to be smart enough to figure out how to reorganize code to work without this reversed sense subtraction and then do the right thing.
author William Astle <lost@l-w.ca>
date Thu, 24 Mar 2016 20:07:20 -0600
parents fc166b3bbae3
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
394
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
2 <HTML
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
3 ><HEAD
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
4 ><TITLE
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
5 >Symbols</TITLE
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
6 ><META
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
7 NAME="GENERATOR"
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
8 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
9 REL="HOME"
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
10 TITLE="LW Tool Chain"
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
11 HREF="index.html"><LINK
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
12 REL="UP"
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
13 TITLE="LWASM"
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
14 HREF="c62.html"><LINK
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
15 REL="PREVIOUS"
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
16 TITLE="Source Format"
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
17 HREF="x227.html"><LINK
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
18 REL="NEXT"
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
19 TITLE="Numbers and Expressions"
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
20 HREF="x242.html"></HEAD
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
21 ><BODY
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
22 CLASS="SECTION"
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
23 BGCOLOR="#FFFFFF"
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
24 TEXT="#000000"
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
25 LINK="#0000FF"
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
26 VLINK="#840084"
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
27 ALINK="#0000FF"
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
28 ><DIV
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
29 CLASS="NAVHEADER"
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
30 ><TABLE
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
31 SUMMARY="Header navigation table"
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
32 WIDTH="100%"
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
33 BORDER="0"
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
34 CELLPADDING="0"
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
35 CELLSPACING="0"
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
36 ><TR
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
37 ><TH
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
38 COLSPAN="3"
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
39 ALIGN="center"
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
40 >LW Tool Chain</TH
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
41 ></TR
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
42 ><TR
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
43 ><TD
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
44 WIDTH="10%"
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
45 ALIGN="left"
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
46 VALIGN="bottom"
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
47 ><A
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
48 HREF="x227.html"
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
49 ACCESSKEY="P"
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
50 >Prev</A
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
51 ></TD
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
52 ><TD
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
53 WIDTH="80%"
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
54 ALIGN="center"
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
55 VALIGN="bottom"
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
56 >Chapter 3. LWASM</TD
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
57 ><TD
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
58 WIDTH="10%"
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
59 ALIGN="right"
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
60 VALIGN="bottom"
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
61 ><A
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
62 HREF="x242.html"
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
63 ACCESSKEY="N"
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
64 >Next</A
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
65 ></TD
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
66 ></TR
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
67 ></TABLE
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
68 ><HR
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
69 ALIGN="LEFT"
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
70 WIDTH="100%"></DIV
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
71 ><DIV
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
72 CLASS="SECTION"
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
73 ><H1
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
74 CLASS="SECTION"
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
75 ><A
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
76 NAME="AEN237"
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
77 >3.4. Symbols</A
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
78 ></H1
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
79 ><P
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
80 >Symbols have no length restriction. They may contain letters, numbers, dots,
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
81 dollar signs, and underscores. They must start with a letter, dot, or
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
82 underscore.</P
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
83 ><P
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
84 >LWASM also supports the concept of a local symbol. A local symbol is one
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
85 which contains either a "?" or a "@", which can appear anywhere in the symbol.
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
86 The scope of a local symbol is determined by a number of factors. First,
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
87 each included file gets its own local symbol scope. A blank line will also
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
88 be considered a local scope barrier. Macros each have their own local symbol
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
89 scope as well (which has a side effect that you cannot use a local symbol
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
90 as an argument to a macro). There are other factors as well. In general,
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
91 a local symbol is restricted to the block of code it is defined within.</P
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
92 ><P
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
93 >By default, unless assembling to the os9 target, a "$" in the symbol will
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
94 also make it local. This can be controlled by the "dollarlocal" and
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
95 "nodollarlocal" pragmas. In the absence of a pragma to the contrary, for
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
96 the os9 target, a "$" in the symbol will not make it considered local while
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
97 for all other targets it will.</P
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
98 ></DIV
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
99 ><DIV
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
100 CLASS="NAVFOOTER"
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
101 ><HR
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
102 ALIGN="LEFT"
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
103 WIDTH="100%"><TABLE
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
104 SUMMARY="Footer navigation table"
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
105 WIDTH="100%"
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
106 BORDER="0"
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
107 CELLPADDING="0"
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
108 CELLSPACING="0"
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
109 ><TR
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
110 ><TD
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
111 WIDTH="33%"
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
112 ALIGN="left"
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
113 VALIGN="top"
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
114 ><A
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
115 HREF="x227.html"
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
116 ACCESSKEY="P"
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
117 >Prev</A
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
118 ></TD
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
119 ><TD
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
120 WIDTH="34%"
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
121 ALIGN="center"
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
122 VALIGN="top"
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
123 ><A
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
124 HREF="index.html"
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
125 ACCESSKEY="H"
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
126 >Home</A
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
127 ></TD
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
128 ><TD
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
129 WIDTH="33%"
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
130 ALIGN="right"
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
131 VALIGN="top"
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
132 ><A
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
133 HREF="x242.html"
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
134 ACCESSKEY="N"
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
135 >Next</A
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
136 ></TD
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
137 ></TR
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
138 ><TR
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
139 ><TD
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
140 WIDTH="33%"
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
141 ALIGN="left"
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
142 VALIGN="top"
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
143 >Source Format</TD
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
144 ><TD
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
145 WIDTH="34%"
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
146 ALIGN="center"
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
147 VALIGN="top"
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
148 ><A
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
149 HREF="c62.html"
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
150 ACCESSKEY="U"
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
151 >Up</A
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
152 ></TD
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
153 ><TD
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
154 WIDTH="33%"
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
155 ALIGN="right"
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
156 VALIGN="top"
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
157 >Numbers and Expressions</TD
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
158 ></TR
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
159 ></TABLE
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
160 ></DIV
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
161 ></BODY
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
162 ></HTML
fc166b3bbae3 Update manual for recent additions.
William Astle <lost@l-w.ca>
parents:
diff changeset
163 >