select.lst 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866
  1. GAS LISTING /tmp/cckQyFD0.s page 1
  2. 1 .file "select.c"
  3. 2 __SP_H__ = 0x3e
  4. 3 __SP_L__ = 0x3d
  5. 4 __SREG__ = 0x3f
  6. 5 __RAMPZ__ = 0x3b
  7. 6 __tmp_reg__ = 0
  8. 7 __zero_reg__ = 1
  9. 8 .section .text.select_scan,"ax",@progbits
  10. 9 .type select_scan, @function
  11. 10 select_scan:
  12. 11 0000 4F92 push r4
  13. 12 0002 5F92 push r5
  14. 13 0004 6F92 push r6
  15. 14 0006 7F92 push r7
  16. 15 0008 8F92 push r8
  17. 16 000a 9F92 push r9
  18. 17 000c AF92 push r10
  19. 18 000e BF92 push r11
  20. 19 0010 CF92 push r12
  21. 20 0012 DF92 push r13
  22. 21 0014 EF92 push r14
  23. 22 0016 FF92 push r15
  24. 23 0018 0F93 push r16
  25. 24 001a 1F93 push r17
  26. 25 001c CF93 push r28
  27. 26 001e DF93 push r29
  28. 27 /* prologue: function */
  29. 28 /* frame size = 0 */
  30. 29 /* stack size = 16 */
  31. 30 .L__stack_usage = 16
  32. 31 0020 2C01 movw r4,r24
  33. 32 0022 5B01 movw r10,r22
  34. 33 0024 4901 movw r8,r18
  35. 34 0026 EA01 movw r28,r20
  36. 35 0028 80E0 ldi r24,lo8(__fds)
  37. 36 002a 682E mov r6,r24
  38. 37 002c 80E0 ldi r24,hi8(__fds)
  39. 38 002e 782E mov r7,r24
  40. 39 0030 7B01 movw r14,r22
  41. 40 0032 C12C mov r12,__zero_reg__
  42. 41 0034 D12C mov r13,__zero_reg__
  43. 42 .L2:
  44. 43 0036 C701 movw r24,r14
  45. 44 0038 8A19 sub r24,r10
  46. 45 003a 9B09 sbc r25,r11
  47. 46 003c 8415 cp r24,r4
  48. 47 003e 9505 cpc r25,r5
  49. 48 0040 04F4 brge .L21
  50. 49 0042 D701 movw r26,r14
  51. 50 0044 6C91 ld r22,X
  52. 51 0046 6623 tst r22
  53. 52 0048 01F0 breq .L3
  54. 53 004a F301 movw r30,r6
  55. 54 004c 8081 ld r24,Z
  56. 55 004e 9181 ldd r25,Z+1
  57. 56 0050 DC01 movw r26,r24
  58. 57 0052 ED91 ld r30,X+
  59. GAS LISTING /tmp/cckQyFD0.s page 2
  60. 58 0054 FC91 ld r31,X
  61. 59 0056 3097 sbiw r30,0
  62. 60 0058 01F0 breq .L4
  63. 61 005a 03A0 ldd __tmp_reg__,Z+35
  64. 62 005c F4A1 ldd r31,Z+36
  65. 63 005e E02D mov r30,__tmp_reg__
  66. 64 .L19:
  67. 65 0060 3097 sbiw r30,0
  68. 66 0062 01F0 breq .L3
  69. 67 0064 70E0 ldi r23,0
  70. 68 0066 9801 movw r18,r16
  71. 69 0068 A401 movw r20,r8
  72. 70 006a 1995 eicall
  73. 71 006c 8823 tst r24
  74. 72 006e 01F0 breq .L3
  75. 73 0070 BFEF ldi r27,-1
  76. 74 0072 CB1A sub r12,r27
  77. 75 0074 DB0A sbc r13,r27
  78. 76 0076 F701 movw r30,r14
  79. 77 0078 9081 ld r25,Z
  80. 78 007a 8923 and r24,r25
  81. 79 007c 9881 ld r25,Y
  82. 80 007e 892B or r24,r25
  83. 81 0080 8883 st Y,r24
  84. 82 .L3:
  85. 83 0082 FFEF ldi r31,-1
  86. 84 0084 EF1A sub r14,r31
  87. 85 0086 FF0A sbc r15,r31
  88. 86 0088 2196 adiw r28,1
  89. 87 008a 82E0 ldi r24,2
  90. 88 008c 680E add r6,r24
  91. 89 008e 711C adc r7,__zero_reg__
  92. 90 0090 00C0 rjmp .L2
  93. 91 .L4:
  94. 92 0092 DC01 movw r26,r24
  95. 93 0094 1D96 adiw r26,13
  96. 94 0096 ED91 ld r30,X+
  97. 95 0098 FC91 ld r31,X
  98. 96 009a 1E97 sbiw r26,13+1
  99. 97 009c 00C0 rjmp .L19
  100. 98 .L21:
  101. 99 009e C601 movw r24,r12
  102. 100 /* epilogue start */
  103. 101 00a0 DF91 pop r29
  104. 102 00a2 CF91 pop r28
  105. 103 00a4 1F91 pop r17
  106. 104 00a6 0F91 pop r16
  107. 105 00a8 FF90 pop r15
  108. 106 00aa EF90 pop r14
  109. 107 00ac DF90 pop r13
  110. 108 00ae CF90 pop r12
  111. 109 00b0 BF90 pop r11
  112. 110 00b2 AF90 pop r10
  113. 111 00b4 9F90 pop r9
  114. 112 00b6 8F90 pop r8
  115. 113 00b8 7F90 pop r7
  116. 114 00ba 6F90 pop r6
  117. GAS LISTING /tmp/cckQyFD0.s page 3
  118. 115 00bc 5F90 pop r5
  119. 116 00be 4F90 pop r4
  120. 117 00c0 0895 ret
  121. 118 .size select_scan, .-select_scan
  122. 119 .section .text.NutSelectWakeup,"ax",@progbits
  123. 120 .global NutSelectWakeup
  124. 121 .type NutSelectWakeup, @function
  125. 122 NutSelectWakeup:
  126. 123 0000 0F93 push r16
  127. 124 0002 1F93 push r17
  128. 125 0004 CF93 push r28
  129. 126 0006 DF93 push r29
  130. 127 0008 1F92 push __zero_reg__
  131. 128 000a CDB7 in r28,__SP_L__
  132. 129 000c DEB7 in r29,__SP_H__
  133. 130 /* prologue: function */
  134. 131 /* frame size = 1 */
  135. 132 /* stack size = 5 */
  136. 133 .L__stack_usage = 5
  137. 134 000e 8C01 movw r16,r24
  138. 135 .L23:
  139. 136 0010 0115 cp r16,__zero_reg__
  140. 137 0012 1105 cpc r17,__zero_reg__
  141. 138 0014 01F0 breq .L29
  142. 139 0016 F801 movw r30,r16
  143. 140 0018 8481 ldd r24,Z+4
  144. 141 001a 8623 and r24,r22
  145. 142 001c 01F0 breq .L24
  146. 143 001e 8281 ldd r24,Z+2
  147. 144 0020 9381 ldd r25,Z+3
  148. 145 0022 6983 std Y+1,r22
  149. 146 0024 0E94 0000 call NutEventPostAsync
  150. 147 0028 6981 ldd r22,Y+1
  151. 148 .L24:
  152. 149 002a F801 movw r30,r16
  153. 150 002c 0081 ld r16,Z
  154. 151 002e 1181 ldd r17,Z+1
  155. 152 0030 00C0 rjmp .L23
  156. 153 .L29:
  157. 154 /* epilogue start */
  158. 155 0032 0F90 pop __tmp_reg__
  159. 156 0034 DF91 pop r29
  160. 157 0036 CF91 pop r28
  161. 158 0038 1F91 pop r17
  162. 159 003a 0F91 pop r16
  163. 160 003c 0895 ret
  164. 161 .size NutSelectWakeup, .-NutSelectWakeup
  165. 162 .section .text.NutSelectWakeupFromIrq,"ax",@progbits
  166. 163 .global NutSelectWakeupFromIrq
  167. 164 .type NutSelectWakeupFromIrq, @function
  168. 165 NutSelectWakeupFromIrq:
  169. 166 0000 CF93 push r28
  170. 167 0002 DF93 push r29
  171. 168 /* prologue: function */
  172. 169 /* frame size = 0 */
  173. 170 /* stack size = 2 */
  174. 171 .L__stack_usage = 2
  175. GAS LISTING /tmp/cckQyFD0.s page 4
  176. 172 0004 FC01 movw r30,r24
  177. 173 0006 2FEF ldi r18,lo8(-1)
  178. 174 0008 3FEF ldi r19,lo8(-1)
  179. 175 .L31:
  180. 176 000a 3097 sbiw r30,0
  181. 177 000c 01F0 breq .L41
  182. 178 000e 8481 ldd r24,Z+4
  183. 179 0010 8623 and r24,r22
  184. 180 0012 01F0 breq .L32
  185. 181 0014 C281 ldd r28,Z+2
  186. 182 0016 D381 ldd r29,Z+3
  187. 183 0018 A881 ld r26,Y
  188. 184 001a B981 ldd r27,Y+1
  189. 185 001c 1097 sbiw r26,0
  190. 186 001e 01F4 brne .L33
  191. 187 0020 3983 std Y+1,r19
  192. 188 0022 2883 st Y,r18
  193. 189 0024 00C0 rjmp .L32
  194. 190 .L33:
  195. 191 0026 AF3F cpi r26,-1
  196. 192 0028 8FEF ldi r24,-1
  197. 193 002a B807 cpc r27,r24
  198. 194 002c 01F0 breq .L32
  199. 195 002e 1496 adiw r26,4
  200. 196 0030 8D91 ld r24,X+
  201. 197 0032 9C91 ld r25,X
  202. 198 0034 1597 sbiw r26,4+1
  203. 199 0036 0196 adiw r24,1
  204. 200 0038 1596 adiw r26,4+1
  205. 201 003a 9C93 st X,r25
  206. 202 003c 8E93 st -X,r24
  207. 203 003e 1497 sbiw r26,4
  208. 204 .L32:
  209. 205 0040 0190 ld __tmp_reg__,Z+
  210. 206 0042 F081 ld r31,Z
  211. 207 0044 E02D mov r30,__tmp_reg__
  212. 208 0046 00C0 rjmp .L31
  213. 209 .L41:
  214. 210 /* epilogue start */
  215. 211 0048 DF91 pop r29
  216. 212 004a CF91 pop r28
  217. 213 004c 0895 ret
  218. 214 .size NutSelectWakeupFromIrq, .-NutSelectWakeupFromIrq
  219. 215 .section .text.NutSelectManageWq,"ax",@progbits
  220. 216 .global NutSelectManageWq
  221. 217 .type NutSelectManageWq, @function
  222. 218 NutSelectManageWq:
  223. 219 0000 EF92 push r14
  224. 220 0002 FF92 push r15
  225. 221 0004 0F93 push r16
  226. 222 0006 1F93 push r17
  227. 223 0008 CF93 push r28
  228. 224 000a DF93 push r29
  229. 225 /* prologue: function */
  230. 226 /* frame size = 0 */
  231. 227 /* stack size = 6 */
  232. 228 .L__stack_usage = 6
  233. GAS LISTING /tmp/cckQyFD0.s page 5
  234. 229 000c EC01 movw r28,r24
  235. 230 000e 8B01 movw r16,r22
  236. 231 0010 7A01 movw r14,r20
  237. 232 0012 2115 cp r18,__zero_reg__
  238. 233 0014 3105 cpc r19,__zero_reg__
  239. 234 0016 01F4 brne .+2
  240. 235 0018 00C0 rjmp .L42
  241. 236 001a 892B or r24,r25
  242. 237 001c 01F4 brne .+2
  243. 238 001e 00C0 rjmp .L42
  244. 239 0020 672B or r22,r23
  245. 240 0022 01F4 brne .+2
  246. 241 0024 00C0 rjmp .L42
  247. 242 0026 452B or r20,r21
  248. 243 0028 01F4 brne .+2
  249. 244 002a 00C0 rjmp .L42
  250. 245 002c 2130 cpi r18,1
  251. 246 002e 3105 cpc r19,__zero_reg__
  252. 247 0030 01F0 breq .L46
  253. 248 0032 2230 cpi r18,2
  254. 249 0034 3105 cpc r19,__zero_reg__
  255. 250 0036 01F0 breq .+2
  256. 251 0038 00C0 rjmp .L42
  257. 252 /* #APP */
  258. 253 ; 162 "../../nut/crt/select.c" 1
  259. 254 003a 0FB6 in __tmp_reg__, __SREG__
  260. 255 003c F894 cli
  261. 256 003e 0F92 push __tmp_reg__
  262. 257
  263. 258 ; 0 "" 2
  264. 259 /* #NOAPP */
  265. 260 0040 00C0 rjmp .L48
  266. 261 .L46:
  267. 262 0042 85E0 ldi r24,lo8(5)
  268. 263 0044 90E0 ldi r25,0
  269. 264 0046 0E94 0000 call malloc
  270. 265 004a FC01 movw r30,r24
  271. 266 004c 1383 std Z+3,r17
  272. 267 004e 0283 std Z+2,r16
  273. 268 0050 E482 std Z+4,r14
  274. 269 /* #APP */
  275. 270 ; 151 "../../nut/crt/select.c" 1
  276. 271 0052 0FB6 in __tmp_reg__, __SREG__
  277. 272 0054 F894 cli
  278. 273 0056 0F92 push __tmp_reg__
  279. 274
  280. 275 ; 0 "" 2
  281. 276 /* #NOAPP */
  282. 277 0058 8881 ld r24,Y
  283. 278 005a 9981 ldd r25,Y+1
  284. 279 005c 9183 std Z+1,r25
  285. 280 005e 8083 st Z,r24
  286. 281 0060 F983 std Y+1,r31
  287. 282 0062 E883 st Y,r30
  288. 283 /* #APP */
  289. 284 ; 154 "../../nut/crt/select.c" 1
  290. 285 0064 0F90 pop __tmp_reg__
  291. GAS LISTING /tmp/cckQyFD0.s page 6
  292. 286 0066 0FBE out __SREG__, __tmp_reg__
  293. 287
  294. 288 ; 0 "" 2
  295. 289 /* #NOAPP */
  296. 290 0068 00C0 rjmp .L42
  297. 291 .L51:
  298. 292 006a FC01 movw r30,r24
  299. 293 006c 4281 ldd r20,Z+2
  300. 294 006e 5381 ldd r21,Z+3
  301. 295 0070 2081 ld r18,Z
  302. 296 0072 3181 ldd r19,Z+1
  303. 297 0074 3983 std Y+1,r19
  304. 298 0076 2883 st Y,r18
  305. 299 0078 0417 cp r16,r20
  306. 300 007a 1507 cpc r17,r21
  307. 301 007c 01F0 breq .L50
  308. 302 .L48:
  309. 303 007e 8881 ld r24,Y
  310. 304 0080 9981 ldd r25,Y+1
  311. 305 0082 0097 sbiw r24,0
  312. 306 0084 01F4 brne .L51
  313. 307 .L50:
  314. 308 /* #APP */
  315. 309 ; 177 "../../nut/crt/select.c" 1
  316. 310 0086 0F90 pop __tmp_reg__
  317. 311 0088 0FBE out __SREG__, __tmp_reg__
  318. 312
  319. 313 ; 0 "" 2
  320. 314 /* #NOAPP */
  321. 315 008a 0097 sbiw r24,0
  322. 316 008c 01F0 breq .L42
  323. 317 /* epilogue start */
  324. 318 008e DF91 pop r29
  325. 319 0090 CF91 pop r28
  326. 320 0092 1F91 pop r17
  327. 321 0094 0F91 pop r16
  328. 322 0096 FF90 pop r15
  329. 323 0098 EF90 pop r14
  330. 324 009a 0C94 0000 jmp free
  331. 325 .L42:
  332. 326 /* epilogue start */
  333. 327 009e DF91 pop r29
  334. 328 00a0 CF91 pop r28
  335. 329 00a2 1F91 pop r17
  336. 330 00a4 0F91 pop r16
  337. 331 00a6 FF90 pop r15
  338. 332 00a8 EF90 pop r14
  339. 333 00aa 0895 ret
  340. 334 .size NutSelectManageWq, .-NutSelectManageWq
  341. 335 .section .text.select,"ax",@progbits
  342. 336 .global select
  343. 337 .type select, @function
  344. 338 select:
  345. 339 0000 2F92 push r2
  346. 340 0002 3F92 push r3
  347. 341 0004 4F92 push r4
  348. 342 0006 5F92 push r5
  349. GAS LISTING /tmp/cckQyFD0.s page 7
  350. 343 0008 6F92 push r6
  351. 344 000a 7F92 push r7
  352. 345 000c 8F92 push r8
  353. 346 000e 9F92 push r9
  354. 347 0010 AF92 push r10
  355. 348 0012 BF92 push r11
  356. 349 0014 CF92 push r12
  357. 350 0016 DF92 push r13
  358. 351 0018 EF92 push r14
  359. 352 001a FF92 push r15
  360. 353 001c 0F93 push r16
  361. 354 001e 1F93 push r17
  362. 355 0020 CF93 push r28
  363. 356 0022 DF93 push r29
  364. 357 0024 00D0 rcall .
  365. 358 0026 1F92 push __zero_reg__
  366. 359 0028 CDB7 in r28,__SP_L__
  367. 360 002a DEB7 in r29,__SP_H__
  368. 361 /* prologue: function */
  369. 362 /* frame size = 4 */
  370. 363 /* stack size = 22 */
  371. 364 .L__stack_usage = 22
  372. 365 002c 1C01 movw r2,r24
  373. 366 002e 6B01 movw r12,r22
  374. 367 0030 5A01 movw r10,r20
  375. 368 0032 4901 movw r8,r18
  376. 369 0034 F801 movw r30,r16
  377. 370 0036 0997 sbiw r24,9
  378. 371 0038 00F0 brlo .L65
  379. 372 .L68:
  380. 373 003a 86E1 ldi r24,lo8(22)
  381. 374 003c 90E0 ldi r25,0
  382. 375 003e 00C0 rjmp .L144
  383. 376 .L65:
  384. 377 0040 3097 sbiw r30,0
  385. 378 0042 01F0 breq .L92
  386. 379 0044 E080 ld r14,Z
  387. 380 0046 F180 ldd r15,Z+1
  388. 381 0048 0281 ldd r16,Z+2
  389. 382 004a 1381 ldd r17,Z+3
  390. 383 004c 67E3 ldi r22,55
  391. 384 004e E616 cp r14,r22
  392. 385 0050 69E8 ldi r22,-119
  393. 386 0052 F606 cpc r15,r22
  394. 387 0054 61E4 ldi r22,65
  395. 388 0056 0607 cpc r16,r22
  396. 389 0058 1105 cpc r17,__zero_reg__
  397. 390 005a 00F4 brsh .L68
  398. 391 005c 8481 ldd r24,Z+4
  399. 392 005e 9581 ldd r25,Z+5
  400. 393 0060 A681 ldd r26,Z+6
  401. 394 0062 B781 ldd r27,Z+7
  402. 395 0064 BC01 movw r22,r24
  403. 396 0066 CD01 movw r24,r26
  404. 397 0068 6C50 subi r22,12
  405. 398 006a 7E4F sbci r23,-2
  406. 399 006c 8F4F sbci r24,-1
  407. GAS LISTING /tmp/cckQyFD0.s page 8
  408. 400 006e 9F4F sbci r25,-1
  409. 401 0070 28EE ldi r18,lo8(-24)
  410. 402 0072 33E0 ldi r19,lo8(3)
  411. 403 0074 40E0 ldi r20,0
  412. 404 0076 50E0 ldi r21,0
  413. 405 0078 0E94 0000 call __divmodsi4
  414. 406 007c 2901 movw r4,r18
  415. 407 007e 3A01 movw r6,r20
  416. 408 0080 A8EE ldi r26,lo8(-24)
  417. 409 0082 B3E0 ldi r27,lo8(3)
  418. 410 0084 A801 movw r20,r16
  419. 411 0086 9701 movw r18,r14
  420. 412 0088 0E94 0000 call __muluhisi3
  421. 413 008c 460E add r4,r22
  422. 414 008e 571E adc r5,r23
  423. 415 0090 681E adc r6,r24
  424. 416 0092 791E adc r7,r25
  425. 417 0094 4114 cp r4,__zero_reg__
  426. 418 0096 5104 cpc r5,__zero_reg__
  427. 419 0098 6104 cpc r6,__zero_reg__
  428. 420 009a 7104 cpc r7,__zero_reg__
  429. 421 009c 01F4 brne .L67
  430. 422 009e 412C mov r4,__zero_reg__
  431. 423 00a0 512C mov r5,__zero_reg__
  432. 424 00a2 3201 movw r6,r4
  433. 425 00a4 4394 inc r4
  434. 426 00a6 00C0 rjmp .L67
  435. 427 .L92:
  436. 428 00a8 412C mov r4,__zero_reg__
  437. 429 00aa 512C mov r5,__zero_reg__
  438. 430 00ac 3201 movw r6,r4
  439. 431 .L67:
  440. 432 00ae C114 cp r12,__zero_reg__
  441. 433 00b0 D104 cpc r13,__zero_reg__
  442. 434 00b2 01F0 breq .L93
  443. 435 00b4 F601 movw r30,r12
  444. 436 00b6 8081 ld r24,Z
  445. 437 00b8 00C0 rjmp .L69
  446. 438 .L93:
  447. 439 00ba 80E0 ldi r24,0
  448. 440 .L69:
  449. 441 00bc A114 cp r10,__zero_reg__
  450. 442 00be B104 cpc r11,__zero_reg__
  451. 443 00c0 01F0 breq .L70
  452. 444 00c2 F501 movw r30,r10
  453. 445 00c4 9081 ld r25,Z
  454. 446 00c6 892B or r24,r25
  455. 447 .L70:
  456. 448 00c8 8114 cp r8,__zero_reg__
  457. 449 00ca 9104 cpc r9,__zero_reg__
  458. 450 00cc 01F0 breq .L71
  459. 451 00ce F401 movw r30,r8
  460. 452 00d0 9081 ld r25,Z
  461. 453 00d2 892B or r24,r25
  462. 454 .L71:
  463. 455 00d4 E0E0 ldi r30,lo8(__fds)
  464. 456 00d6 F0E0 ldi r31,hi8(__fds)
  465. GAS LISTING /tmp/cckQyFD0.s page 9
  466. 457 00d8 20E0 ldi r18,0
  467. 458 00da 30E0 ldi r19,0
  468. 459 .L74:
  469. 460 00dc 7901 movw r14,r18
  470. 461 00de 01E0 ldi r16,1
  471. 462 00e0 E01A sub r14,r16
  472. 463 00e2 F108 sbc r15,__zero_reg__
  473. 464 00e4 8823 tst r24
  474. 465 00e6 01F0 breq .L72
  475. 466 00e8 2216 cp r2,r18
  476. 467 00ea 3306 cpc r3,r19
  477. 468 00ec 01F0 breq .L72
  478. 469 00ee 4191 ld r20,Z+
  479. 470 00f0 5191 ld r21,Z+
  480. 471 00f2 4150 subi r20,1
  481. 472 00f4 5109 sbc r21,__zero_reg__
  482. 473 00f6 4E3F cpi r20,-2
  483. 474 00f8 5F4F sbci r21,-1
  484. 475 00fa 00F4 brsh .L145
  485. 476 00fc 8695 lsr r24
  486. 477 00fe 2F5F subi r18,-1
  487. 478 0100 3F4F sbci r19,-1
  488. 479 0102 00C0 rjmp .L74
  489. 480 .L145:
  490. 481 0104 89E0 ldi r24,lo8(9)
  491. 482 0106 90E0 ldi r25,0
  492. 483 .L144:
  493. 484 0108 9093 0000 sts errno+1,r25
  494. 485 010c 8093 0000 sts errno,r24
  495. 486 0110 8FEF ldi r24,lo8(-1)
  496. 487 0112 9FEF ldi r25,lo8(-1)
  497. 488 0114 00C0 rjmp .L66
  498. 489 .L72:
  499. 490 0116 6FEF ldi r22,-1
  500. 491 0118 E61A sub r14,r22
  501. 492 011a F60A sbc r15,r22
  502. 493 011c C701 movw r24,r14
  503. 494 011e 0E94 0000 call malloc
  504. 495 0122 1C01 movw r2,r24
  505. 496 0124 61E0 ldi r22,lo8(1)
  506. 497 0126 70E0 ldi r23,0
  507. 498 0128 C701 movw r24,r14
  508. 499 012a 0E94 0000 call calloc
  509. 500 012e 8B83 std Y+3,r24
  510. 501 0130 9C83 std Y+4,r25
  511. 502 0132 F101 movw r30,r2
  512. 503 0134 20E0 ldi r18,0
  513. 504 0136 30E0 ldi r19,0
  514. 505 .L76:
  515. 506 0138 2E15 cp r18,r14
  516. 507 013a 3F05 cpc r19,r15
  517. 508 013c 04F0 brlt .+2
  518. 509 013e 00C0 rjmp .L146
  519. 510 0140 C114 cp r12,__zero_reg__
  520. 511 0142 D104 cpc r13,__zero_reg__
  521. 512 0144 01F0 breq .L94
  522. 513 0146 D901 movw r26,r18
  523. GAS LISTING /tmp/cckQyFD0.s page 10
  524. 514 0148 83E0 ldi r24,3
  525. 515 1:
  526. 516 014a B595 asr r27
  527. 517 014c A795 ror r26
  528. 518 014e 8A95 dec r24
  529. 519 0150 01F4 brne 1b
  530. 520 0152 AC0D add r26,r12
  531. 521 0154 BD1D adc r27,r13
  532. 522 0156 8C91 ld r24,X
  533. 523 0158 90E0 ldi r25,0
  534. 524 015a A901 movw r20,r18
  535. 525 015c 4770 andi r20,7
  536. 526 015e 5527 clr r21
  537. 527 0160 00C0 rjmp 2f
  538. 528 1:
  539. 529 0162 9595 asr r25
  540. 530 0164 8795 ror r24
  541. 531 2:
  542. 532 0166 4A95 dec r20
  543. 533 0168 02F4 brpl 1b
  544. 534 016a 8170 andi r24,lo8(1)
  545. 535 016c 00C0 rjmp .L77
  546. 536 .L94:
  547. 537 016e 80E0 ldi r24,0
  548. 538 .L77:
  549. 539 0170 A114 cp r10,__zero_reg__
  550. 540 0172 B104 cpc r11,__zero_reg__
  551. 541 0174 01F0 breq .L78
  552. 542 0176 D901 movw r26,r18
  553. 543 0178 03E0 ldi r16,3
  554. 544 1:
  555. 545 017a B595 asr r27
  556. 546 017c A795 ror r26
  557. 547 017e 0A95 dec r16
  558. 548 0180 01F4 brne 1b
  559. 549 0182 AA0D add r26,r10
  560. 550 0184 BB1D adc r27,r11
  561. 551 0186 4C91 ld r20,X
  562. 552 0188 50E0 ldi r21,0
  563. 553 018a B901 movw r22,r18
  564. 554 018c 6770 andi r22,7
  565. 555 018e 7727 clr r23
  566. 556 0190 00C0 rjmp 2f
  567. 557 1:
  568. 558 0192 5595 asr r21
  569. 559 0194 4795 ror r20
  570. 560 2:
  571. 561 0196 6A95 dec r22
  572. 562 0198 02F4 brpl 1b
  573. 563 019a 40FD sbrc r20,0
  574. 564 019c 8260 ori r24,lo8(2)
  575. 565 .L78:
  576. 566 019e 8114 cp r8,__zero_reg__
  577. 567 01a0 9104 cpc r9,__zero_reg__
  578. 568 01a2 01F0 breq .L79
  579. 569 01a4 D901 movw r26,r18
  580. 570 01a6 13E0 ldi r17,3
  581. GAS LISTING /tmp/cckQyFD0.s page 11
  582. 571 1:
  583. 572 01a8 B595 asr r27
  584. 573 01aa A795 ror r26
  585. 574 01ac 1A95 dec r17
  586. 575 01ae 01F4 brne 1b
  587. 576 01b0 A80D add r26,r8
  588. 577 01b2 B91D adc r27,r9
  589. 578 01b4 4C91 ld r20,X
  590. 579 01b6 50E0 ldi r21,0
  591. 580 01b8 B901 movw r22,r18
  592. 581 01ba 6770 andi r22,7
  593. 582 01bc 7727 clr r23
  594. 583 01be 00C0 rjmp 2f
  595. 584 1:
  596. 585 01c0 5595 asr r21
  597. 586 01c2 4795 ror r20
  598. 587 2:
  599. 588 01c4 6A95 dec r22
  600. 589 01c6 02F4 brpl 1b
  601. 590 01c8 40FD sbrc r20,0
  602. 591 01ca 8460 ori r24,lo8(4)
  603. 592 .L79:
  604. 593 01cc 8193 st Z+,r24
  605. 594 01ce 2F5F subi r18,-1
  606. 595 01d0 3F4F sbci r19,-1
  607. 596 01d2 00C0 rjmp .L76
  608. 597 .L146:
  609. 598 01d4 1A82 std Y+2,__zero_reg__
  610. 599 01d6 1982 std Y+1,__zero_reg__
  611. 600 01d8 01E0 ldi r16,lo8(1)
  612. 601 01da 10E0 ldi r17,0
  613. 602 01dc 9E01 movw r18,r28
  614. 603 01de 2F5F subi r18,-1
  615. 604 01e0 3F4F sbci r19,-1
  616. 605 01e2 4B81 ldd r20,Y+3
  617. 606 01e4 5C81 ldd r21,Y+4
  618. 607 01e6 B101 movw r22,r2
  619. 608 01e8 C701 movw r24,r14
  620. 609 01ea 0E94 0000 call select_scan
  621. 610 01ee 892B or r24,r25
  622. 611 01f0 01F4 brne .L82
  623. 612 01f2 00E0 ldi r16,0
  624. 613 01f4 10E0 ldi r17,0
  625. 614 01f6 20E0 ldi r18,0
  626. 615 01f8 30E0 ldi r19,0
  627. 616 01fa 4B81 ldd r20,Y+3
  628. 617 01fc 5C81 ldd r21,Y+4
  629. 618 01fe B101 movw r22,r2
  630. 619 0200 C701 movw r24,r14
  631. 620 0202 0E94 0000 call select_scan
  632. 621 0206 892B or r24,r25
  633. 622 0208 01F4 brne .L82
  634. 623 020a B301 movw r22,r6
  635. 624 020c A201 movw r20,r4
  636. 625 020e CE01 movw r24,r28
  637. 626 0210 0196 adiw r24,1
  638. 627 0212 0E94 0000 call NutEventWait
  639. GAS LISTING /tmp/cckQyFD0.s page 12
  640. 628 .L82:
  641. 629 0216 02E0 ldi r16,lo8(2)
  642. 630 0218 10E0 ldi r17,0
  643. 631 021a 9E01 movw r18,r28
  644. 632 021c 2F5F subi r18,-1
  645. 633 021e 3F4F sbci r19,-1
  646. 634 0220 4B81 ldd r20,Y+3
  647. 635 0222 5C81 ldd r21,Y+4
  648. 636 0224 B101 movw r22,r2
  649. 637 0226 C701 movw r24,r14
  650. 638 0228 0E94 0000 call select_scan
  651. 639 022c 782E mov r7,r24
  652. 640 022e 692E mov r6,r25
  653. 641 0230 C114 cp r12,__zero_reg__
  654. 642 0232 D104 cpc r13,__zero_reg__
  655. 643 0234 01F0 breq .L84
  656. 644 0236 F601 movw r30,r12
  657. 645 0238 1082 st Z,__zero_reg__
  658. 646 .L84:
  659. 647 023a A114 cp r10,__zero_reg__
  660. 648 023c B104 cpc r11,__zero_reg__
  661. 649 023e 01F0 breq .L85
  662. 650 0240 F501 movw r30,r10
  663. 651 0242 1082 st Z,__zero_reg__
  664. 652 .L85:
  665. 653 0244 8114 cp r8,__zero_reg__
  666. 654 0246 9104 cpc r9,__zero_reg__
  667. 655 0248 01F0 breq .L86
  668. 656 024a F401 movw r30,r8
  669. 657 024c 1082 st Z,__zero_reg__
  670. 658 .L86:
  671. 659 024e EB81 ldd r30,Y+3
  672. 660 0250 FC81 ldd r31,Y+4
  673. 661 0252 80E0 ldi r24,0
  674. 662 0254 90E0 ldi r25,0
  675. 663 0256 21E0 ldi r18,lo8(1)
  676. 664 0258 30E0 ldi r19,0
  677. 665 .L87:
  678. 666 025a 8E15 cp r24,r14
  679. 667 025c 9F05 cpc r25,r15
  680. 668 025e 04F0 brlt .+2
  681. 669 0260 00C0 rjmp .L147
  682. 670 0262 6191 ld r22,Z+
  683. 671 0264 C114 cp r12,__zero_reg__
  684. 672 0266 D104 cpc r13,__zero_reg__
  685. 673 0268 01F0 breq .L88
  686. 674 026a 60FF sbrs r22,0
  687. 675 026c 00C0 rjmp .L88
  688. 676 026e DC01 movw r26,r24
  689. 677 0270 73E0 ldi r23,3
  690. 678 1:
  691. 679 0272 B595 asr r27
  692. 680 0274 A795 ror r26
  693. 681 0276 7A95 dec r23
  694. 682 0278 01F4 brne 1b
  695. 683 027a AC0D add r26,r12
  696. 684 027c BD1D adc r27,r13
  697. GAS LISTING /tmp/cckQyFD0.s page 13
  698. 685 027e AC01 movw r20,r24
  699. 686 0280 4770 andi r20,7
  700. 687 0282 5527 clr r21
  701. 688 0284 8901 movw r16,r18
  702. 689 0286 00C0 rjmp 2f
  703. 690 1:
  704. 691 0288 000F lsl r16
  705. 692 028a 111F rol r17
  706. 693 2:
  707. 694 028c 4A95 dec r20
  708. 695 028e 02F4 brpl 1b
  709. 696 0290 A801 movw r20,r16
  710. 697 0292 5C91 ld r21,X
  711. 698 0294 452B or r20,r21
  712. 699 0296 4C93 st X,r20
  713. 700 .L88:
  714. 701 0298 A114 cp r10,__zero_reg__
  715. 702 029a B104 cpc r11,__zero_reg__
  716. 703 029c 01F0 breq .L89
  717. 704 029e 61FF sbrs r22,1
  718. 705 02a0 00C0 rjmp .L89
  719. 706 02a2 DC01 movw r26,r24
  720. 707 02a4 53E0 ldi r21,3
  721. 708 1:
  722. 709 02a6 B595 asr r27
  723. 710 02a8 A795 ror r26
  724. 711 02aa 5A95 dec r21
  725. 712 02ac 01F4 brne 1b
  726. 713 02ae AA0D add r26,r10
  727. 714 02b0 BB1D adc r27,r11
  728. 715 02b2 AC01 movw r20,r24
  729. 716 02b4 4770 andi r20,7
  730. 717 02b6 5527 clr r21
  731. 718 02b8 8901 movw r16,r18
  732. 719 02ba 00C0 rjmp 2f
  733. 720 1:
  734. 721 02bc 000F lsl r16
  735. 722 02be 111F rol r17
  736. 723 2:
  737. 724 02c0 4A95 dec r20
  738. 725 02c2 02F4 brpl 1b
  739. 726 02c4 A801 movw r20,r16
  740. 727 02c6 5C91 ld r21,X
  741. 728 02c8 452B or r20,r21
  742. 729 02ca 4C93 st X,r20
  743. 730 .L89:
  744. 731 02cc 8114 cp r8,__zero_reg__
  745. 732 02ce 9104 cpc r9,__zero_reg__
  746. 733 02d0 01F0 breq .L90
  747. 734 02d2 62FF sbrs r22,2
  748. 735 02d4 00C0 rjmp .L90
  749. 736 02d6 DC01 movw r26,r24
  750. 737 02d8 43E0 ldi r20,3
  751. 738 1:
  752. 739 02da B595 asr r27
  753. 740 02dc A795 ror r26
  754. 741 02de 4A95 dec r20
  755. GAS LISTING /tmp/cckQyFD0.s page 14
  756. 742 02e0 01F4 brne 1b
  757. 743 02e2 A80D add r26,r8
  758. 744 02e4 B91D adc r27,r9
  759. 745 02e6 AC01 movw r20,r24
  760. 746 02e8 4770 andi r20,7
  761. 747 02ea 5527 clr r21
  762. 748 02ec B901 movw r22,r18
  763. 749 02ee 00C0 rjmp 2f
  764. 750 1:
  765. 751 02f0 660F lsl r22
  766. 752 02f2 771F rol r23
  767. 753 2:
  768. 754 02f4 4A95 dec r20
  769. 755 02f6 02F4 brpl 1b
  770. 756 02f8 AB01 movw r20,r22
  771. 757 02fa 5C91 ld r21,X
  772. 758 02fc 452B or r20,r21
  773. 759 02fe 4C93 st X,r20
  774. 760 .L90:
  775. 761 0300 0196 adiw r24,1
  776. 762 0302 00C0 rjmp .L87
  777. 763 .L147:
  778. 764 0304 C101 movw r24,r2
  779. 765 0306 0E94 0000 call free
  780. 766 030a 8B81 ldd r24,Y+3
  781. 767 030c 9C81 ldd r25,Y+4
  782. 768 030e 0E94 0000 call free
  783. 769 0312 872D mov r24,r7
  784. 770 0314 962D mov r25,r6
  785. 771 .L66:
  786. 772 /* epilogue start */
  787. 773 0316 0F90 pop __tmp_reg__
  788. 774 0318 0F90 pop __tmp_reg__
  789. 775 031a 0F90 pop __tmp_reg__
  790. 776 031c 0F90 pop __tmp_reg__
  791. 777 031e DF91 pop r29
  792. 778 0320 CF91 pop r28
  793. 779 0322 1F91 pop r17
  794. 780 0324 0F91 pop r16
  795. 781 0326 FF90 pop r15
  796. 782 0328 EF90 pop r14
  797. 783 032a DF90 pop r13
  798. 784 032c CF90 pop r12
  799. 785 032e BF90 pop r11
  800. 786 0330 AF90 pop r10
  801. 787 0332 9F90 pop r9
  802. 788 0334 8F90 pop r8
  803. 789 0336 7F90 pop r7
  804. 790 0338 6F90 pop r6
  805. 791 033a 5F90 pop r5
  806. 792 033c 4F90 pop r4
  807. 793 033e 3F90 pop r3
  808. 794 0340 2F90 pop r2
  809. 795 0342 0895 ret
  810. 796 .size select, .-select
  811. 797 .ident "GCC: (GNU) 5.3.0"
  812. GAS LISTING /tmp/cckQyFD0.s page 15
  813. DEFINED SYMBOLS
  814. *ABS*:0000000000000000 select.c
  815. /tmp/cckQyFD0.s:2 *ABS*:000000000000003e __SP_H__
  816. /tmp/cckQyFD0.s:3 *ABS*:000000000000003d __SP_L__
  817. /tmp/cckQyFD0.s:4 *ABS*:000000000000003f __SREG__
  818. /tmp/cckQyFD0.s:5 *ABS*:000000000000003b __RAMPZ__
  819. /tmp/cckQyFD0.s:6 *ABS*:0000000000000000 __tmp_reg__
  820. /tmp/cckQyFD0.s:7 *ABS*:0000000000000001 __zero_reg__
  821. /tmp/cckQyFD0.s:10 .text.select_scan:0000000000000000 select_scan
  822. /tmp/cckQyFD0.s:122 .text.NutSelectWakeup:0000000000000000 NutSelectWakeup
  823. /tmp/cckQyFD0.s:165 .text.NutSelectWakeupFromIrq:0000000000000000 NutSelectWakeupFromIrq
  824. /tmp/cckQyFD0.s:218 .text.NutSelectManageWq:0000000000000000 NutSelectManageWq
  825. /tmp/cckQyFD0.s:338 .text.select:0000000000000000 select
  826. UNDEFINED SYMBOLS
  827. __fds
  828. NutEventPostAsync
  829. malloc
  830. free
  831. __divmodsi4
  832. __muluhisi3
  833. errno
  834. calloc
  835. NutEventWait