udpsock.lst 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680
  1. GAS LISTING /tmp/cckAKpPV.s page 1
  2. 1 .file "udpsock.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.NutUdpCreateSocket,"ax",@progbits
  10. 9 .global NutUdpCreateSocket
  11. 10 .type NutUdpCreateSocket, @function
  12. 11 NutUdpCreateSocket:
  13. 12 0000 CF93 push r28
  14. 13 0002 DF93 push r29
  15. 14 /* prologue: function */
  16. 15 /* frame size = 0 */
  17. 16 /* stack size = 2 */
  18. 17 .L__stack_usage = 2
  19. 18 0004 EC01 movw r28,r24
  20. 19 0006 8091 0000 lds r24,registered
  21. 20 000a 8111 cpse r24,__zero_reg__
  22. 21 000c 00C0 rjmp .L2
  23. 22 000e 60E0 ldi r22,lo8(gs(NutUdpInput))
  24. 23 0010 70E0 ldi r23,hi8(gs(NutUdpInput))
  25. 24 0012 81E1 ldi r24,lo8(17)
  26. 25 0014 0E94 0000 call NutRegisterIpHandler
  27. 26 0018 892B or r24,r25
  28. 27 001a 01F0 breq .+2
  29. 28 001c 00C0 rjmp .L11
  30. 29 001e 81E0 ldi r24,lo8(1)
  31. 30 0020 8093 0000 sts registered,r24
  32. 31 .L2:
  33. 32 0024 2097 sbiw r28,0
  34. 33 0026 01F4 brne .L4
  35. 34 .L8:
  36. 35 0028 0E94 0000 call NutGetMillis
  37. 36 002c 2091 0000 lds r18,last_local_port
  38. 37 0030 3091 0000 lds r19,last_local_port+1
  39. 38 0034 2115 cp r18,__zero_reg__
  40. 39 0036 3105 cpc r19,__zero_reg__
  41. 40 0038 01F0 breq .L5
  42. 41 003a 6E70 andi r22,14
  43. 42 003c 7727 clr r23
  44. 43 003e 6160 ori r22,1
  45. 44 0040 620F add r22,r18
  46. 45 0042 731F adc r23,r19
  47. 46 .L5:
  48. 47 0044 7093 0000 sts last_local_port+1,r23
  49. 48 0048 6093 0000 sts last_local_port,r22
  50. 49 004c C091 0000 lds r28,last_local_port
  51. 50 0050 D091 0000 lds r29,last_local_port+1
  52. 51 0054 D06C ori r29,192
  53. 52 0056 D093 0000 sts last_local_port+1,r29
  54. 53 005a C093 0000 sts last_local_port,r28
  55. 54 005e CE01 movw r24,r28
  56. 55 /* #APP */
  57. 56 ; 309 "../../nut/include/sys/types.h" 1
  58. 57 0060 082E mov __tmp_reg__, r24
  59. GAS LISTING /tmp/cckAKpPV.s page 2
  60. 58 0062 892F mov r24, r25
  61. 59 0064 902D mov r25, __tmp_reg__
  62. 60
  63. 61 ; 0 "" 2
  64. 62 /* #NOAPP */
  65. 63 0066 E091 0000 lds r30,udpSocketList
  66. 64 006a F091 0000 lds r31,udpSocketList+1
  67. 65 .L7:
  68. 66 006e 3097 sbiw r30,0
  69. 67 0070 01F0 breq .L4
  70. 68 0072 2281 ldd r18,Z+2
  71. 69 0074 3381 ldd r19,Z+3
  72. 70 0076 2817 cp r18,r24
  73. 71 0078 3907 cpc r19,r25
  74. 72 007a 01F0 breq .L8
  75. 73 007c 0190 ld __tmp_reg__,Z+
  76. 74 007e F081 ld r31,Z
  77. 75 0080 E02D mov r30,__tmp_reg__
  78. 76 0082 00C0 rjmp .L7
  79. 77 .L4:
  80. 78 0084 64E1 ldi r22,lo8(20)
  81. 79 0086 70E0 ldi r23,0
  82. 80 0088 81E0 ldi r24,lo8(1)
  83. 81 008a 90E0 ldi r25,0
  84. 82 008c 0E94 0000 call calloc
  85. 83 0090 FC01 movw r30,r24
  86. 84 0092 892B or r24,r25
  87. 85 0094 01F0 breq .L11
  88. 86 /* #APP */
  89. 87 ; 309 "../../nut/include/sys/types.h" 1
  90. 88 0096 0C2E mov __tmp_reg__, r28
  91. 89 0098 CD2F mov r28, r29
  92. 90 009a D02D mov r29, __tmp_reg__
  93. 91
  94. 92 ; 0 "" 2
  95. 93 /* #NOAPP */
  96. 94 009c D383 std Z+3,r29
  97. 95 009e C283 std Z+2,r28
  98. 96 00a0 8091 0000 lds r24,udpSocketList
  99. 97 00a4 9091 0000 lds r25,udpSocketList+1
  100. 98 00a8 9183 std Z+1,r25
  101. 99 00aa 8083 st Z,r24
  102. 100 00ac F093 0000 sts udpSocketList+1,r31
  103. 101 00b0 E093 0000 sts udpSocketList,r30
  104. 102 00b4 CF01 movw r24,r30
  105. 103 00b6 00C0 rjmp .L3
  106. 104 .L11:
  107. 105 00b8 80E0 ldi r24,0
  108. 106 00ba 90E0 ldi r25,0
  109. 107 .L3:
  110. 108 /* epilogue start */
  111. 109 00bc DF91 pop r29
  112. 110 00be CF91 pop r28
  113. 111 00c0 0895 ret
  114. 112 .size NutUdpCreateSocket, .-NutUdpCreateSocket
  115. 113 .section .text.NutUdpSendTo,"ax",@progbits
  116. 114 .global NutUdpSendTo
  117. GAS LISTING /tmp/cckAKpPV.s page 3
  118. 115 .type NutUdpSendTo, @function
  119. 116 NutUdpSendTo:
  120. 117 0000 6F92 push r6
  121. 118 0002 7F92 push r7
  122. 119 0004 8F92 push r8
  123. 120 0006 9F92 push r9
  124. 121 0008 AF92 push r10
  125. 122 000a BF92 push r11
  126. 123 000c CF92 push r12
  127. 124 000e DF92 push r13
  128. 125 0010 EF92 push r14
  129. 126 0012 FF92 push r15
  130. 127 0014 0F93 push r16
  131. 128 0016 1F93 push r17
  132. 129 0018 CF93 push r28
  133. 130 001a DF93 push r29
  134. 131 /* prologue: function */
  135. 132 /* frame size = 0 */
  136. 133 /* stack size = 14 */
  137. 134 .L__stack_usage = 14
  138. 135 001c 6C01 movw r12,r24
  139. 136 001e 4A01 movw r8,r20
  140. 137 0020 5B01 movw r10,r22
  141. 138 0022 3901 movw r6,r18
  142. 139 0024 FC01 movw r30,r24
  143. 140 0026 8485 ldd r24,Z+12
  144. 141 0028 9585 ldd r25,Z+13
  145. 142 002a 892B or r24,r25
  146. 143 002c 01F4 brne .L17
  147. 144 002e A701 movw r20,r14
  148. 145 0030 60E8 ldi r22,lo8(-128)
  149. 146 0032 80E0 ldi r24,0
  150. 147 0034 90E0 ldi r25,0
  151. 148 0036 0E94 0000 call NutNetBufAlloc
  152. 149 003a EC01 movw r28,r24
  153. 150 003c 892B or r24,r25
  154. 151 003e 01F4 brne .L16
  155. 152 0040 8CE0 ldi r24,lo8(12)
  156. 153 0042 90E0 ldi r25,0
  157. 154 0044 F601 movw r30,r12
  158. 155 0046 9587 std Z+13,r25
  159. 156 0048 8487 std Z+12,r24
  160. 157 004a 00C0 rjmp .L17
  161. 158 .L16:
  162. 159 004c A701 movw r20,r14
  163. 160 004e B801 movw r22,r16
  164. 161 0050 8F85 ldd r24,Y+15
  165. 162 0052 9889 ldd r25,Y+16
  166. 163 0054 0E94 0000 call memcpy
  167. 164 0058 8E01 movw r16,r28
  168. 165 005a 9301 movw r18,r6
  169. 166 005c B501 movw r22,r10
  170. 167 005e A401 movw r20,r8
  171. 168 0060 C601 movw r24,r12
  172. 169 0062 0E94 0000 call NutUdpOutput
  173. 170 0066 0097 sbiw r24,0
  174. 171 0068 01F4 brne .L15
  175. GAS LISTING /tmp/cckAKpPV.s page 4
  176. 172 006a CE01 movw r24,r28
  177. 173 006c 0E94 0000 call NutNetBufFree
  178. 174 0070 80E0 ldi r24,0
  179. 175 0072 90E0 ldi r25,0
  180. 176 0074 00C0 rjmp .L15
  181. 177 .L17:
  182. 178 0076 8FEF ldi r24,lo8(-1)
  183. 179 0078 9FEF ldi r25,lo8(-1)
  184. 180 .L15:
  185. 181 /* epilogue start */
  186. 182 007a DF91 pop r29
  187. 183 007c CF91 pop r28
  188. 184 007e 1F91 pop r17
  189. 185 0080 0F91 pop r16
  190. 186 0082 FF90 pop r15
  191. 187 0084 EF90 pop r14
  192. 188 0086 DF90 pop r13
  193. 189 0088 CF90 pop r12
  194. 190 008a BF90 pop r11
  195. 191 008c AF90 pop r10
  196. 192 008e 9F90 pop r9
  197. 193 0090 8F90 pop r8
  198. 194 0092 7F90 pop r7
  199. 195 0094 6F90 pop r6
  200. 196 0096 0895 ret
  201. 197 .size NutUdpSendTo, .-NutUdpSendTo
  202. 198 .section .text.NutUdpReceiveFrom,"ax",@progbits
  203. 199 .global NutUdpReceiveFrom
  204. 200 .type NutUdpReceiveFrom, @function
  205. 201 NutUdpReceiveFrom:
  206. 202 0000 4F92 push r4
  207. 203 0002 5F92 push r5
  208. 204 0004 6F92 push r6
  209. 205 0006 7F92 push r7
  210. 206 0008 8F92 push r8
  211. 207 000a 9F92 push r9
  212. 208 000c AF92 push r10
  213. 209 000e BF92 push r11
  214. 210 0010 CF92 push r12
  215. 211 0012 DF92 push r13
  216. 212 0014 EF92 push r14
  217. 213 0016 FF92 push r15
  218. 214 0018 0F93 push r16
  219. 215 001a 1F93 push r17
  220. 216 001c CF93 push r28
  221. 217 001e DF93 push r29
  222. 218 /* prologue: function */
  223. 219 /* frame size = 0 */
  224. 220 /* stack size = 16 */
  225. 221 .L__stack_usage = 16
  226. 222 0020 EC01 movw r28,r24
  227. 223 0022 3B01 movw r6,r22
  228. 224 0024 4A01 movw r8,r20
  229. 225 0026 5901 movw r10,r18
  230. 226 0028 2801 movw r4,r16
  231. 227 002a B701 movw r22,r14
  232. 228 002c A601 movw r20,r12
  233. GAS LISTING /tmp/cckAKpPV.s page 5
  234. 229 002e 8C85 ldd r24,Y+12
  235. 230 0030 9D85 ldd r25,Y+13
  236. 231 0032 892B or r24,r25
  237. 232 0034 01F0 breq .L20
  238. 233 .L23:
  239. 234 0036 8FEF ldi r24,lo8(-1)
  240. 235 0038 9FEF ldi r25,lo8(-1)
  241. 236 003a 00C0 rjmp .L21
  242. 237 .L20:
  243. 238 003c 8C81 ldd r24,Y+4
  244. 239 003e 9D81 ldd r25,Y+5
  245. 240 0040 892B or r24,r25
  246. 241 0042 01F4 brne .L22
  247. 242 0044 CE01 movw r24,r28
  248. 243 0046 0696 adiw r24,6
  249. 244 0048 0E94 0000 call NutEventWait
  250. 245 .L22:
  251. 246 004c 8C85 ldd r24,Y+12
  252. 247 004e 9D85 ldd r25,Y+13
  253. 248 0050 892B or r24,r25
  254. 249 0052 01F4 brne .L23
  255. 250 0054 EC80 ldd r14,Y+4
  256. 251 0056 FD80 ldd r15,Y+5
  257. 252 0058 E114 cp r14,__zero_reg__
  258. 253 005a F104 cpc r15,__zero_reg__
  259. 254 005c 01F4 brne .+2
  260. 255 005e 00C0 rjmp .L25
  261. 256 0060 D701 movw r26,r14
  262. 257 0062 8D91 ld r24,X+
  263. 258 0064 9C91 ld r25,X
  264. 259 0066 1197 sbiw r26,1
  265. 260 0068 9D83 std Y+5,r25
  266. 261 006a 8C83 std Y+4,r24
  267. 262 006c 1796 adiw r26,7
  268. 263 006e ED91 ld r30,X+
  269. 264 0070 FC91 ld r31,X
  270. 265 0072 1897 sbiw r26,7+1
  271. 266 0074 8485 ldd r24,Z+12
  272. 267 0076 9585 ldd r25,Z+13
  273. 268 0078 A685 ldd r26,Z+14
  274. 269 007a B785 ldd r27,Z+15
  275. 270 007c F301 movw r30,r6
  276. 271 007e 8083 st Z,r24
  277. 272 0080 9183 std Z+1,r25
  278. 273 0082 A283 std Z+2,r26
  279. 274 0084 B383 std Z+3,r27
  280. 275 0086 D701 movw r26,r14
  281. 276 0088 1B96 adiw r26,11
  282. 277 008a ED91 ld r30,X+
  283. 278 008c FC91 ld r31,X
  284. 279 008e 1C97 sbiw r26,11+1
  285. 280 0090 8081 ld r24,Z
  286. 281 0092 9181 ldd r25,Z+1
  287. 282 /* #APP */
  288. 283 ; 309 "../../nut/include/sys/types.h" 1
  289. 284 0094 082E mov __tmp_reg__, r24
  290. 285 0096 892F mov r24, r25
  291. GAS LISTING /tmp/cckAKpPV.s page 6
  292. 286 0098 902D mov r25, __tmp_reg__
  293. 287
  294. 288 ; 0 "" 2
  295. 289 /* #NOAPP */
  296. 290 009a F401 movw r30,r8
  297. 291 009c 9183 std Z+1,r25
  298. 292 009e 8083 st Z,r24
  299. 293 00a0 5196 adiw r26,17
  300. 294 00a2 8D91 ld r24,X+
  301. 295 00a4 9C91 ld r25,X
  302. 296 00a6 5297 sbiw r26,17+1
  303. 297 00a8 982E mov r9,r24
  304. 298 00aa 192F mov r17,r25
  305. 299 00ac 4816 cp r4,r24
  306. 300 00ae 5906 cpc r5,r25
  307. 301 00b0 04F4 brge .L24
  308. 302 00b2 942C mov r9,r4
  309. 303 00b4 152D mov r17,r5
  310. 304 .L24:
  311. 305 00b6 2885 ldd r18,Y+8
  312. 306 00b8 3985 ldd r19,Y+9
  313. 307 00ba F901 movw r30,r18
  314. 308 00bc E81B sub r30,r24
  315. 309 00be F90B sbc r31,r25
  316. 310 00c0 F987 std Y+9,r31
  317. 311 00c2 E887 std Y+8,r30
  318. 312 00c4 D701 movw r26,r14
  319. 313 00c6 1F96 adiw r26,15
  320. 314 00c8 6D91 ld r22,X+
  321. 315 00ca 7C91 ld r23,X
  322. 316 00cc 5097 sbiw r26,15+1
  323. 317 00ce 492D mov r20,r9
  324. 318 00d0 512F mov r21,r17
  325. 319 00d2 C501 movw r24,r10
  326. 320 00d4 0E94 0000 call memcpy
  327. 321 00d8 C701 movw r24,r14
  328. 322 00da 0E94 0000 call NutNetBufFree
  329. 323 00de 892D mov r24,r9
  330. 324 00e0 912F mov r25,r17
  331. 325 00e2 00C0 rjmp .L21
  332. 326 .L25:
  333. 327 00e4 80E0 ldi r24,0
  334. 328 00e6 90E0 ldi r25,0
  335. 329 .L21:
  336. 330 /* epilogue start */
  337. 331 00e8 DF91 pop r29
  338. 332 00ea CF91 pop r28
  339. 333 00ec 1F91 pop r17
  340. 334 00ee 0F91 pop r16
  341. 335 00f0 FF90 pop r15
  342. 336 00f2 EF90 pop r14
  343. 337 00f4 DF90 pop r13
  344. 338 00f6 CF90 pop r12
  345. 339 00f8 BF90 pop r11
  346. 340 00fa AF90 pop r10
  347. 341 00fc 9F90 pop r9
  348. 342 00fe 8F90 pop r8
  349. GAS LISTING /tmp/cckAKpPV.s page 7
  350. 343 0100 7F90 pop r7
  351. 344 0102 6F90 pop r6
  352. 345 0104 5F90 pop r5
  353. 346 0106 4F90 pop r4
  354. 347 0108 0895 ret
  355. 348 .size NutUdpReceiveFrom, .-NutUdpReceiveFrom
  356. 349 .section .text.NutUdpDestroySocket,"ax",@progbits
  357. 350 .global NutUdpDestroySocket
  358. 351 .type NutUdpDestroySocket, @function
  359. 352 NutUdpDestroySocket:
  360. 353 0000 CF93 push r28
  361. 354 0002 DF93 push r29
  362. 355 /* prologue: function */
  363. 356 /* frame size = 0 */
  364. 357 /* stack size = 2 */
  365. 358 .L__stack_usage = 2
  366. 359 0004 EC01 movw r28,r24
  367. 360 0006 E091 0000 lds r30,udpSocketList
  368. 361 000a F091 0000 lds r31,udpSocketList+1
  369. 362 000e A0E0 ldi r26,lo8(udpSocketList)
  370. 363 0010 B0E0 ldi r27,hi8(udpSocketList)
  371. 364 .L27:
  372. 365 0012 3097 sbiw r30,0
  373. 366 0014 01F0 breq .L33
  374. 367 0016 EC17 cp r30,r28
  375. 368 0018 FD07 cpc r31,r29
  376. 369 001a 01F4 brne .L28
  377. 370 001c 8881 ld r24,Y
  378. 371 001e 9981 ldd r25,Y+1
  379. 372 0020 8D93 st X+,r24
  380. 373 0022 9C93 st X,r25
  381. 374 .L29:
  382. 375 0024 8C81 ldd r24,Y+4
  383. 376 0026 9D81 ldd r25,Y+5
  384. 377 0028 0097 sbiw r24,0
  385. 378 002a 01F0 breq .L34
  386. 379 002c FC01 movw r30,r24
  387. 380 002e 2081 ld r18,Z
  388. 381 0030 3181 ldd r19,Z+1
  389. 382 0032 3D83 std Y+5,r19
  390. 383 0034 2C83 std Y+4,r18
  391. 384 0036 0E94 0000 call NutNetBufFree
  392. 385 003a 00C0 rjmp .L29
  393. 386 .L34:
  394. 387 003c CE01 movw r24,r28
  395. 388 003e 0E94 0000 call free
  396. 389 0042 80E0 ldi r24,0
  397. 390 0044 90E0 ldi r25,0
  398. 391 0046 00C0 rjmp .L31
  399. 392 .L28:
  400. 393 0048 DF01 movw r26,r30
  401. 394 004a 0190 ld __tmp_reg__,Z+
  402. 395 004c F081 ld r31,Z
  403. 396 004e E02D mov r30,__tmp_reg__
  404. 397 0050 00C0 rjmp .L27
  405. 398 .L33:
  406. 399 0052 8FEF ldi r24,lo8(-1)
  407. GAS LISTING /tmp/cckAKpPV.s page 8
  408. 400 0054 9FEF ldi r25,lo8(-1)
  409. 401 .L31:
  410. 402 /* epilogue start */
  411. 403 0056 DF91 pop r29
  412. 404 0058 CF91 pop r28
  413. 405 005a 0895 ret
  414. 406 .size NutUdpDestroySocket, .-NutUdpDestroySocket
  415. 407 .section .text.NutUdpError,"ax",@progbits
  416. 408 .global NutUdpError
  417. 409 .type NutUdpError, @function
  418. 410 NutUdpError:
  419. 411 0000 CF93 push r28
  420. 412 0002 DF93 push r29
  421. 413 /* prologue: function */
  422. 414 /* frame size = 0 */
  423. 415 /* stack size = 2 */
  424. 416 .L__stack_usage = 2
  425. 417 0004 FC01 movw r30,r24
  426. 418 0006 892B or r24,r25
  427. 419 0008 01F0 breq .L37
  428. 420 000a 2485 ldd r18,Z+12
  429. 421 000c 3585 ldd r19,Z+13
  430. 422 000e 2115 cp r18,__zero_reg__
  431. 423 0010 3105 cpc r19,__zero_reg__
  432. 424 0012 01F0 breq .L38
  433. 425 0014 8289 ldd r24,Z+18
  434. 426 0016 9389 ldd r25,Z+19
  435. 427 /* #APP */
  436. 428 ; 309 "../../nut/include/sys/types.h" 1
  437. 429 0018 082E mov __tmp_reg__, r24
  438. 430 001a 892F mov r24, r25
  439. 431 001c 902D mov r25, __tmp_reg__
  440. 432
  441. 433 ; 0 "" 2
  442. 434 /* #NOAPP */
  443. 435 001e DA01 movw r26,r20
  444. 436 0020 8D93 st X+,r24
  445. 437 0022 9C93 st X,r25
  446. 438 0024 8685 ldd r24,Z+14
  447. 439 0026 9785 ldd r25,Z+15
  448. 440 0028 A089 ldd r26,Z+16
  449. 441 002a B189 ldd r27,Z+17
  450. 442 002c EB01 movw r28,r22
  451. 443 002e 8883 st Y,r24
  452. 444 0030 9983 std Y+1,r25
  453. 445 0032 AA83 std Y+2,r26
  454. 446 0034 BB83 std Y+3,r27
  455. 447 0036 1586 std Z+13,__zero_reg__
  456. 448 0038 1486 std Z+12,__zero_reg__
  457. 449 003a 138A std Z+19,__zero_reg__
  458. 450 003c 128A std Z+18,__zero_reg__
  459. 451 003e 1686 std Z+14,__zero_reg__
  460. 452 0040 1786 std Z+15,__zero_reg__
  461. 453 0042 108A std Z+16,__zero_reg__
  462. 454 0044 118A std Z+17,__zero_reg__
  463. 455 0046 C901 movw r24,r18
  464. 456 0048 00C0 rjmp .L36
  465. GAS LISTING /tmp/cckAKpPV.s page 9
  466. 457 .L37:
  467. 458 004a 86E2 ldi r24,lo8(38)
  468. 459 004c 00C0 rjmp .L39
  469. 460 .L38:
  470. 461 004e 80E0 ldi r24,0
  471. 462 .L39:
  472. 463 0050 90E0 ldi r25,0
  473. 464 .L36:
  474. 465 /* epilogue start */
  475. 466 0052 DF91 pop r29
  476. 467 0054 CF91 pop r28
  477. 468 0056 0895 ret
  478. 469 .size NutUdpError, .-NutUdpError
  479. 470 .section .text.NutUdpFindSocket,"ax",@progbits
  480. 471 .global NutUdpFindSocket
  481. 472 .type NutUdpFindSocket, @function
  482. 473 NutUdpFindSocket:
  483. 474 /* prologue: function */
  484. 475 /* frame size = 0 */
  485. 476 /* stack size = 0 */
  486. 477 .L__stack_usage = 0
  487. 478 0000 E091 0000 lds r30,udpSocketList
  488. 479 0004 F091 0000 lds r31,udpSocketList+1
  489. 480 .L41:
  490. 481 0008 3097 sbiw r30,0
  491. 482 000a 01F0 breq .L42
  492. 483 000c 2281 ldd r18,Z+2
  493. 484 000e 3381 ldd r19,Z+3
  494. 485 0010 2817 cp r18,r24
  495. 486 0012 3907 cpc r19,r25
  496. 487 0014 01F0 breq .L42
  497. 488 0016 0190 ld __tmp_reg__,Z+
  498. 489 0018 F081 ld r31,Z
  499. 490 001a E02D mov r30,__tmp_reg__
  500. 491 001c 00C0 rjmp .L41
  501. 492 .L42:
  502. 493 001e CF01 movw r24,r30
  503. 494 0020 0895 ret
  504. 495 .size NutUdpFindSocket, .-NutUdpFindSocket
  505. 496 .section .text.NutUdpSetSockOpt,"ax",@progbits
  506. 497 .global NutUdpSetSockOpt
  507. 498 .type NutUdpSetSockOpt, @function
  508. 499 NutUdpSetSockOpt:
  509. 500 /* prologue: function */
  510. 501 /* frame size = 0 */
  511. 502 /* stack size = 0 */
  512. 503 .L__stack_usage = 0
  513. 504 0000 0097 sbiw r24,0
  514. 505 0002 01F0 breq .L50
  515. 506 0004 6230 cpi r22,2
  516. 507 0006 7041 sbci r23,16
  517. 508 0008 01F4 brne .L50
  518. 509 000a 4115 cp r20,__zero_reg__
  519. 510 000c 5105 cpc r21,__zero_reg__
  520. 511 000e 01F0 breq .L50
  521. 512 0010 2230 cpi r18,2
  522. 513 0012 3105 cpc r19,__zero_reg__
  523. GAS LISTING /tmp/cckAKpPV.s page 10
  524. 514 0014 01F4 brne .L50
  525. 515 0016 FA01 movw r30,r20
  526. 516 0018 2081 ld r18,Z
  527. 517 001a 3181 ldd r19,Z+1
  528. 518 001c FC01 movw r30,r24
  529. 519 001e 3387 std Z+11,r19
  530. 520 0020 2287 std Z+10,r18
  531. 521 0022 80E0 ldi r24,0
  532. 522 0024 90E0 ldi r25,0
  533. 523 0026 0895 ret
  534. 524 .L50:
  535. 525 0028 8FEF ldi r24,lo8(-1)
  536. 526 002a 9FEF ldi r25,lo8(-1)
  537. 527 002c 0895 ret
  538. 528 .size NutUdpSetSockOpt, .-NutUdpSetSockOpt
  539. 529 .section .text.NutUdpGetSockOpt,"ax",@progbits
  540. 530 .global NutUdpGetSockOpt
  541. 531 .type NutUdpGetSockOpt, @function
  542. 532 NutUdpGetSockOpt:
  543. 533 /* prologue: function */
  544. 534 /* frame size = 0 */
  545. 535 /* stack size = 0 */
  546. 536 .L__stack_usage = 0
  547. 537 0000 0097 sbiw r24,0
  548. 538 0002 01F0 breq .L58
  549. 539 0004 6230 cpi r22,2
  550. 540 0006 7041 sbci r23,16
  551. 541 0008 01F4 brne .L58
  552. 542 000a 4115 cp r20,__zero_reg__
  553. 543 000c 5105 cpc r21,__zero_reg__
  554. 544 000e 01F0 breq .L58
  555. 545 0010 2230 cpi r18,2
  556. 546 0012 3105 cpc r19,__zero_reg__
  557. 547 0014 01F4 brne .L58
  558. 548 0016 FC01 movw r30,r24
  559. 549 0018 8285 ldd r24,Z+10
  560. 550 001a 9385 ldd r25,Z+11
  561. 551 001c FA01 movw r30,r20
  562. 552 001e 9183 std Z+1,r25
  563. 553 0020 8083 st Z,r24
  564. 554 0022 80E0 ldi r24,0
  565. 555 0024 90E0 ldi r25,0
  566. 556 0026 0895 ret
  567. 557 .L58:
  568. 558 0028 8FEF ldi r24,lo8(-1)
  569. 559 002a 9FEF ldi r25,lo8(-1)
  570. 560 002c 0895 ret
  571. 561 .size NutUdpGetSockOpt, .-NutUdpGetSockOpt
  572. 562 .section .text.NutUdpSetSocketError,"ax",@progbits
  573. 563 .global NutUdpSetSocketError
  574. 564 .type NutUdpSetSocketError, @function
  575. 565 NutUdpSetSocketError:
  576. 566 0000 0F93 push r16
  577. 567 0002 1F93 push r17
  578. 568 /* prologue: function */
  579. 569 /* frame size = 0 */
  580. 570 /* stack size = 2 */
  581. GAS LISTING /tmp/cckAKpPV.s page 11
  582. 571 .L__stack_usage = 2
  583. 572 0004 FC01 movw r30,r24
  584. 573 0006 892B or r24,r25
  585. 574 0008 01F0 breq .L62
  586. 575 000a 4687 std Z+14,r20
  587. 576 000c 5787 std Z+15,r21
  588. 577 000e 608B std Z+16,r22
  589. 578 0010 718B std Z+17,r23
  590. 579 0012 338B std Z+19,r19
  591. 580 0014 228B std Z+18,r18
  592. 581 0016 1587 std Z+13,r17
  593. 582 0018 0487 std Z+12,r16
  594. 583 001a 8681 ldd r24,Z+6
  595. 584 001c 9781 ldd r25,Z+7
  596. 585 001e 892B or r24,r25
  597. 586 0020 01F0 breq .L63
  598. 587 0022 CF01 movw r24,r30
  599. 588 0024 0696 adiw r24,6
  600. 589 0026 0E94 0000 call NutEventPost
  601. 590 002a 00C0 rjmp .L63
  602. 591 .L62:
  603. 592 002c 8FEF ldi r24,lo8(-1)
  604. 593 002e 9FEF ldi r25,lo8(-1)
  605. 594 0030 00C0 rjmp .L61
  606. 595 .L63:
  607. 596 0032 80E0 ldi r24,0
  608. 597 0034 90E0 ldi r25,0
  609. 598 .L61:
  610. 599 /* epilogue start */
  611. 600 0036 1F91 pop r17
  612. 601 0038 0F91 pop r16
  613. 602 003a 0895 ret
  614. 603 .size NutUdpSetSocketError, .-NutUdpSetSocketError
  615. 604 .local registered
  616. 605 .comm registered,1,1
  617. 606 .local last_local_port
  618. 607 .comm last_local_port,2,1
  619. 608 .comm udpSocketList,2,1
  620. 609 .ident "GCC: (GNU) 5.3.0"
  621. 610 .global __do_clear_bss
  622. GAS LISTING /tmp/cckAKpPV.s page 12
  623. DEFINED SYMBOLS
  624. *ABS*:0000000000000000 udpsock.c
  625. /tmp/cckAKpPV.s:2 *ABS*:000000000000003e __SP_H__
  626. /tmp/cckAKpPV.s:3 *ABS*:000000000000003d __SP_L__
  627. /tmp/cckAKpPV.s:4 *ABS*:000000000000003f __SREG__
  628. /tmp/cckAKpPV.s:5 *ABS*:000000000000003b __RAMPZ__
  629. /tmp/cckAKpPV.s:6 *ABS*:0000000000000000 __tmp_reg__
  630. /tmp/cckAKpPV.s:7 *ABS*:0000000000000001 __zero_reg__
  631. /tmp/cckAKpPV.s:11 .text.NutUdpCreateSocket:0000000000000000 NutUdpCreateSocket
  632. .bss:0000000000000000 registered
  633. /tmp/cckAKpPV.s:605 .bss:0000000000000001 last_local_port
  634. *COM*:0000000000000002 udpSocketList
  635. /tmp/cckAKpPV.s:116 .text.NutUdpSendTo:0000000000000000 NutUdpSendTo
  636. /tmp/cckAKpPV.s:201 .text.NutUdpReceiveFrom:0000000000000000 NutUdpReceiveFrom
  637. /tmp/cckAKpPV.s:352 .text.NutUdpDestroySocket:0000000000000000 NutUdpDestroySocket
  638. /tmp/cckAKpPV.s:410 .text.NutUdpError:0000000000000000 NutUdpError
  639. /tmp/cckAKpPV.s:473 .text.NutUdpFindSocket:0000000000000000 NutUdpFindSocket
  640. /tmp/cckAKpPV.s:499 .text.NutUdpSetSockOpt:0000000000000000 NutUdpSetSockOpt
  641. /tmp/cckAKpPV.s:532 .text.NutUdpGetSockOpt:0000000000000000 NutUdpGetSockOpt
  642. /tmp/cckAKpPV.s:565 .text.NutUdpSetSocketError:0000000000000000 NutUdpSetSocketError
  643. UNDEFINED SYMBOLS
  644. NutUdpInput
  645. NutRegisterIpHandler
  646. NutGetMillis
  647. calloc
  648. NutNetBufAlloc
  649. memcpy
  650. NutUdpOutput
  651. NutNetBufFree
  652. NutEventWait
  653. free
  654. NutEventPost
  655. __do_clear_bss