tcpout.lst 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710
  1. GAS LISTING /tmp/ccGR6dde.s page 1
  2. 1 .file "tcpout.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.__byte_swap4,"ax",@progbits
  10. 9 .type __byte_swap4, @function
  11. 10 __byte_swap4:
  12. 11 /* prologue: function */
  13. 12 /* frame size = 0 */
  14. 13 /* stack size = 0 */
  15. 14 .L__stack_usage = 0
  16. 15 /* #APP */
  17. 16 ; 319 "../../nut/include/sys/types.h" 1
  18. 17 0000 062E mov __tmp_reg__, r22
  19. 18 0002 692F mov r22, r25
  20. 19 0004 902D mov r25, __tmp_reg__
  21. 20 0006 072E mov __tmp_reg__, r23
  22. 21 0008 782F mov r23, r24
  23. 22 000a 802D mov r24, __tmp_reg__
  24. 23
  25. 24 ; 0 "" 2
  26. 25 /* #NOAPP */
  27. 26 000c 0895 ret
  28. 27 .size __byte_swap4, .-__byte_swap4
  29. 28 .section .text.NutTcpOutput,"ax",@progbits
  30. 29 .global NutTcpOutput
  31. 30 .type NutTcpOutput, @function
  32. 31 NutTcpOutput:
  33. 32 0000 6F92 push r6
  34. 33 0002 7F92 push r7
  35. 34 0004 8F92 push r8
  36. 35 0006 9F92 push r9
  37. 36 0008 AF92 push r10
  38. 37 000a BF92 push r11
  39. 38 000c CF92 push r12
  40. 39 000e DF92 push r13
  41. 40 0010 EF92 push r14
  42. 41 0012 FF92 push r15
  43. 42 0014 0F93 push r16
  44. 43 0016 1F93 push r17
  45. 44 0018 CF93 push r28
  46. 45 001a DF93 push r29
  47. 46 001c 1F92 push __zero_reg__
  48. 47 001e 1F92 push __zero_reg__
  49. 48 0020 CDB7 in r28,__SP_L__
  50. 49 0022 DEB7 in r29,__SP_H__
  51. 50 /* prologue: function */
  52. 51 /* frame size = 2 */
  53. 52 /* stack size = 16 */
  54. 53 .L__stack_usage = 16
  55. 54 0024 6C01 movw r12,r24
  56. 55 0026 7B01 movw r14,r22
  57. 56 0028 3A01 movw r6,r20
  58. 57 002a DC01 movw r26,r24
  59. GAS LISTING /tmp/ccGR6dde.s page 2
  60. 58 002c 9296 adiw r26,34
  61. 59 002e 8C91 ld r24,X
  62. 60 0030 452B or r20,r21
  63. 61 0032 01F4 brne .L3
  64. 62 0034 982F mov r25,r24
  65. 63 0036 9B70 andi r25,lo8(11)
  66. 64 0038 01F4 brne .+2
  67. 65 003a 00C0 rjmp .L21
  68. 66 .L3:
  69. 67 003c 81FF sbrs r24,1
  70. 68 003e 00C0 rjmp .L22
  71. 69 0040 18E1 ldi r17,lo8(24)
  72. 70 0042 00C0 rjmp .L5
  73. 71 .L22:
  74. 72 0044 14E1 ldi r17,lo8(20)
  75. 73 .L5:
  76. 74 0046 412F mov r20,r17
  77. 75 0048 50E0 ldi r21,0
  78. 76 004a 60E4 ldi r22,lo8(64)
  79. 77 004c 80E0 ldi r24,0
  80. 78 004e 90E0 ldi r25,0
  81. 79 0050 0E94 0000 call NutNetBufAlloc
  82. 80 0054 4C01 movw r8,r24
  83. 81 0056 0097 sbiw r24,0
  84. 82 0058 01F4 brne .L6
  85. 83 .L12:
  86. 84 005a F601 movw r30,r12
  87. 85 005c E959 subi r30,-103
  88. 86 005e FF4F sbci r31,-1
  89. 87 0060 87E3 ldi r24,lo8(55)
  90. 88 0062 90E0 ldi r25,0
  91. 89 0064 9183 std Z+1,r25
  92. 90 0066 8083 st Z,r24
  93. 91 0068 00C0 rjmp .L24
  94. 92 .L6:
  95. 93 006a FC01 movw r30,r24
  96. 94 006c A384 ldd r10,Z+11
  97. 95 006e B484 ldd r11,Z+12
  98. 96 0070 D601 movw r26,r12
  99. 97 0072 5A96 adiw r26,26
  100. 98 0074 8D91 ld r24,X+
  101. 99 0076 9C91 ld r25,X
  102. 100 0078 5B97 sbiw r26,26+1
  103. 101 007a F501 movw r30,r10
  104. 102 007c 9183 std Z+1,r25
  105. 103 007e 8083 st Z,r24
  106. 104 0080 9096 adiw r26,32
  107. 105 0082 8D91 ld r24,X+
  108. 106 0084 9C91 ld r25,X
  109. 107 0086 9197 sbiw r26,32+1
  110. 108 0088 9383 std Z+3,r25
  111. 109 008a 8283 std Z+2,r24
  112. 110 008c 110F lsl r17
  113. 111 008e 110F lsl r17
  114. 112 0090 1487 std Z+12,r17
  115. 113 0092 9296 adiw r26,34
  116. 114 0094 8C91 ld r24,X
  117. GAS LISTING /tmp/ccGR6dde.s page 3
  118. 115 0096 9297 sbiw r26,34
  119. 116 0098 877F andi r24,lo8(-9)
  120. 117 009a 9296 adiw r26,34
  121. 118 009c 8C93 st X,r24
  122. 119 009e 9297 sbiw r26,34
  123. 120 00a0 9B96 adiw r26,43
  124. 121 00a2 6D91 ld r22,X+
  125. 122 00a4 7D91 ld r23,X+
  126. 123 00a6 8D91 ld r24,X+
  127. 124 00a8 9C91 ld r25,X
  128. 125 00aa 9E97 sbiw r26,43+3
  129. 126 00ac 0E94 0000 call __byte_swap4
  130. 127 00b0 D501 movw r26,r10
  131. 128 00b2 1496 adiw r26,4
  132. 129 00b4 6D93 st X+,r22
  133. 130 00b6 7D93 st X+,r23
  134. 131 00b8 8D93 st X+,r24
  135. 132 00ba 9C93 st X,r25
  136. 133 00bc 1797 sbiw r26,4+3
  137. 134 00be F601 movw r30,r12
  138. 135 00c0 82A1 ldd r24,Z+34
  139. 136 00c2 84FF sbrs r24,4
  140. 137 00c4 00C0 rjmp .L7
  141. 138 00c6 80E1 ldi r24,lo8(16)
  142. 139 00c8 1D96 adiw r26,13
  143. 140 00ca 8C93 st X,r24
  144. 141 00cc 82A1 ldd r24,Z+34
  145. 142 00ce 8F7E andi r24,lo8(-17)
  146. 143 00d0 82A3 std Z+34,r24
  147. 144 00d2 EC5B subi r30,-68
  148. 145 00d4 FF4F sbci r31,-1
  149. 146 00d6 6081 ld r22,Z
  150. 147 00d8 7181 ldd r23,Z+1
  151. 148 00da 8281 ldd r24,Z+2
  152. 149 00dc 9381 ldd r25,Z+3
  153. 150 00de 0E94 0000 call __byte_swap4
  154. 151 00e2 D501 movw r26,r10
  155. 152 00e4 1896 adiw r26,8
  156. 153 00e6 6D93 st X+,r22
  157. 154 00e8 7D93 st X+,r23
  158. 155 00ea 8D93 st X+,r24
  159. 156 00ec 9C93 st X,r25
  160. 157 00ee 1B97 sbiw r26,8+3
  161. 158 00f0 00C0 rjmp .L8
  162. 159 .L7:
  163. 160 00f2 F501 movw r30,r10
  164. 161 00f4 1586 std Z+13,__zero_reg__
  165. 162 00f6 1086 std Z+8,__zero_reg__
  166. 163 00f8 1186 std Z+9,__zero_reg__
  167. 164 00fa 1286 std Z+10,__zero_reg__
  168. 165 00fc 1386 std Z+11,__zero_reg__
  169. 166 .L8:
  170. 167 00fe F601 movw r30,r12
  171. 168 0100 82A1 ldd r24,Z+34
  172. 169 0102 81FF sbrs r24,1
  173. 170 0104 00C0 rjmp .L9
  174. 171 0106 E75A subi r30,-89
  175. GAS LISTING /tmp/ccGR6dde.s page 4
  176. 172 0108 FF4F sbci r31,-1
  177. 173 010a 8081 ld r24,Z
  178. 174 010c 9181 ldd r25,Z+1
  179. 175 /* #APP */
  180. 176 ; 309 "../../nut/include/sys/types.h" 1
  181. 177 010e 082E mov __tmp_reg__, r24
  182. 178 0110 892F mov r24, r25
  183. 179 0112 902D mov r25, __tmp_reg__
  184. 180
  185. 181 ; 0 "" 2
  186. 182 /* #NOAPP */
  187. 183 0114 9A83 std Y+2,r25
  188. 184 0116 8983 std Y+1,r24
  189. 185 0118 D501 movw r26,r10
  190. 186 011a 1D96 adiw r26,13
  191. 187 011c 9C91 ld r25,X
  192. 188 011e 1D97 sbiw r26,13
  193. 189 0120 9260 ori r25,lo8(2)
  194. 190 0122 1D96 adiw r26,13
  195. 191 0124 9C93 st X,r25
  196. 192 0126 F601 movw r30,r12
  197. 193 0128 92A1 ldd r25,Z+34
  198. 194 012a 9D7F andi r25,lo8(-3)
  199. 195 012c 92A3 std Z+34,r25
  200. 196 012e 43A5 ldd r20,Z+43
  201. 197 0130 54A5 ldd r21,Z+44
  202. 198 0132 65A5 ldd r22,Z+45
  203. 199 0134 76A5 ldd r23,Z+46
  204. 200 0136 4F5F subi r20,-1
  205. 201 0138 5F4F sbci r21,-1
  206. 202 013a 6F4F sbci r22,-1
  207. 203 013c 7F4F sbci r23,-1
  208. 204 013e 43A7 std Z+43,r20
  209. 205 0140 54A7 std Z+44,r21
  210. 206 0142 65A7 std Z+45,r22
  211. 207 0144 76A7 std Z+46,r23
  212. 208 0146 92E0 ldi r25,lo8(2)
  213. 209 0148 F501 movw r30,r10
  214. 210 014a 948B std Z+20,r25
  215. 211 014c 94E0 ldi r25,lo8(4)
  216. 212 014e 958B std Z+21,r25
  217. 213 0150 868B std Z+22,r24
  218. 214 0152 8A81 ldd r24,Y+2
  219. 215 0154 878B std Z+23,r24
  220. 216 0156 00C0 rjmp .L10
  221. 217 .L9:
  222. 218 0158 6114 cp r6,__zero_reg__
  223. 219 015a 7104 cpc r7,__zero_reg__
  224. 220 015c 01F0 breq .L11
  225. 221 015e A301 movw r20,r6
  226. 222 0160 60E8 ldi r22,lo8(-128)
  227. 223 0162 C401 movw r24,r8
  228. 224 0164 0E94 0000 call NutNetBufAlloc
  229. 225 0168 4C01 movw r8,r24
  230. 226 016a 0097 sbiw r24,0
  231. 227 016c 01F4 brne .+2
  232. 228 016e 00C0 rjmp .L12
  233. GAS LISTING /tmp/ccGR6dde.s page 5
  234. 229 0170 A301 movw r20,r6
  235. 230 0172 B701 movw r22,r14
  236. 231 0174 DC01 movw r26,r24
  237. 232 0176 1F96 adiw r26,15
  238. 233 0178 8D91 ld r24,X+
  239. 234 017a 9C91 ld r25,X
  240. 235 017c 5097 sbiw r26,15+1
  241. 236 017e 0E94 0000 call memcpy
  242. 237 0182 F601 movw r30,r12
  243. 238 0184 83A5 ldd r24,Z+43
  244. 239 0186 94A5 ldd r25,Z+44
  245. 240 0188 A5A5 ldd r26,Z+45
  246. 241 018a B6A5 ldd r27,Z+46
  247. 242 018c 860D add r24,r6
  248. 243 018e 971D adc r25,r7
  249. 244 0190 A11D adc r26,__zero_reg__
  250. 245 0192 B11D adc r27,__zero_reg__
  251. 246 0194 83A7 std Z+43,r24
  252. 247 0196 94A7 std Z+44,r25
  253. 248 0198 A5A7 std Z+45,r26
  254. 249 019a B6A7 std Z+46,r27
  255. 250 019c D501 movw r26,r10
  256. 251 019e 1D96 adiw r26,13
  257. 252 01a0 8C91 ld r24,X
  258. 253 01a2 1D97 sbiw r26,13
  259. 254 01a4 8860 ori r24,lo8(8)
  260. 255 01a6 1D96 adiw r26,13
  261. 256 01a8 8C93 st X,r24
  262. 257 01aa 00C0 rjmp .L10
  263. 258 .L11:
  264. 259 01ac 80FF sbrs r24,0
  265. 260 01ae 00C0 rjmp .L10
  266. 261 01b0 F501 movw r30,r10
  267. 262 01b2 8585 ldd r24,Z+13
  268. 263 01b4 8160 ori r24,lo8(1)
  269. 264 01b6 8587 std Z+13,r24
  270. 265 01b8 D601 movw r26,r12
  271. 266 01ba 9296 adiw r26,34
  272. 267 01bc 8C91 ld r24,X
  273. 268 01be 9297 sbiw r26,34
  274. 269 01c0 8E7F andi r24,lo8(-2)
  275. 270 01c2 9296 adiw r26,34
  276. 271 01c4 8C93 st X,r24
  277. 272 01c6 9297 sbiw r26,34
  278. 273 01c8 9B96 adiw r26,43
  279. 274 01ca 8D91 ld r24,X+
  280. 275 01cc 9D91 ld r25,X+
  281. 276 01ce 0D90 ld __tmp_reg__,X+
  282. 277 01d0 BC91 ld r27,X
  283. 278 01d2 A02D mov r26,__tmp_reg__
  284. 279 01d4 0196 adiw r24,1
  285. 280 01d6 A11D adc r26,__zero_reg__
  286. 281 01d8 B11D adc r27,__zero_reg__
  287. 282 01da F601 movw r30,r12
  288. 283 01dc 83A7 std Z+43,r24
  289. 284 01de 94A7 std Z+44,r25
  290. 285 01e0 A5A7 std Z+45,r26
  291. GAS LISTING /tmp/ccGR6dde.s page 6
  292. 286 01e2 B6A7 std Z+46,r27
  293. 287 .L10:
  294. 288 01e4 F601 movw r30,r12
  295. 289 01e6 E85B subi r30,-72
  296. 290 01e8 FF4F sbci r31,-1
  297. 291 01ea 8081 ld r24,Z
  298. 292 01ec 9181 ldd r25,Z+1
  299. 293 01ee 7196 adiw r30,17
  300. 294 01f0 2081 ld r18,Z
  301. 295 01f2 3181 ldd r19,Z+1
  302. 296 01f4 8217 cp r24,r18
  303. 297 01f6 9307 cpc r25,r19
  304. 298 01f8 00F4 brsh .L13
  305. 299 01fa D501 movw r26,r10
  306. 300 01fc 1F96 adiw r26,14+1
  307. 301 01fe 1C92 st X,__zero_reg__
  308. 302 0200 1E92 st -X,__zero_reg__
  309. 303 0202 1E97 sbiw r26,14
  310. 304 0204 00C0 rjmp .L14
  311. 305 .L13:
  312. 306 /* #APP */
  313. 307 ; 309 "../../nut/include/sys/types.h" 1
  314. 308 0206 082E mov __tmp_reg__, r24
  315. 309 0208 892F mov r24, r25
  316. 310 020a 902D mov r25, __tmp_reg__
  317. 311
  318. 312 ; 0 "" 2
  319. 313 /* #NOAPP */
  320. 314 020c F501 movw r30,r10
  321. 315 020e 9787 std Z+15,r25
  322. 316 0210 8687 std Z+14,r24
  323. 317 .L14:
  324. 318 0212 D501 movw r26,r10
  325. 319 0214 5196 adiw r26,16+1
  326. 320 0216 1C92 st X,__zero_reg__
  327. 321 0218 1E92 st -X,__zero_reg__
  328. 322 021a 5097 sbiw r26,16
  329. 323 021c 5396 adiw r26,18+1
  330. 324 021e 1C92 st X,__zero_reg__
  331. 325 0220 1E92 st -X,__zero_reg__
  332. 326 0222 5297 sbiw r26,18
  333. 327 0224 F401 movw r30,r8
  334. 328 0226 E584 ldd r14,Z+13
  335. 329 0228 F684 ldd r15,Z+14
  336. 330 022a 8189 ldd r24,Z+17
  337. 331 022c 9289 ldd r25,Z+18
  338. 332 022e E80E add r14,r24
  339. 333 0230 F91E adc r15,r25
  340. 334 /* #APP */
  341. 335 ; 309 "../../nut/include/sys/types.h" 1
  342. 336 0232 0E2C mov __tmp_reg__, r14
  343. 337 0234 EF2C mov r14, r15
  344. 338 0236 F02C mov r15, __tmp_reg__
  345. 339
  346. 340 ; 0 "" 2
  347. 341 /* #NOAPP */
  348. 342 0238 D601 movw r26,r12
  349. GAS LISTING /tmp/ccGR6dde.s page 7
  350. 343 023a 5C96 adiw r26,28
  351. 344 023c 2D91 ld r18,X+
  352. 345 023e 3D91 ld r19,X+
  353. 346 0240 4D91 ld r20,X+
  354. 347 0242 5C91 ld r21,X
  355. 348 0244 5F97 sbiw r26,28+3
  356. 349 0246 5696 adiw r26,22
  357. 350 0248 6D91 ld r22,X+
  358. 351 024a 7D91 ld r23,X+
  359. 352 024c 8D91 ld r24,X+
  360. 353 024e 9C91 ld r25,X
  361. 354 0250 5997 sbiw r26,22+3
  362. 355 0252 06E0 ldi r16,lo8(6)
  363. 356 0254 0E94 0000 call NutIpPseudoChkSumPartial
  364. 357 0258 DC01 movw r26,r24
  365. 358 025a CB01 movw r24,r22
  366. 359 025c F401 movw r30,r8
  367. 360 025e 4585 ldd r20,Z+13
  368. 361 0260 5685 ldd r21,Z+14
  369. 362 0262 B501 movw r22,r10
  370. 363 0264 0E94 0000 call NutIpChkSumPartial
  371. 364 0268 D401 movw r26,r8
  372. 365 026a 5196 adiw r26,17
  373. 366 026c 4D91 ld r20,X+
  374. 367 026e 5C91 ld r21,X
  375. 368 0270 5297 sbiw r26,17+1
  376. 369 0272 1F96 adiw r26,15
  377. 370 0274 6D91 ld r22,X+
  378. 371 0276 7C91 ld r23,X
  379. 372 0278 5097 sbiw r26,15+1
  380. 373 027a 0E94 0000 call NutIpChkSum
  381. 374 027e F501 movw r30,r10
  382. 375 0280 918B std Z+17,r25
  383. 376 0282 808B std Z+16,r24
  384. 377 0284 6728 or r6,r7
  385. 378 0286 01F4 brne .L15
  386. 379 0288 8585 ldd r24,Z+13
  387. 380 028a 8370 andi r24,lo8(3)
  388. 381 028c 01F4 brne .+2
  389. 382 028e 00C0 rjmp .L16
  390. 383 .L15:
  391. 384 0290 D401 movw r26,r8
  392. 385 0292 1D92 st X+,__zero_reg__
  393. 386 0294 1C92 st X,__zero_reg__
  394. 387 0296 D601 movw r26,r12
  395. 388 0298 DA96 adiw r26,58
  396. 389 029a ED91 ld r30,X+
  397. 390 029c FC91 ld r31,X
  398. 391 029e DB97 sbiw r26,58+1
  399. 392 02a0 3097 sbiw r30,0
  400. 393 02a2 01F4 brne .L33
  401. 394 02a4 DB96 adiw r26,58+1
  402. 395 02a6 9C92 st X,r9
  403. 396 02a8 8E92 st -X,r8
  404. 397 02aa DA97 sbiw r26,58
  405. 398 02ac 0E94 0000 call NutGetMillis
  406. 399 02b0 F601 movw r30,r12
  407. GAS LISTING /tmp/ccGR6dde.s page 8
  408. 400 02b2 EB59 subi r30,-101
  409. 401 02b4 FF4F sbci r31,-1
  410. 402 02b6 6160 ori r22,1
  411. 403 02b8 7183 std Z+1,r23
  412. 404 02ba 6083 st Z,r22
  413. 405 02bc 00C0 rjmp .L18
  414. 406 .L33:
  415. 407 02be 8081 ld r24,Z
  416. 408 02c0 9181 ldd r25,Z+1
  417. 409 02c2 0097 sbiw r24,0
  418. 410 02c4 01F0 breq .L39
  419. 411 02c6 FC01 movw r30,r24
  420. 412 02c8 00C0 rjmp .L33
  421. 413 .L39:
  422. 414 02ca 9182 std Z+1,r9
  423. 415 02cc 8082 st Z,r8
  424. 416 .L18:
  425. 417 02ce 8601 movw r16,r12
  426. 418 02d0 055A subi r16,-91
  427. 419 02d2 1F4F sbci r17,-1
  428. 420 02d4 F801 movw r30,r16
  429. 421 02d6 8081 ld r24,Z
  430. 422 02d8 9181 ldd r25,Z+1
  431. 423 02da A281 ldd r26,Z+2
  432. 424 02dc B381 ldd r27,Z+3
  433. 425 02de 892B or r24,r25
  434. 426 02e0 8A2B or r24,r26
  435. 427 02e2 8B2B or r24,r27
  436. 428 02e4 01F4 brne .L20
  437. 429 02e6 D501 movw r26,r10
  438. 430 02e8 1496 adiw r26,4
  439. 431 02ea 6D91 ld r22,X+
  440. 432 02ec 7D91 ld r23,X+
  441. 433 02ee 8D91 ld r24,X+
  442. 434 02f0 9C91 ld r25,X
  443. 435 02f2 1797 sbiw r26,4+3
  444. 436 02f4 0E94 0000 call __byte_swap4
  445. 437 02f8 F801 movw r30,r16
  446. 438 02fa 6083 st Z,r22
  447. 439 02fc 7183 std Z+1,r23
  448. 440 02fe 8283 std Z+2,r24
  449. 441 0300 9383 std Z+3,r25
  450. 442 .L20:
  451. 443 0302 60E0 ldi r22,0
  452. 444 0304 C401 movw r24,r8
  453. 445 0306 0E94 0000 call NutNetBufClonePart
  454. 446 030a 4C01 movw r8,r24
  455. 447 030c 892B or r24,r25
  456. 448 030e 01F4 brne .+2
  457. 449 0310 00C0 rjmp .L12
  458. 450 .L16:
  459. 451 0312 D601 movw r26,r12
  460. 452 0314 5C96 adiw r26,28
  461. 453 0316 4D91 ld r20,X+
  462. 454 0318 5D91 ld r21,X+
  463. 455 031a 6D91 ld r22,X+
  464. 456 031c 7C91 ld r23,X
  465. GAS LISTING /tmp/ccGR6dde.s page 9
  466. 457 031e 5F97 sbiw r26,28+3
  467. 458 0320 9401 movw r18,r8
  468. 459 0322 86E0 ldi r24,lo8(6)
  469. 460 0324 0E94 0000 call NutIpOutput
  470. 461 0328 8C01 movw r16,r24
  471. 462 032a 892B or r24,r25
  472. 463 032c 01F4 brne .L24
  473. 464 032e C401 movw r24,r8
  474. 465 0330 0E94 0000 call NutNetBufFree
  475. 466 0334 00C0 rjmp .L4
  476. 467 .L21:
  477. 468 0336 00E0 ldi r16,0
  478. 469 0338 10E0 ldi r17,0
  479. 470 033a 00C0 rjmp .L4
  480. 471 .L24:
  481. 472 033c 0FEF ldi r16,lo8(-1)
  482. 473 033e 1FEF ldi r17,lo8(-1)
  483. 474 .L4:
  484. 475 0340 C801 movw r24,r16
  485. 476 /* epilogue start */
  486. 477 0342 0F90 pop __tmp_reg__
  487. 478 0344 0F90 pop __tmp_reg__
  488. 479 0346 DF91 pop r29
  489. 480 0348 CF91 pop r28
  490. 481 034a 1F91 pop r17
  491. 482 034c 0F91 pop r16
  492. 483 034e FF90 pop r15
  493. 484 0350 EF90 pop r14
  494. 485 0352 DF90 pop r13
  495. 486 0354 CF90 pop r12
  496. 487 0356 BF90 pop r11
  497. 488 0358 AF90 pop r10
  498. 489 035a 9F90 pop r9
  499. 490 035c 8F90 pop r8
  500. 491 035e 7F90 pop r7
  501. 492 0360 6F90 pop r6
  502. 493 0362 0895 ret
  503. 494 .size NutTcpOutput, .-NutTcpOutput
  504. 495 .section .text.NutTcpReject,"ax",@progbits
  505. 496 .global NutTcpReject
  506. 497 .type NutTcpReject, @function
  507. 498 NutTcpReject:
  508. 499 0000 AF92 push r10
  509. 500 0002 BF92 push r11
  510. 501 0004 CF92 push r12
  511. 502 0006 DF92 push r13
  512. 503 0008 EF92 push r14
  513. 504 000a FF92 push r15
  514. 505 000c 0F93 push r16
  515. 506 000e CF93 push r28
  516. 507 0010 DF93 push r29
  517. 508 /* prologue: function */
  518. 509 /* frame size = 0 */
  519. 510 /* stack size = 9 */
  520. 511 .L__stack_usage = 9
  521. 512 0012 6C01 movw r12,r24
  522. 513 0014 FC01 movw r30,r24
  523. GAS LISTING /tmp/ccGR6dde.s page 10
  524. 514 0016 C385 ldd r28,Z+11
  525. 515 0018 D485 ldd r29,Z+12
  526. 516 001a 8D85 ldd r24,Y+13
  527. 517 001c 82FF sbrs r24,2
  528. 518 001e 00C0 rjmp .L41
  529. 519 .L47:
  530. 520 0020 C601 movw r24,r12
  531. 521 0022 0E94 0000 call NutNetBufFree
  532. 522 0026 00C0 rjmp .L42
  533. 523 .L41:
  534. 524 0028 F601 movw r30,r12
  535. 525 002a A780 ldd r10,Z+7
  536. 526 002c B084 ldd r11,Z+8
  537. 527 002e 128A std Z+18,__zero_reg__
  538. 528 0030 118A std Z+17,__zero_reg__
  539. 529 0032 84E1 ldi r24,lo8(20)
  540. 530 0034 90E0 ldi r25,0
  541. 531 0036 9687 std Z+14,r25
  542. 532 0038 8587 std Z+13,r24
  543. 533 003a 8881 ld r24,Y
  544. 534 003c 9981 ldd r25,Y+1
  545. 535 003e 2A81 ldd r18,Y+2
  546. 536 0040 3B81 ldd r19,Y+3
  547. 537 0042 3983 std Y+1,r19
  548. 538 0044 2883 st Y,r18
  549. 539 0046 9B83 std Y+3,r25
  550. 540 0048 8A83 std Y+2,r24
  551. 541 004a 2D85 ldd r18,Y+13
  552. 542 004c 24FF sbrs r18,4
  553. 543 004e 00C0 rjmp .L43
  554. 544 0050 84E0 ldi r24,lo8(4)
  555. 545 0052 8D87 std Y+13,r24
  556. 546 0054 8885 ldd r24,Y+8
  557. 547 0056 9985 ldd r25,Y+9
  558. 548 0058 AA85 ldd r26,Y+10
  559. 549 005a BB85 ldd r27,Y+11
  560. 550 005c 8C83 std Y+4,r24
  561. 551 005e 9D83 std Y+5,r25
  562. 552 0060 AE83 std Y+6,r26
  563. 553 0062 BF83 std Y+7,r27
  564. 554 0064 1886 std Y+8,__zero_reg__
  565. 555 0066 1986 std Y+9,__zero_reg__
  566. 556 0068 1A86 std Y+10,__zero_reg__
  567. 557 006a 1B86 std Y+11,__zero_reg__
  568. 558 006c 00C0 rjmp .L44
  569. 559 .L43:
  570. 560 006e 6C81 ldd r22,Y+4
  571. 561 0070 7D81 ldd r23,Y+5
  572. 562 0072 8E81 ldd r24,Y+6
  573. 563 0074 9F81 ldd r25,Y+7
  574. 564 0076 21FF sbrs r18,1
  575. 565 0078 00C0 rjmp .L45
  576. 566 007a 0E94 0000 call __byte_swap4
  577. 567 007e 6F5F subi r22,-1
  578. 568 0080 7F4F sbci r23,-1
  579. 569 0082 8F4F sbci r24,-1
  580. 570 0084 9F4F sbci r25,-1
  581. GAS LISTING /tmp/ccGR6dde.s page 11
  582. 571 0086 0E94 0000 call __byte_swap4
  583. 572 .L45:
  584. 573 008a 6887 std Y+8,r22
  585. 574 008c 7987 std Y+9,r23
  586. 575 008e 8A87 std Y+10,r24
  587. 576 0090 9B87 std Y+11,r25
  588. 577 0092 1C82 std Y+4,__zero_reg__
  589. 578 0094 1D82 std Y+5,__zero_reg__
  590. 579 0096 1E82 std Y+6,__zero_reg__
  591. 580 0098 1F82 std Y+7,__zero_reg__
  592. 581 009a 84E1 ldi r24,lo8(20)
  593. 582 009c 8D87 std Y+13,r24
  594. 583 .L44:
  595. 584 009e 80E5 ldi r24,lo8(80)
  596. 585 00a0 8C87 std Y+12,r24
  597. 586 00a2 1F86 std Y+15,__zero_reg__
  598. 587 00a4 1E86 std Y+14,__zero_reg__
  599. 588 00a6 1B8A std Y+19,__zero_reg__
  600. 589 00a8 1A8A std Y+18,__zero_reg__
  601. 590 00aa 198A std Y+17,__zero_reg__
  602. 591 00ac 188A std Y+16,__zero_reg__
  603. 592 00ae F601 movw r30,r12
  604. 593 00b0 E584 ldd r14,Z+13
  605. 594 00b2 F684 ldd r15,Z+14
  606. 595 /* #APP */
  607. 596 ; 309 "../../nut/include/sys/types.h" 1
  608. 597 00b4 0E2C mov __tmp_reg__, r14
  609. 598 00b6 EF2C mov r14, r15
  610. 599 00b8 F02C mov r15, __tmp_reg__
  611. 600
  612. 601 ; 0 "" 2
  613. 602 /* #NOAPP */
  614. 603 00ba F501 movw r30,r10
  615. 604 00bc 2485 ldd r18,Z+12
  616. 605 00be 3585 ldd r19,Z+13
  617. 606 00c0 4685 ldd r20,Z+14
  618. 607 00c2 5785 ldd r21,Z+15
  619. 608 00c4 6089 ldd r22,Z+16
  620. 609 00c6 7189 ldd r23,Z+17
  621. 610 00c8 8289 ldd r24,Z+18
  622. 611 00ca 9389 ldd r25,Z+19
  623. 612 00cc 06E0 ldi r16,lo8(6)
  624. 613 00ce 0E94 0000 call NutIpPseudoChkSumPartial
  625. 614 00d2 DC01 movw r26,r24
  626. 615 00d4 CB01 movw r24,r22
  627. 616 00d6 F601 movw r30,r12
  628. 617 00d8 4585 ldd r20,Z+13
  629. 618 00da 5685 ldd r21,Z+14
  630. 619 00dc BE01 movw r22,r28
  631. 620 00de 0E94 0000 call NutIpChkSum
  632. 621 00e2 998B std Y+17,r25
  633. 622 00e4 888B std Y+16,r24
  634. 623 00e6 F501 movw r30,r10
  635. 624 00e8 4485 ldd r20,Z+12
  636. 625 00ea 5585 ldd r21,Z+13
  637. 626 00ec 6685 ldd r22,Z+14
  638. 627 00ee 7785 ldd r23,Z+15
  639. GAS LISTING /tmp/ccGR6dde.s page 12
  640. 628 00f0 9601 movw r18,r12
  641. 629 00f2 86E0 ldi r24,lo8(6)
  642. 630 00f4 0E94 0000 call NutIpOutput
  643. 631 00f8 892B or r24,r25
  644. 632 00fa 01F4 brne .+2
  645. 633 00fc 00C0 rjmp .L47
  646. 634 .L42:
  647. 635 00fe 80E0 ldi r24,0
  648. 636 0100 90E0 ldi r25,0
  649. 637 /* epilogue start */
  650. 638 0102 DF91 pop r29
  651. 639 0104 CF91 pop r28
  652. 640 0106 0F91 pop r16
  653. 641 0108 FF90 pop r15
  654. 642 010a EF90 pop r14
  655. 643 010c DF90 pop r13
  656. 644 010e CF90 pop r12
  657. 645 0110 BF90 pop r11
  658. 646 0112 AF90 pop r10
  659. 647 0114 0895 ret
  660. 648 .size NutTcpReject, .-NutTcpReject
  661. 649 .ident "GCC: (GNU) 5.3.0"
  662. GAS LISTING /tmp/ccGR6dde.s page 13
  663. DEFINED SYMBOLS
  664. *ABS*:0000000000000000 tcpout.c
  665. /tmp/ccGR6dde.s:2 *ABS*:000000000000003e __SP_H__
  666. /tmp/ccGR6dde.s:3 *ABS*:000000000000003d __SP_L__
  667. /tmp/ccGR6dde.s:4 *ABS*:000000000000003f __SREG__
  668. /tmp/ccGR6dde.s:5 *ABS*:000000000000003b __RAMPZ__
  669. /tmp/ccGR6dde.s:6 *ABS*:0000000000000000 __tmp_reg__
  670. /tmp/ccGR6dde.s:7 *ABS*:0000000000000001 __zero_reg__
  671. /tmp/ccGR6dde.s:10 .text.__byte_swap4:0000000000000000 __byte_swap4
  672. /tmp/ccGR6dde.s:31 .text.NutTcpOutput:0000000000000000 NutTcpOutput
  673. /tmp/ccGR6dde.s:498 .text.NutTcpReject:0000000000000000 NutTcpReject
  674. UNDEFINED SYMBOLS
  675. NutNetBufAlloc
  676. memcpy
  677. NutIpPseudoChkSumPartial
  678. NutIpChkSumPartial
  679. NutIpChkSum
  680. NutGetMillis
  681. NutNetBufClonePart
  682. NutIpOutput
  683. NutNetBufFree