Announce SDCC 4.5.0 RC3.
[sdcc.git] / sdcc / doc / z80-stack-cleanup.svg
blobc9402133445bfb8b8336a2d4f09c5481d7e188dd
1 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2 <!-- Created with Inkscape (http://www.inkscape.org/) -->
4 <svg
5 width="150mm"
6 height="150mm"
7 viewBox="0 0 150 150"
8 version="1.1"
9 id="svg5"
10 inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
11 sodipodi:docname="z80-cleanup.svg"
12 xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
13 xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
14 xmlns="http://www.w3.org/2000/svg"
15 xmlns:svg="http://www.w3.org/2000/svg">
16 <sodipodi:namedview
17 id="namedview7"
18 pagecolor="#ffffff"
19 bordercolor="#666666"
20 borderopacity="1.0"
21 inkscape:showpageshadow="2"
22 inkscape:pageopacity="0.0"
23 inkscape:pagecheckerboard="0"
24 inkscape:deskcolor="#d1d1d1"
25 inkscape:document-units="mm"
26 showgrid="true"
27 inkscape:zoom="1.5037598"
28 inkscape:cx="300.57992"
29 inkscape:cy="255.35993"
30 inkscape:window-width="2560"
31 inkscape:window-height="1029"
32 inkscape:window-x="0"
33 inkscape:window-y="0"
34 inkscape:window-maximized="1"
35 inkscape:current-layer="layer1">
36 <inkscape:grid
37 type="xygrid"
38 id="grid9"
39 originx="0"
40 originy="0" />
41 </sodipodi:namedview>
42 <defs
43 id="defs2">
44 <marker
45 style="overflow:visible"
46 id="Arrow5"
47 refX="0"
48 refY="0"
49 orient="auto-start-reverse"
50 inkscape:stockid="Arrow5"
51 markerWidth="5.8874264"
52 markerHeight="6.6094756"
53 viewBox="0 0 5.8874262 6.6094758"
54 inkscape:isstock="true"
55 inkscape:collect="always"
56 preserveAspectRatio="xMidYMid">
57 <path
58 transform="scale(0.5)"
59 style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
60 d="m 6,0 c -3,1 -7,3 -9,5 0,0 0,-4 2,-5 -2,-1 -2,-5 -2,-5 2,2 6,4 9,5 z"
61 id="path8893" />
62 </marker>
63 <marker
64 style="overflow:visible"
65 id="Arrow5-5"
66 refX="0"
67 refY="0"
68 orient="auto-start-reverse"
69 inkscape:stockid="Arrow5"
70 markerWidth="5.8874264"
71 markerHeight="6.6094756"
72 viewBox="0 0 5.8874262 6.6094758"
73 inkscape:isstock="true"
74 inkscape:collect="always"
75 preserveAspectRatio="xMidYMid">
76 <path
77 transform="scale(0.5)"
78 style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
79 d="m 6,0 c -3,1 -7,3 -9,5 0,0 0,-4 2,-5 -2,-1 -2,-5 -2,-5 2,2 6,4 9,5 z"
80 id="path8893-6" />
81 </marker>
82 <marker
83 style="overflow:visible"
84 id="Arrow5-9"
85 refX="0"
86 refY="0"
87 orient="auto-start-reverse"
88 inkscape:stockid="Arrow5"
89 markerWidth="5.8874259"
90 markerHeight="6.6094756"
91 viewBox="0 0 5.8874262 6.6094758"
92 inkscape:isstock="true"
93 inkscape:collect="always"
94 preserveAspectRatio="xMidYMid">
95 <path
96 transform="scale(0.5)"
97 style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
98 d="m 6,0 c -3,1 -7,3 -9,5 0,0 0,-4 2,-5 -2,-1 -2,-5 -2,-5 2,2 6,4 9,5 z"
99 id="path8893-1" />
100 </marker>
101 </defs>
103 inkscape:label="Ebene 1"
104 inkscape:groupmode="layer"
105 id="layer1">
107 id="g1173"
108 transform="translate(74.242874,66.443828)">
109 <ellipse
110 style="fill:none;fill-opacity:0.540962;stroke:#000000;stroke-width:0.5;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:0.999115"
111 id="path165-3-6"
112 cx="52.775909"
113 cy="67.422653"
114 rx="15.47472"
115 ry="6.5392728" />
116 <text
117 xml:space="preserve"
118 style="font-size:3.52777px;line-height:1.25;font-family:cmr10;-inkscape-font-specification:'cmr10, Normal';letter-spacing:0px;stroke-width:0.264583"
119 x="43.221619"
120 y="66.114227"
121 id="text951"><tspan
122 sodipodi:role="line"
123 id="tspan949"
124 style="stroke-width:0.264583"
125 x="43.221619"
126 y="66.114227">Callee cleans</tspan><tspan
127 sodipodi:role="line"
128 style="stroke-width:0.264583"
129 x="43.221619"
130 y="70.523941"
131 id="tspan953">up stack</tspan></text>
132 </g>
134 id="g1167"
135 transform="translate(-31.43972,84.651151)">
136 <ellipse
137 style="fill:none;fill-opacity:0.540962;stroke:#000000;stroke-width:0.5;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:0.999115"
138 id="path165-3"
139 cx="52.780792"
140 cy="49.063187"
141 rx="15.47472"
142 ry="6.5392728" />
143 <text
144 xml:space="preserve"
145 style="font-size:3.52777px;line-height:1.25;font-family:cmr10;-inkscape-font-specification:'cmr10, Normal';letter-spacing:0px;stroke-width:0.264583"
146 x="43.498009"
147 y="47.943634"
148 id="text957"><tspan
149 sodipodi:role="line"
150 id="tspan955"
151 style="stroke-width:0.264583"
152 x="43.498009"
153 y="47.943634">Caller cleans</tspan><tspan
154 sodipodi:role="line"
155 style="stroke-width:0.264583"
156 x="43.498009"
157 y="52.353348"
158 id="tspan959">up stack</tspan></text>
159 </g>
160 <text
161 xml:space="preserve"
162 style="font-size:3.52777px;line-height:1.25;font-family:cmr10;-inkscape-font-specification:'cmr10, Normal';letter-spacing:0px;stroke-width:0.264583"
163 x="25.18663"
164 y="22.752913"
165 id="text1177"><tspan
166 sodipodi:role="line"
167 id="tspan1175"
168 style="stroke-width:0.264583"
169 x="25.18663"
170 y="22.752913" /></text>
171 <text
172 xml:space="preserve"
173 style="font-size:3.52777px;line-height:1.25;font-family:cmr10;-inkscape-font-specification:'cmr10, Normal';letter-spacing:0px;stroke-width:0.264583"
174 x="50.682575"
175 y="29.013285"
176 id="text1181"><tspan
177 sodipodi:role="line"
178 id="tspan1179"
179 style="stroke-width:0.264583"
180 x="50.682575"
181 y="29.013285">No</tspan></text>
182 <text
183 xml:space="preserve"
184 style="font-size:3.52777px;line-height:1.25;font-family:cmr10;-inkscape-font-specification:'cmr10, Normal';letter-spacing:0px;stroke-width:0.264583"
185 x="57.222942"
186 y="51.69532"
187 id="text1181-3"><tspan
188 sodipodi:role="line"
189 id="tspan1179-6"
190 style="stroke-width:0.264583"
191 x="57.222942"
192 y="51.69532">No</tspan></text>
193 <text
194 xml:space="preserve"
195 style="font-size:3.52777px;line-height:1.25;font-family:cmr10;-inkscape-font-specification:'cmr10, Normal';letter-spacing:0px;stroke-width:0.264583"
196 x="67.295418"
197 y="84.655273"
198 id="text1181-0"><tspan
199 sodipodi:role="line"
200 id="tspan1179-62"
201 style="stroke-width:0.264583"
202 x="67.295418"
203 y="84.655273">No</tspan></text>
204 <text
205 xml:space="preserve"
206 style="font-size:3.52777px;line-height:1.25;font-family:cmr10;-inkscape-font-specification:'cmr10, Normal';letter-spacing:0px;stroke-width:0.264583"
207 x="50.616631"
208 y="118.99543"
209 id="text1181-6"><tspan
210 sodipodi:role="line"
211 id="tspan1179-1"
212 style="stroke-width:0.264583"
213 x="50.616631"
214 y="118.99543">No</tspan></text>
215 <text
216 xml:space="preserve"
217 style="font-size:3.52777px;line-height:1.25;font-family:cmr10;-inkscape-font-specification:'cmr10, Normal';letter-spacing:0px;stroke-width:0.264583"
218 x="96.739456"
219 y="29.065556"
220 id="text1185"><tspan
221 sodipodi:role="line"
222 id="tspan1183"
223 style="stroke-width:0.264583"
224 x="96.739456"
225 y="29.065556">Yes</tspan></text>
226 <text
227 xml:space="preserve"
228 style="font-size:3.52777px;line-height:1.25;font-family:cmr10;-inkscape-font-specification:'cmr10, Normal';letter-spacing:0px;stroke-width:0.264583"
229 x="95.22229"
230 y="77.077065"
231 id="text1185-8"><tspan
232 sodipodi:role="line"
233 id="tspan1183-7"
234 style="stroke-width:0.264583"
235 x="95.22229"
236 y="77.077065">Yes</tspan></text>
237 <text
238 xml:space="preserve"
239 style="font-size:3.52777px;line-height:1.25;font-family:cmr10;-inkscape-font-specification:'cmr10, Normal';letter-spacing:0px;stroke-width:0.264583"
240 x="97.382507"
241 y="118.90237"
242 id="text1185-9"><tspan
243 sodipodi:role="line"
244 id="tspan1183-2"
245 style="stroke-width:0.264583"
246 x="97.382507"
247 y="118.90237">Yes</tspan></text>
248 <text
249 xml:space="preserve"
250 style="font-size:3.52777px;line-height:1.25;font-family:cmr10;-inkscape-font-specification:'cmr10, Normal';letter-spacing:0px;stroke-width:0.264583"
251 x="16.990343"
252 y="55.534706"
253 id="text1185-0"><tspan
254 sodipodi:role="line"
255 id="tspan1183-9"
256 style="stroke-width:0.264583"
257 x="16.990343"
258 y="55.534706">Yes</tspan></text>
260 id="g1527"
261 transform="translate(12.047199,16.074304)">
262 <text
263 xml:space="preserve"
264 style="font-size:3.52777px;line-height:1.25;font-family:cmr10;-inkscape-font-specification:'cmr10, Normal';letter-spacing:0px;stroke-width:0.264583"
265 x="45.961784"
266 y="89.344078"
267 id="text1199"><tspan
268 sodipodi:role="line"
269 id="tspan1197"
270 style="stroke-width:0.264583"
271 x="45.961784"
272 y="89.344078">Both first arg. and</tspan><tspan
273 sodipodi:role="line"
274 style="stroke-width:0.264583"
275 x="45.961784"
276 y="93.753792"
277 id="tspan1201">return type are float?</tspan></text>
278 <rect
279 style="fill:none;fill-opacity:0.540962;stroke:#000000;stroke-width:0.522634;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:0.999115"
280 id="rect1384"
281 width="26.661442"
282 height="26.829136"
283 x="106.55806"
284 y="32.624947"
285 transform="matrix(0.83751606,0.5464127,-0.83751606,0.5464127,0,0)" />
286 </g>
288 id="g1533"
289 transform="translate(40.887196,-38.015876)">
290 <text
291 xml:space="preserve"
292 style="font-size:3.52777px;line-height:1.25;font-family:cmr10;-inkscape-font-specification:'cmr10, Normal';letter-spacing:0px;stroke-width:0.264583"
293 x="21.199593"
294 y="100.07631"
295 id="text1193"><tspan
296 sodipodi:role="line"
297 id="tspan1191"
298 style="stroke-width:0.264583"
299 x="21.199593"
300 y="100.07631">return type has</tspan><tspan
301 sodipodi:role="line"
302 style="stroke-width:0.264583"
303 x="21.199593"
304 y="104.48602"
305 id="tspan1195">at most 16 bits?</tspan></text>
306 <rect
307 style="fill:none;fill-opacity:0.540962;stroke:#000000;stroke-width:0.522634;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:0.999115"
308 id="rect1384-7"
309 width="26.661442"
310 height="26.829136"
311 x="99.581871"
312 y="60.009068"
313 transform="matrix(0.83751606,0.5464127,-0.83751606,0.5464127,0,0)" />
314 </g>
316 id="g1513"
317 transform="translate(22.804493,0.26765322)">
318 <text
319 xml:space="preserve"
320 style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.52777px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:sans-serif;letter-spacing:0px;stroke-width:0.264583"
321 x="38.886616"
322 y="16.846138"
323 id="text1189"><tspan
324 sodipodi:role="line"
325 id="tspan1187"
326 style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:sans-serif;stroke-width:0.264583"
327 x="38.886616"
328 y="16.846138">__z88dk_callee?</tspan></text>
329 <rect
330 style="fill:none;fill-opacity:0.540962;stroke:#000000;stroke-width:0.522634;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:0.999115"
331 id="rect1384-5"
332 width="26.661442"
333 height="26.829136"
334 x="32.630486"
335 y="-28.583555"
336 transform="matrix(0.83751606,0.5464127,-0.83751606,0.5464127,0,0)" />
337 </g>
339 id="g1538"
340 transform="translate(-89.622038,-6.3918669)">
341 <text
342 xml:space="preserve"
343 style="font-size:3.52777px;line-height:1.25;font-family:cmr10;-inkscape-font-specification:'cmr10, Normal';letter-spacing:0px;stroke-width:0.264583"
344 x="118.83727"
345 y="48.325859"
346 id="text1205"><tspan
347 sodipodi:role="line"
348 id="tspan1203"
349 style="stroke-width:0.264583"
350 x="118.83727"
351 y="48.325859">Has varargs?</tspan></text>
352 <rect
353 style="fill:none;fill-opacity:0.540962;stroke:#000000;stroke-width:0.522634;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:0.999115"
354 id="rect1384-5-3"
355 width="26.661442"
356 height="26.829136"
357 x="106.80429"
358 y="-45.917625"
359 transform="matrix(0.83751606,0.5464127,-0.83751606,0.5464127,0,0)" />
360 </g>
361 <path
362 style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow5)"
363 d="M 63.031647,24.605778 50.879465,32.865125"
364 id="path2377"
365 sodipodi:nodetypes="cc" />
366 <path
367 style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow5-5)"
368 d="m 50.47683,49.058531 10.711183,6.151533"
369 id="path2377-2"
370 sodipodi:nodetypes="cc" />
371 <path
372 style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow5-9)"
373 d="M 73.95932,79.410006 73.88216,90.446207"
374 id="path2377-27"
375 sodipodi:nodetypes="cc" />
376 <path
377 style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow5-9)"
378 d="m 26.892189,48.909808 c -4.78309,3.491471 -5.534508,76.272142 -5.534508,76.272142"
379 id="path2878"
380 sodipodi:nodetypes="cc" />
381 <path
382 style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow5-9)"
383 d="M 86.939381,23.570305 C 126.27387,46.58832 126.5895,125.00171 126.5895,125.00171"
384 id="path2880"
385 sodipodi:nodetypes="cc" />
386 <path
387 style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow5-9)"
388 d="M 85.670995,70.893979 C 103.75267,82.261093 120.52725,125.47557 120.52725,125.47557"
389 id="path2882"
390 sodipodi:nodetypes="cc" />
391 <path
392 style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow5-9)"
393 d="m 63.39106,115.16099 c -7.629009,4.88546 -25.946327,14.3682 -25.946327,14.3682"
394 id="path2884"
395 sodipodi:nodetypes="cc" />
396 <path
397 style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow5-9)"
398 d="m 86.387804,113.80332 c 8.74127,4.52 26.181286,15.13553 26.181286,15.13553"
399 id="path2886"
400 sodipodi:nodetypes="cc" />
401 </g>
402 </svg>