Subversion Repositories FlightCtrl

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
2248 - 1
   1               		.file	"mymath.c"
2
   2               		.arch atmega644
3
   3               	__SREG__ = 0x3f
4
   4               	__SP_H__ = 0x3e
5
   5               	__SP_L__ = 0x3d
6
   6               	__tmp_reg__ = 0
7
   7               	__zero_reg__ = 1
8
   8               		.global __do_copy_data
9
   9               		.global __do_clear_bss
10
  10               	.global	pgm_atanlookup
11
  11               		.section	.progmem.data,"a",@progbits
12
  14               	pgm_atanlookup:
13
  15 0000 00        		.byte	0
14
  16 0001 01        		.byte	1
15
  17 0002 02        		.byte	2
16
  18 0003 03        		.byte	3
17
  19 0004 04        		.byte	4
18
  20 0005 04        		.byte	4
19
  21 0006 05        		.byte	5
20
  22 0007 06        		.byte	6
21
  23 0008 07        		.byte	7
22
  24 0009 08        		.byte	8
23
  25 000a 09        		.byte	9
24
  26 000b 0A        		.byte	10
25
  27 000c 0B        		.byte	11
26
  28 000d 0B        		.byte	11
27
  29 000e 0C        		.byte	12
28
  30 000f 0D        		.byte	13
29
  31 0010 0E        		.byte	14
30
  32 0011 0F        		.byte	15
31
  33 0012 10        		.byte	16
32
  34 0013 11        		.byte	17
33
  35 0014 11        		.byte	17
34
  36 0015 12        		.byte	18
35
  37 0016 13        		.byte	19
36
  38 0017 14        		.byte	20
37
  39 0018 15        		.byte	21
38
  40 0019 15        		.byte	21
39
  41 001a 16        		.byte	22
40
  42 001b 17        		.byte	23
41
  43 001c 18        		.byte	24
42
  44 001d 18        		.byte	24
43
  45 001e 19        		.byte	25
44
  46 001f 1A        		.byte	26
45
  47 0020 1B        		.byte	27
46
  48 0021 1B        		.byte	27
47
  49 0022 1C        		.byte	28
48
  50 0023 1D        		.byte	29
49
  51 0024 1D        		.byte	29
50
  52 0025 1E        		.byte	30
51
  53 0026 1F        		.byte	31
52
  54 0027 1F        		.byte	31
53
  55 0028 20        		.byte	32
54
  56 0029 21        		.byte	33
55
  57 002a 21        		.byte	33
56
  58 002b 22        		.byte	34
57
  59 002c 23        		.byte	35
58
  60 002d 23        		.byte	35
59
  61 002e 24        		.byte	36
60
  62 002f 24        		.byte	36
61
  63 0030 25        		.byte	37
62
  64 0031 25        		.byte	37
63
  65 0032 26        		.byte	38
64
  66 0033 27        		.byte	39
65
  67 0034 27        		.byte	39
66
  68 0035 28        		.byte	40
67
  69 0036 28        		.byte	40
68
  70 0037 29        		.byte	41
69
  71 0038 29        		.byte	41
70
  72 0039 2A        		.byte	42
71
  73 003a 2A        		.byte	42
72
  74 003b 2B        		.byte	43
73
  75 003c 2B        		.byte	43
74
  76 003d 2C        		.byte	44
75
  77 003e 2C        		.byte	44
76
  78 003f 2D        		.byte	45
77
  79 0040 2D        		.byte	45
78
  80 0041 2D        		.byte	45
79
  81 0042 2E        		.byte	46
80
  82 0043 2E        		.byte	46
81
  83 0044 2F        		.byte	47
82
  84 0045 2F        		.byte	47
83
  85 0046 30        		.byte	48
84
  86 0047 30        		.byte	48
85
  87 0048 30        		.byte	48
86
  88 0049 31        		.byte	49
87
  89 004a 31        		.byte	49
88
  90 004b 32        		.byte	50
89
  91 004c 32        		.byte	50
90
  92 004d 32        		.byte	50
91
  93 004e 33        		.byte	51
92
  94 004f 33        		.byte	51
93
  95 0050 33        		.byte	51
94
  96 0051 34        		.byte	52
95
  97 0052 34        		.byte	52
96
  98 0053 34        		.byte	52
97
  99 0054 35        		.byte	53
98
 100 0055 35        		.byte	53
99
 101 0056 35        		.byte	53
100
 102 0057 36        		.byte	54
101
 103 0058 36        		.byte	54
102
 104 0059 36        		.byte	54
103
 105 005a 37        		.byte	55
104
 106 005b 37        		.byte	55
105
 107 005c 37        		.byte	55
106
 108 005d 37        		.byte	55
107
 109 005e 38        		.byte	56
108
 110 005f 38        		.byte	56
109
 111 0060 38        		.byte	56
110
 112 0061 39        		.byte	57
111
 113 0062 39        		.byte	57
112
 114 0063 39        		.byte	57
113
 115 0064 39        		.byte	57
114
 116 0065 3A        		.byte	58
115
 117 0066 3A        		.byte	58
116
 118 0067 3A        		.byte	58
117
 119 0068 3A        		.byte	58
118
 120 0069 3B        		.byte	59
119
 121 006a 3B        		.byte	59
120
 122 006b 3B        		.byte	59
121
 123 006c 3B        		.byte	59
122
 124 006d 3C        		.byte	60
123
 125 006e 3C        		.byte	60
124
 126 006f 3C        		.byte	60
125
 127 0070 3C        		.byte	60
126
 128 0071 3C        		.byte	60
127
 129 0072 3D        		.byte	61
128
 130 0073 3D        		.byte	61
129
 131 0074 3D        		.byte	61
130
 132 0075 3D        		.byte	61
131
 133 0076 3E        		.byte	62
132
 134 0077 3E        		.byte	62
133
 135 0078 3E        		.byte	62
134
 136 0079 3E        		.byte	62
135
 137 007a 3E        		.byte	62
136
 138 007b 3F        		.byte	63
137
 139 007c 3F        		.byte	63
138
 140 007d 3F        		.byte	63
139
 141 007e 3F        		.byte	63
140
 142 007f 3F        		.byte	63
141
 143 0080 3F        		.byte	63
142
 144 0081 40        		.byte	64
143
 145 0082 40        		.byte	64
144
 146 0083 40        		.byte	64
145
 147 0084 40        		.byte	64
146
 148 0085 40        		.byte	64
147
 149 0086 40        		.byte	64
148
 150 0087 41        		.byte	65
149
 151 0088 41        		.byte	65
150
 152 0089 41        		.byte	65
151
 153 008a 41        		.byte	65
152
 154 008b 41        		.byte	65
153
 155 008c 41        		.byte	65
154
 156 008d 42        		.byte	66
155
 157 008e 42        		.byte	66
156
 158 008f 42        		.byte	66
157
 159 0090 42        		.byte	66
158
 160 0091 42        		.byte	66
159
 161 0092 42        		.byte	66
160
 162 0093 42        		.byte	66
161
 163 0094 43        		.byte	67
162
 164 0095 43        		.byte	67
163
 165 0096 43        		.byte	67
164
 166 0097 43        		.byte	67
165
 167 0098 43        		.byte	67
166
 168 0099 43        		.byte	67
167
 169 009a 43        		.byte	67
168
 170 009b 44        		.byte	68
169
 171 009c 44        		.byte	68
170
 172 009d 44        		.byte	68
171
 173 009e 44        		.byte	68
172
 174 009f 44        		.byte	68
173
 175 00a0 44        		.byte	68
174
 176 00a1 44        		.byte	68
175
 177 00a2 44        		.byte	68
176
 178 00a3 45        		.byte	69
177
 179 00a4 45        		.byte	69
178
 180 00a5 45        		.byte	69
179
 181 00a6 45        		.byte	69
180
 182 00a7 45        		.byte	69
181
 183 00a8 45        		.byte	69
182
 184 00a9 45        		.byte	69
183
 185 00aa 45        		.byte	69
184
 186 00ab 45        		.byte	69
185
 187 00ac 46        		.byte	70
186
 188 00ad 46        		.byte	70
187
 189 00ae 46        		.byte	70
188
 190 00af 46        		.byte	70
189
 191 00b0 46        		.byte	70
190
 192 00b1 46        		.byte	70
191
 193 00b2 46        		.byte	70
192
 194 00b3 46        		.byte	70
193
 195 00b4 46        		.byte	70
194
 196 00b5 47        		.byte	71
195
 197 00b6 47        		.byte	71
196
 198 00b7 47        		.byte	71
197
 199 00b8 47        		.byte	71
198
 200 00b9 47        		.byte	71
199
 201 00ba 47        		.byte	71
200
 202 00bb 47        		.byte	71
201
 203 00bc 47        		.byte	71
202
 204 00bd 47        		.byte	71
203
 205 00be 47        		.byte	71
204
 206 00bf 47        		.byte	71
205
 207 00c0 48        		.byte	72
206
 208 00c1 48        		.byte	72
207
 209 00c2 48        		.byte	72
208
 210 00c3 48        		.byte	72
209
 211 00c4 48        		.byte	72
210
 212 00c5 48        		.byte	72
211
 213 00c6 48        		.byte	72
212
 214 00c7 48        		.byte	72
213
 215 00c8 48        		.byte	72
214
 216 00c9 48        		.byte	72
215
 217 00ca 48        		.byte	72
216
 218 00cb 49        		.byte	73
217
 219 00cc 49        		.byte	73
218
 220 00cd 49        		.byte	73
219
 221 00ce 49        		.byte	73
220
 222 00cf 49        		.byte	73
221
 223 00d0 49        		.byte	73
222
 224 00d1 49        		.byte	73
223
 225 00d2 49        		.byte	73
224
 226 00d3 49        		.byte	73
225
 227 00d4 49        		.byte	73
226
 228 00d5 49        		.byte	73
227
 229 00d6 49        		.byte	73
228
 230 00d7 49        		.byte	73
229
 231 00d8 49        		.byte	73
230
 232 00d9 4A        		.byte	74
231
 233 00da 4A        		.byte	74
232
 234 00db 4A        		.byte	74
233
 235 00dc 4A        		.byte	74
234
 236 00dd 4A        		.byte	74
235
 237 00de 4A        		.byte	74
236
 238 00df 4A        		.byte	74
237
 239 00e0 4A        		.byte	74
238
 240 00e1 4A        		.byte	74
239
 241 00e2 4A        		.byte	74
240
 242 00e3 4A        		.byte	74
241
 243 00e4 4A        		.byte	74
242
 244 00e5 4A        		.byte	74
243
 245 00e6 4A        		.byte	74
244
 246 00e7 4B        		.byte	75
245
 247 00e8 4B        		.byte	75
246
 248 00e9 4B        		.byte	75
247
 249 00ea 4B        		.byte	75
248
 250 00eb 4B        		.byte	75
249
 251 00ec 4B        		.byte	75
250
 252 00ed 4B        		.byte	75
251
 253 00ee 4B        		.byte	75
252
 254 00ef 4B        		.byte	75
253
 255 00f0 4B        		.byte	75
254
 256 00f1 4B        		.byte	75
255
 257 00f2 4B        		.byte	75
256
 258 00f3 4B        		.byte	75
257
 259 00f4 4B        		.byte	75
258
 260 00f5 4B        		.byte	75
259
 261 00f6 4B        		.byte	75
260
 262 00f7 4B        		.byte	75
261
 263 00f8 4C        		.byte	76
262
 264 00f9 4C        		.byte	76
263
 265 00fa 4C        		.byte	76
264
 266 00fb 4C        		.byte	76
265
 267 00fc 4C        		.byte	76
266
 268 00fd 4C        		.byte	76
267
 269 00fe 4C        		.byte	76
268
 270 00ff 4C        		.byte	76
269
 271 0100 4C        		.byte	76
270
 272 0101 4C        		.byte	76
271
 273 0102 4C        		.byte	76
272
 274 0103 4C        		.byte	76
273
 275 0104 4C        		.byte	76
274
 276 0105 4C        		.byte	76
275
 277 0106 4C        		.byte	76
276
 278 0107 4C        		.byte	76
277
 279 0108 4C        		.byte	76
278
 280 0109 4C        		.byte	76
279
 281 010a 4C        		.byte	76
280
 282 010b 4D        		.byte	77
281
 283 010c 4D        		.byte	77
282
 284 010d 4D        		.byte	77
283
 285 010e 4D        		.byte	77
284
 286 010f 4D        		.byte	77
285
 287 0110 4D        		.byte	77
286
 288 0111 4D        		.byte	77
287
 289 0112 4D        		.byte	77
288
 290 0113 4D        		.byte	77
289
 291 0114 4D        		.byte	77
290
 292 0115 4D        		.byte	77
291
 293 0116 4D        		.byte	77
292
 294 0117 4D        		.byte	77
293
 295 0118 4D        		.byte	77
294
 296 0119 4D        		.byte	77
295
 297 011a 4D        		.byte	77
296
 298 011b 4D        		.byte	77
297
 299 011c 4D        		.byte	77
298
 300 011d 4D        		.byte	77
299
 301 011e 4D        		.byte	77
300
 302 011f 4D        		.byte	77
301
 303 0120 4D        		.byte	77
302
 304 0121 4E        		.byte	78
303
 305 0122 4E        		.byte	78
304
 306 0123 4E        		.byte	78
305
 307 0124 4E        		.byte	78
306
 308 0125 4E        		.byte	78
307
 309 0126 4E        		.byte	78
308
 310 0127 4E        		.byte	78
309
 311 0128 4E        		.byte	78
310
 312 0129 4E        		.byte	78
311
 313 012a 4E        		.byte	78
312
 314 012b 4E        		.byte	78
313
 315 012c 4E        		.byte	78
314
 316 012d 4E        		.byte	78
315
 317 012e 4E        		.byte	78
316
 318 012f 4E        		.byte	78
317
 319 0130 4E        		.byte	78
318
 320 0131 4E        		.byte	78
319
 321 0132 4E        		.byte	78
320
 322 0133 4E        		.byte	78
321
 323 0134 4E        		.byte	78
322
 324 0135 4E        		.byte	78
323
 325 0136 4E        		.byte	78
324
 326 0137 4E        		.byte	78
325
 327 0138 4E        		.byte	78
326
 328 0139 4E        		.byte	78
327
 329 013a 4E        		.byte	78
328
 330 013b 4F        		.byte	79
329
 331 013c 4F        		.byte	79
330
 332 013d 4F        		.byte	79
331
 333 013e 4F        		.byte	79
332
 334 013f 4F        		.byte	79
333
 335 0140 4F        		.byte	79
334
 336 0141 4F        		.byte	79
335
 337 0142 4F        		.byte	79
336
 338 0143 4F        		.byte	79
337
 339 0144 4F        		.byte	79
338
 340 0145 4F        		.byte	79
339
 341 0146 4F        		.byte	79
340
 342 0147 4F        		.byte	79
341
 343 0148 4F        		.byte	79
342
 344 0149 4F        		.byte	79
343
 345 014a 4F        		.byte	79
344
 346 014b 4F        		.byte	79
345
 347 014c 4F        		.byte	79
346
 348 014d 4F        		.byte	79
347
 349 014e 4F        		.byte	79
348
 350 014f 4F        		.byte	79
349
 351 0150 4F        		.byte	79
350
 352 0151 4F        		.byte	79
351
 353 0152 4F        		.byte	79
352
 354 0153 4F        		.byte	79
353
 355 0154 4F        		.byte	79
354
 356 0155 4F        		.byte	79
355
 357 0156 4F        		.byte	79
356
 358 0157 4F        		.byte	79
357
 359 0158 4F        		.byte	79
358
 360 0159 4F        		.byte	79
359
 361               	.global	pgm_sinlookup
360
 364               	pgm_sinlookup:
361
 365 015a 0000      		.word	0
362
 366 015c 8F00      		.word	143
363
 367 015e 1E01      		.word	286
364
 368 0160 AD01      		.word	429
365
 369 0162 3B02      		.word	571
366
 370 0164 CA02      		.word	714
367
 371 0166 5803      		.word	856
368
 372 0168 E603      		.word	998
369
 373 016a 7404      		.word	1140
370
 374 016c 0205      		.word	1282
371
 375 016e 8F05      		.word	1423
372
 376 0170 1B06      		.word	1563
373
 377 0172 A706      		.word	1703
374
 378 0174 3307      		.word	1843
375
 379 0176 BE07      		.word	1982
376
 380 0178 4808      		.word	2120
377
 381 017a D208      		.word	2258
378
 382 017c 5B09      		.word	2395
379
 383 017e E309      		.word	2531
380
 384 0180 6B0A      		.word	2667
381
 385 0182 F20A      		.word	2802
382
 386 0184 780B      		.word	2936
383
 387 0186 FD0B      		.word	3069
384
 388 0188 810C      		.word	3201
385
 389 018a 040D      		.word	3332
386
 390 018c 860D      		.word	3462
387
 391 018e 070E      		.word	3591
388
 392 0190 870E      		.word	3719
389
 393 0192 060F      		.word	3846
390
 394 0194 840F      		.word	3972
391
 395 0196 0010      		.word	4096
392
 396 0198 7B10      		.word	4219
393
 397 019a F510      		.word	4341
394
 398 019c 6E11      		.word	4462
395
 399 019e E511      		.word	4581
396
 400 01a0 5B12      		.word	4699
397
 401 01a2 CF12      		.word	4815
398
 402 01a4 4213      		.word	4930
399
 403 01a6 B313      		.word	5043
400
 404 01a8 2314      		.word	5155
401
 405 01aa 9214      		.word	5266
402
 406 01ac FE14      		.word	5374
403
 407 01ae 6A15      		.word	5482
404
 408 01b0 D315      		.word	5587
405
 409 01b2 3B16      		.word	5691
406
 410 01b4 A116      		.word	5793
407
 411 01b6 0517      		.word	5893
408
 412 01b8 6717      		.word	5991
409
 413 01ba C817      		.word	6088
410
 414 01bc 2718      		.word	6183
411
 415 01be 8318      		.word	6275
412
 416 01c0 DE18      		.word	6366
413
 417 01c2 3719      		.word	6455
414
 418 01c4 8E19      		.word	6542
415
 419 01c6 E319      		.word	6627
416
 420 01c8 361A      		.word	6710
417
 421 01ca 871A      		.word	6791
418
 422 01cc D61A      		.word	6870
419
 423 01ce 231B      		.word	6947
420
 424 01d0 6E1B      		.word	7022
421
 425 01d2 B61B      		.word	7094
422
 426 01d4 FD1B      		.word	7165
423
 427 01d6 411C      		.word	7233
424
 428 01d8 831C      		.word	7299
425
 429 01da C31C      		.word	7363
426
 430 01dc 001D      		.word	7424
427
 431 01de 3C1D      		.word	7484
428
 432 01e0 751D      		.word	7541
429
 433 01e2 AB1D      		.word	7595
430
 434 01e4 E01D      		.word	7648
431
 435 01e6 121E      		.word	7698
432
 436 01e8 421E      		.word	7746
433
 437 01ea 6F1E      		.word	7791
434
 438 01ec 9A1E      		.word	7834
435
 439 01ee C31E      		.word	7875
436
 440 01f0 E91E      		.word	7913
437
 441 01f2 0D1F      		.word	7949
438
 442 01f4 2E1F      		.word	7982
439
 443 01f6 4D1F      		.word	8013
440
 444 01f8 691F      		.word	8041
441
 445 01fa 841F      		.word	8068
442
 446 01fc 9B1F      		.word	8091
443
 447 01fe B01F      		.word	8112
444
 448 0200 C31F      		.word	8131
445
 449 0202 D31F      		.word	8147
446
 450 0204 E11F      		.word	8161
447
 451 0206 EC1F      		.word	8172
448
 452 0208 F51F      		.word	8181
449
 453 020a FB1F      		.word	8187
450
 454 020c FF1F      		.word	8191
451
 455 020e 0020      		.word	8192
452
 456               		.text
453
 457               	.global	c_sin_8192
454
 459               	c_sin_8192:
455
 460               	/* prologue: frame size=0 */
456
 461 0000 CF93      		push r28
457
 462               	/* prologue end (size=1) */
458
 463 0002 FC01      		movw r30,r24
459
 464 0004 97FD      		sbrc r25,7
460
 465 0006 00C0      		rjmp .L14
461
 466 0008 C1E0      		ldi r28,lo8(1)
462
 467               	.L4:
463
 468 000a 28E6      		ldi r18,lo8(360)
464
 469 000c 31E0      		ldi r19,hi8(360)
465
 470 000e CF01      		movw r24,r30
466
 471 0010 B901      		movw r22,r18
467
 472 0012 0E94 0000 		call __divmodhi4
468
 473 0016 FC01      		movw r30,r24
469
 474 0018 8B35      		cpi r24,91
470
 475 001a 9105      		cpc r25,__zero_reg__
471
 476 001c 04F0      		brlt .L12
472
 477 001e 8B55      		subi r24,lo8(-(-91))
473
 478 0020 9040      		sbci r25,hi8(-(-91))
474
 479 0022 8A35      		cpi r24,90
475
 480 0024 9105      		cpc r25,__zero_reg__
476
 481 0026 00F4      		brsh .L7
477
 482 0028 84EB      		ldi r24,lo8(180)
478
 483 002a 90E0      		ldi r25,hi8(180)
479
 484 002c 8E1B      		sub r24,r30
480
 485 002e 9F0B      		sbc r25,r31
481
 486 0030 FC01      		movw r30,r24
482
 487               	.L12:
483
 488 0032 41E0      		ldi r20,lo8(1)
484
 489 0034 00C0      		rjmp .L6
485
 490               	.L7:
486
 491 0036 CF01      		movw r24,r30
487
 492 0038 855B      		subi r24,lo8(-(-181))
488
 493 003a 9040      		sbci r25,hi8(-(-181))
489
 494 003c 8A35      		cpi r24,90
490
 495 003e 9105      		cpc r25,__zero_reg__
491
 496 0040 00F4      		brsh .L9
492
 497 0042 E45B      		subi r30,lo8(-(-180))
493
 498 0044 F040      		sbci r31,hi8(-(-180))
494
 499 0046 4FEF      		ldi r20,lo8(-1)
495
 500 0048 00C0      		rjmp .L6
496
 501               	.L14:
497
 502 004a CFEF      		ldi r28,lo8(-1)
498
 503 004c F095      		com r31
499
 504 004e E195      		neg r30
500
 505 0050 FF4F      		sbci r31,lo8(-1)
501
 506 0052 00C0      		rjmp .L4
502
 507               	.L9:
503
 508 0054 2E1B      		sub r18,r30
504
 509 0056 3F0B      		sbc r19,r31
505
 510 0058 F901      		movw r30,r18
506
 511 005a 4FEF      		ldi r20,lo8(-1)
507
 512               	.L6:
508
 513 005c EE0F      		add r30,r30
509
 514 005e FF1F      		adc r31,r31
510
 515 0060 E050      		subi r30,lo8(-(pgm_sinlookup))
511
 516 0062 F040      		sbci r31,hi8(-(pgm_sinlookup))
512
 517               	/* #APP */
513
 518 0064 2591      		lpm r18, Z+
514
 519 0066 3491      		lpm r19, Z
515
 520
516
 521               	/* #NOAPP */
517
 522 0068 8C2F      		mov r24,r28
518
 523 006a 9927      		clr r25
519
 524 006c 87FD      		sbrc r24,7
520
 525 006e 9095      		com r25
521
 526 0070 829F      		mul r24,r18
522
 527 0072 B001      		movw r22,r0
523
 528 0074 839F      		mul r24,r19
524
 529 0076 700D      		add r23,r0
525
 530 0078 929F      		mul r25,r18
526
 531 007a 700D      		add r23,r0
527
 532 007c 1124      		clr r1
528
 533 007e 842F      		mov r24,r20
529
 534 0080 9927      		clr r25
530
 535 0082 87FD      		sbrc r24,7
531
 536 0084 9095      		com r25
532
 537 0086 689F      		mul r22,r24
533
 538 0088 A001      		movw r20,r0
534
 539 008a 699F      		mul r22,r25
535
 540 008c 500D      		add r21,r0
536
 541 008e 789F      		mul r23,r24
537
 542 0090 500D      		add r21,r0
538
 543 0092 1124      		clr r1
539
 544 0094 CA01      		movw r24,r20
540
 545               	/* epilogue: frame size=0 */
541
 546 0096 CF91      		pop r28
542
 547 0098 0895      		ret
543
 548               	/* epilogue end (size=2) */
544
 549               	/* function c_sin_8192 size 81 (78) */
545
 551               	.global	c_cos_8192
546
 553               	c_cos_8192:
547
 554               	/* prologue: frame size=0 */
548
 555               	/* prologue end (size=0) */
549
 556 009a 2AE5      		ldi r18,lo8(90)
550
 557 009c 30E0      		ldi r19,hi8(90)
551
 558 009e 281B      		sub r18,r24
552
 559 00a0 390B      		sbc r19,r25
553
 560 00a2 C901      		movw r24,r18
554
 561 00a4 0E94 0000 		call c_sin_8192
555
 562               	/* epilogue: frame size=0 */
556
 563 00a8 0895      		ret
557
 564               	/* epilogue end (size=1) */
558
 565               	/* function c_cos_8192 size 8 (7) */
559
 567               	.global	c_atan2
560
 569               	c_atan2:
561
 570               	/* prologue: frame size=0 */
562
 571 00aa 1F93      		push r17
563
 572 00ac CF93      		push r28
564
 573 00ae DF93      		push r29
565
 574               	/* prologue end (size=3) */
566
 575 00b0 EB01      		movw r28,r22
567
 576 00b2 6115      		cp r22,__zero_reg__
568
 577 00b4 7105      		cpc r23,__zero_reg__
569
 578 00b6 01F4      		brne .L17
570
 579 00b8 0097      		sbiw r24,0
571
 580 00ba 01F4      		brne .+2
572
 581 00bc 00C0      		rjmp .L16
573
 582               	.L17:
574
 583 00be 97FD      		sbrc r25,7
575
 584 00c0 00C0      		rjmp .L48
576
 585 00c2 11E0      		ldi r17,lo8(1)
577
 586               	.L19:
578
 587 00c4 2097      		sbiw r28,0
579
 588 00c6 01F4      		brne .L20
580
 589 00c8 8AE5      		ldi r24,lo8(90)
581
 590 00ca 1802      		muls r17,r24
582
 591 00cc B001      		movw r22,r0
583
 592 00ce 1124      		clr r1
584
 593 00d0 00C0      		rjmp .L16
585
 594               	.L20:
586
 595 00d2 AA27      		clr r26
587
 596 00d4 97FD      		sbrc r25,7
588
 597 00d6 A095      		com r26
589
 598 00d8 BA2F      		mov r27,r26
590
 599 00da 26E0      		ldi r18,6
591
 600 00dc 880F      	1:	lsl r24
592
 601 00de 991F      		rol r25
593
 602 00e0 AA1F      		rol r26
594
 603 00e2 BB1F      		rol r27
595
 604 00e4 2A95      		dec r18
596
 605 00e6 01F4      		brne 1b
597
 606 00e8 9E01      		movw r18,r28
598
 607 00ea 4427      		clr r20
599
 608 00ec 37FD      		sbrc r19,7
600
 609 00ee 4095      		com r20
601
 610 00f0 542F      		mov r21,r20
602
 611 00f2 BC01      		movw r22,r24
603
 612 00f4 CD01      		movw r24,r26
604
 613 00f6 0E94 0000 		call __divmodsi4
605
 614 00fa F901      		movw r30,r18
606
 615 00fc 37FD      		sbrc r19,7
607
 616 00fe 00C0      		rjmp .L49
608
 617               	.L21:
609
 618 0100 81E0      		ldi r24,hi8(346)
610
 619 0102 EA35      		cpi r30,lo8(346)
611
 620 0104 F807      		cpc r31,r24
612
 621 0106 04F0      		brlt .L50
613
 622 0108 8CE1      		ldi r24,hi8(7335)
614
 623 010a E73A      		cpi r30,lo8(7335)
615
 624 010c F807      		cpc r31,r24
616
 625 010e 04F0      		brlt .L24
617
 626 0110 2AE5      		ldi r18,lo8(90)
618
 627 0112 30E0      		ldi r19,hi8(90)
619
 628               	.L23:
620
 629 0114 1C16      		cp __zero_reg__,r28
621
 630 0116 1D06      		cpc __zero_reg__,r29
622
 631 0118 04F4      		brge .L44
623
 632 011a 812F      		mov r24,r17
624
 633 011c 9927      		clr r25
625
 634 011e 87FD      		sbrc r24,7
626
 635 0120 9095      		com r25
627
 636 0122 829F      		mul r24,r18
628
 637 0124 B001      		movw r22,r0
629
 638 0126 839F      		mul r24,r19
630
 639 0128 700D      		add r23,r0
631
 640 012a 929F      		mul r25,r18
632
 641 012c 700D      		add r23,r0
633
 642 012e 1124      		clr r1
634
 643 0130 00C0      		rjmp .L16
635
 644               	.L50:
636
 645 0132 E050      		subi r30,lo8(-(pgm_atanlookup))
637
 646 0134 F040      		sbci r31,hi8(-(pgm_atanlookup))
638
 647               	/* #APP */
639
 648 0136 8491      		lpm r24, Z
640
 649
641
 650               	/* #NOAPP */
642
 651 0138 282F      		mov r18,r24
643
 652 013a 3327      		clr r19
644
 653 013c 00C0      		rjmp .L23
645
 654               	.L48:
646
 655 013e 1FEF      		ldi r17,lo8(-1)
647
 656 0140 00C0      		rjmp .L19
648
 657               	.L24:
649
 658 0142 89E0      		ldi r24,hi8(2445)
650
 659 0144 ED38      		cpi r30,lo8(2445)
651
 660 0146 F807      		cpc r31,r24
652
 661 0148 04F4      		brge .L51
653
 662 014a 85E0      		ldi r24,hi8(1466)
654
 663 014c EA3B      		cpi r30,lo8(1466)
655
 664 014e F807      		cpc r31,r24
656
 665 0150 04F0      		brlt .L28
657
 666 0152 28E5      		ldi r18,lo8(88)
658
 667 0154 30E0      		ldi r19,hi8(88)
659
 668 0156 00C0      		rjmp .L23
660
 669               	.L49:
661
 670 0158 F095      		com r31
662
 671 015a E195      		neg r30
663
 672 015c FF4F      		sbci r31,lo8(-1)
664
 673 015e 00C0      		rjmp .L21
665
 674               	.L44:
666
 675 0160 D7FD      		sbrc r29,7
667
 676 0162 00C0      		rjmp .L52
668
 677               	.L46:
669
 678 0164 B901      		movw r22,r18
670
 679 0166 645B      		subi r22,lo8(-(-180))
671
 680 0168 7040      		sbci r23,hi8(-(-180))
672
 681 016a 00C0      		rjmp .L16
673
 682               	.L51:
674
 683 016c 29E5      		ldi r18,lo8(89)
675
 684 016e 30E0      		ldi r19,hi8(89)
676
 685 0170 00C0      		rjmp .L23
677
 686               	.L28:
678
 687 0172 84E0      		ldi r24,hi8(1047)
679
 688 0174 E731      		cpi r30,lo8(1047)
680
 689 0176 F807      		cpc r31,r24
681
 690 0178 04F0      		brlt .L30
682
 691 017a 27E5      		ldi r18,lo8(87)
683
 692 017c 30E0      		ldi r19,hi8(87)
684
 693 017e 00C0      		rjmp .L23
685
 694               	.L52:
686
 695 0180 1116      		cp __zero_reg__,r17
687
 696 0182 04F4      		brge .L46
688
 697 0184 64EB      		ldi r22,lo8(180)
689
 698 0186 70E0      		ldi r23,hi8(180)
690
 699 0188 621B      		sub r22,r18
691
 700 018a 730B      		sbc r23,r19
692
 701 018c 00C0      		rjmp .L16
693
 702               	.L30:
694
 703 018e 83E0      		ldi r24,hi8(814)
695
 704 0190 EE32      		cpi r30,lo8(814)
696
 705 0192 F807      		cpc r31,r24
697
 706 0194 04F0      		brlt .L32
698
 707 0196 26E5      		ldi r18,lo8(86)
699
 708 0198 30E0      		ldi r19,hi8(86)
700
 709 019a 00C0      		rjmp .L23
701
 710               	.L32:
702
 711 019c 82E0      		ldi r24,hi8(665)
703
 712 019e E939      		cpi r30,lo8(665)
704
 713 01a0 F807      		cpc r31,r24
705
 714 01a2 04F0      		brlt .L34
706
 715 01a4 25E5      		ldi r18,lo8(85)
707
 716 01a6 30E0      		ldi r19,hi8(85)
708
 717 01a8 00C0      		rjmp .L23
709
 718               	.L34:
710
 719 01aa 82E0      		ldi r24,hi8(562)
711
 720 01ac E233      		cpi r30,lo8(562)
712
 721 01ae F807      		cpc r31,r24
713
 722 01b0 04F0      		brlt .L36
714
 723 01b2 24E5      		ldi r18,lo8(84)
715
 724 01b4 30E0      		ldi r19,hi8(84)
716
 725 01b6 00C0      		rjmp .L23
717
 726               	.L36:
718
 727 01b8 81E0      		ldi r24,hi8(487)
719
 728 01ba E73E      		cpi r30,lo8(487)
720
 729 01bc F807      		cpc r31,r24
721
 730 01be 04F0      		brlt .L38
722
 731 01c0 23E5      		ldi r18,lo8(83)
723
 732 01c2 30E0      		ldi r19,hi8(83)
724
 733 01c4 00C0      		rjmp .L23
725
 734               	.L38:
726
 735 01c6 81E0      		ldi r24,hi8(429)
727
 736 01c8 ED3A      		cpi r30,lo8(429)
728
 737 01ca F807      		cpc r31,r24
729
 738 01cc 04F0      		brlt .L40
730
 739 01ce 22E5      		ldi r18,lo8(82)
731
 740 01d0 30E0      		ldi r19,hi8(82)
732
 741 01d2 00C0      		rjmp .L23
733
 742               	.L40:
734
 743 01d4 EF57      		subi r30,lo8(383)
735
 744 01d6 F140      		sbci r31,hi8(383)
736
 745 01d8 04F0      		brlt .L42
737
 746 01da 21E5      		ldi r18,lo8(81)
738
 747 01dc 30E0      		ldi r19,hi8(81)
739
 748 01de 00C0      		rjmp .L23
740
 749               	.L42:
741
 750 01e0 20E5      		ldi r18,lo8(80)
742
 751 01e2 30E0      		ldi r19,hi8(80)
743
 752 01e4 00C0      		rjmp .L23
744
 753               	.L16:
745
 754 01e6 CB01      		movw r24,r22
746
 755               	/* epilogue: frame size=0 */
747
 756 01e8 DF91      		pop r29
748
 757 01ea CF91      		pop r28
749
 758 01ec 1F91      		pop r17
750
 759 01ee 0895      		ret
751
 760               	/* epilogue end (size=4) */
752
 761               	/* function c_atan2 size 167 (160) */
753
 763               	.global	c_sqrt
754
 765               	c_sqrt:
755
 766               	/* prologue: frame size=0 */
756
 767 01f0 EF92      		push r14
757
 768 01f2 FF92      		push r15
758
 769 01f4 0F93      		push r16
759
 770 01f6 1F93      		push r17
760
 771 01f8 CF93      		push r28
761
 772 01fa DF93      		push r29
762
 773               	/* prologue end (size=6) */
763
 774 01fc 7B01      		movw r14,r22
764
 775 01fe 8C01      		movw r16,r24
765
 776 0200 20E0      		ldi r18,lo8(0)
766
 777 0202 30E0      		ldi r19,hi8(0)
767
 778 0204 40E0      		ldi r20,hlo8(0)
768
 779 0206 50E0      		ldi r21,hhi8(0)
769
 780 0208 FA01      		movw r30,r20
770
 781 020a E901      		movw r28,r18
771
 782 020c 6FE0      		ldi r22,lo8(15)
772
 783 020e 00C0      		rjmp .L59
773
 784               	.L63:
774
 785 0210 C21B      		sub r28,r18
775
 786 0212 D30B      		sbc r29,r19
776
 787 0214 E40B      		sbc r30,r20
777
 788 0216 F50B      		sbc r31,r21
778
 789 0218 2F5F      		subi r18,lo8(-(1))
779
 790 021a 3F4F      		sbci r19,hi8(-(1))
780
 791 021c 4F4F      		sbci r20,hlo8(-(1))
781
 792 021e 5F4F      		sbci r21,hhi8(-(1))
782
 793 0220 6150      		subi r22,lo8(-(-1))
783
 794 0222 67FD      		sbrc r22,7
784
 795 0224 00C0      		rjmp .L62
785
 796               	.L59:
786
 797 0226 220F      		lsl r18
787
 798 0228 331F      		rol r19
788
 799 022a 441F      		rol r20
789
 800 022c 551F      		rol r21
790
 801 022e CC0F      		lsl r28
791
 802 0230 DD1F      		rol r29
792
 803 0232 EE1F      		rol r30
793
 804 0234 FF1F      		rol r31
794
 805 0236 CC0F      		lsl r28
795
 806 0238 DD1F      		rol r29
796
 807 023a EE1F      		rol r30
797
 808 023c FF1F      		rol r31
798
 809 023e D801      		movw r26,r16
799
 810 0240 C701      		movw r24,r14
800
 811 0242 7EE1      		ldi r23,30
801
 812 0244 B695      	1:	lsr r27
802
 813 0246 A795      		ror r26
803
 814 0248 9795      		ror r25
804
 815 024a 8795      		ror r24
805
 816 024c 7A95      		dec r23
806
 817 024e 01F4      		brne 1b
807
 818 0250 C80F      		add r28,r24
808
 819 0252 D91F      		adc r29,r25
809
 820 0254 EA1F      		adc r30,r26
810
 821 0256 FB1F      		adc r31,r27
811
 822 0258 EE0C      		lsl r14
812
 823 025a FF1C      		rol r15
813
 824 025c 001F      		rol r16
814
 825 025e 111F      		rol r17
815
 826 0260 EE0C      		lsl r14
816
 827 0262 FF1C      		rol r15
817
 828 0264 001F      		rol r16
818
 829 0266 111F      		rol r17
819
 830 0268 2F5F      		subi r18,lo8(-(1))
820
 831 026a 3F4F      		sbci r19,hi8(-(1))
821
 832 026c 4F4F      		sbci r20,hlo8(-(1))
822
 833 026e 5F4F      		sbci r21,hhi8(-(1))
823
 834 0270 C217      		cp r28,r18
824
 835 0272 D307      		cpc r29,r19
825
 836 0274 E407      		cpc r30,r20
826
 837 0276 F507      		cpc r31,r21
827
 838 0278 00F4      		brsh .L63
828
 839 027a 2150      		subi r18,lo8(-(-1))
829
 840 027c 3040      		sbci r19,hi8(-(-1))
830
 841 027e 4040      		sbci r20,hlo8(-(-1))
831
 842 0280 5040      		sbci r21,hhi8(-(-1))
832
 843 0282 6150      		subi r22,lo8(-(-1))
833
 844 0284 67FF      		sbrs r22,7
834
 845 0286 00C0      		rjmp .L59
835
 846               	.L62:
836
 847 0288 5695      		lsr r21
837
 848 028a 4795      		ror r20
838
 849 028c 3795      		ror r19
839
 850 028e 2795      		ror r18
840
 851 0290 CA01      		movw r24,r20
841
 852 0292 B901      		movw r22,r18
842
 853               	/* epilogue: frame size=0 */
843
 854 0294 E6E0      		ldi r30,6
844
 855 0296 CDB7      		in r28,__SP_L__
845
 856 0298 DEB7      		in r29,__SP_H__
846
 857 029a 0C94 0000 		jmp __epilogue_restores__+24
847
 858               	/* epilogue end (size=5) */
848
 859               	/* function c_sqrt size 87 (76) */
849
 861               	/* File "mymath.c": code  343 = 0x0157 ( 321), prologues  10, epilogues  12 */
850
DEFINED SYMBOLS
851
                            *ABS*:00000000 mymath.c
852
C:\Users\Bernd\AppData\Local\Temp/ccZ3fpJf.s:3      *ABS*:0000003f __SREG__
853
C:\Users\Bernd\AppData\Local\Temp/ccZ3fpJf.s:4      *ABS*:0000003e __SP_H__
854
C:\Users\Bernd\AppData\Local\Temp/ccZ3fpJf.s:5      *ABS*:0000003d __SP_L__
855
C:\Users\Bernd\AppData\Local\Temp/ccZ3fpJf.s:6      *ABS*:00000000 __tmp_reg__
856
C:\Users\Bernd\AppData\Local\Temp/ccZ3fpJf.s:7      *ABS*:00000001 __zero_reg__
857
C:\Users\Bernd\AppData\Local\Temp/ccZ3fpJf.s:14     .progmem.data:00000000 pgm_atanlookup
858
C:\Users\Bernd\AppData\Local\Temp/ccZ3fpJf.s:364    .progmem.data:0000015a pgm_sinlookup
859
C:\Users\Bernd\AppData\Local\Temp/ccZ3fpJf.s:459    .text:00000000 c_sin_8192
860
C:\Users\Bernd\AppData\Local\Temp/ccZ3fpJf.s:553    .text:0000009a c_cos_8192
861
C:\Users\Bernd\AppData\Local\Temp/ccZ3fpJf.s:569    .text:000000aa c_atan2
862
C:\Users\Bernd\AppData\Local\Temp/ccZ3fpJf.s:765    .text:000001f0 c_sqrt
863
 
864
UNDEFINED SYMBOLS
865
__do_copy_data
866
__do_clear_bss
867
__divmodhi4
868
__divmodsi4
869
__epilogue_restores__