netbuf.lst 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719
  1. GAS LISTING /tmp/ccAfoP28.s page 1
  2. 1 .file "netbuf.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.NutNetBufAllocData,"ax",@progbits
  10. 9 .type NutNetBufAllocData, @function
  11. 10 NutNetBufAllocData:
  12. 11 0000 EF92 push r14
  13. 12 0002 FF92 push r15
  14. 13 0004 0F93 push r16
  15. 14 0006 1F93 push r17
  16. 15 0008 CF93 push r28
  17. 16 000a DF93 push r29
  18. 17 /* prologue: function */
  19. 18 /* frame size = 0 */
  20. 19 /* stack size = 6 */
  21. 20 .L__stack_usage = 6
  22. 21 000c 8C01 movw r16,r24
  23. 22 000e 7B01 movw r14,r22
  24. 23 0010 EA01 movw r28,r20
  25. 24 0012 640F add r22,r20
  26. 25 0014 751F adc r23,r21
  27. 26 0016 80E0 ldi r24,lo8(heapFreeList)
  28. 27 0018 90E0 ldi r25,hi8(heapFreeList)
  29. 28 001a 0E94 0000 call NutHeapRootAlloc
  30. 29 001e 0097 sbiw r24,0
  31. 30 0020 01F4 brne .L2
  32. 31 0022 F801 movw r30,r16
  33. 32 0024 1182 std Z+1,__zero_reg__
  34. 33 0026 1082 st Z,__zero_reg__
  35. 34 0028 8FEF ldi r24,lo8(-1)
  36. 35 002a 9FEF ldi r25,lo8(-1)
  37. 36 002c 00C0 rjmp .L3
  38. 37 .L2:
  39. 38 002e C80F add r28,r24
  40. 39 0030 D91F adc r29,r25
  41. 40 0032 F801 movw r30,r16
  42. 41 0034 D183 std Z+1,r29
  43. 42 0036 C083 st Z,r28
  44. 43 0038 F382 std Z+3,r15
  45. 44 003a E282 std Z+2,r14
  46. 45 003c 80E0 ldi r24,0
  47. 46 003e 90E0 ldi r25,0
  48. 47 .L3:
  49. 48 /* epilogue start */
  50. 49 0040 DF91 pop r29
  51. 50 0042 CF91 pop r28
  52. 51 0044 1F91 pop r17
  53. 52 0046 0F91 pop r16
  54. 53 0048 FF90 pop r15
  55. 54 004a EF90 pop r14
  56. 55 004c 0895 ret
  57. 56 .size NutNetBufAllocData, .-NutNetBufAllocData
  58. 57 .section .text.NutNetBufFree,"ax",@progbits
  59. GAS LISTING /tmp/ccAfoP28.s page 2
  60. 58 .global NutNetBufFree
  61. 59 .type NutNetBufFree, @function
  62. 60 NutNetBufFree:
  63. 61 0000 CF93 push r28
  64. 62 0002 DF93 push r29
  65. 63 /* prologue: function */
  66. 64 /* frame size = 0 */
  67. 65 /* stack size = 2 */
  68. 66 .L__stack_usage = 2
  69. 67 0004 EC01 movw r28,r24
  70. 68 0006 8A81 ldd r24,Y+2
  71. 69 0008 982F mov r25,r24
  72. 70 000a 9770 andi r25,lo8(7)
  73. 71 000c 01F0 breq .L6
  74. 72 000e 8150 subi r24,lo8(-(-1))
  75. 73 0010 8A83 std Y+2,r24
  76. 74 /* epilogue start */
  77. 75 0012 DF91 pop r29
  78. 76 0014 CF91 pop r28
  79. 77 0016 0895 ret
  80. 78 .L6:
  81. 79 0018 84FF sbrs r24,4
  82. 80 001a 00C0 rjmp .L8
  83. 81 001c 6B81 ldd r22,Y+3
  84. 82 001e 7C81 ldd r23,Y+4
  85. 83 0020 6E7F andi r22,254
  86. 84 0022 80E0 ldi r24,lo8(heapFreeList)
  87. 85 0024 90E0 ldi r25,hi8(heapFreeList)
  88. 86 0026 0E94 0000 call NutHeapRootFree
  89. 87 .L8:
  90. 88 002a 8A81 ldd r24,Y+2
  91. 89 002c 85FF sbrs r24,5
  92. 90 002e 00C0 rjmp .L9
  93. 91 0030 6F81 ldd r22,Y+7
  94. 92 0032 7885 ldd r23,Y+8
  95. 93 0034 80E0 ldi r24,lo8(heapFreeList)
  96. 94 0036 90E0 ldi r25,hi8(heapFreeList)
  97. 95 0038 0E94 0000 call NutHeapRootFree
  98. 96 .L9:
  99. 97 003c 8A81 ldd r24,Y+2
  100. 98 003e 86FF sbrs r24,6
  101. 99 0040 00C0 rjmp .L10
  102. 100 0042 6B85 ldd r22,Y+11
  103. 101 0044 7C85 ldd r23,Y+12
  104. 102 0046 80E0 ldi r24,lo8(heapFreeList)
  105. 103 0048 90E0 ldi r25,hi8(heapFreeList)
  106. 104 004a 0E94 0000 call NutHeapRootFree
  107. 105 .L10:
  108. 106 004e 8A81 ldd r24,Y+2
  109. 107 0050 87FF sbrs r24,7
  110. 108 0052 00C0 rjmp .L11
  111. 109 0054 6F85 ldd r22,Y+15
  112. 110 0056 7889 ldd r23,Y+16
  113. 111 0058 80E0 ldi r24,lo8(heapFreeList)
  114. 112 005a 90E0 ldi r25,hi8(heapFreeList)
  115. 113 005c 0E94 0000 call NutHeapRootFree
  116. 114 .L11:
  117. GAS LISTING /tmp/ccAfoP28.s page 3
  118. 115 0060 8B89 ldd r24,Y+19
  119. 116 0062 9C89 ldd r25,Y+20
  120. 117 0064 0097 sbiw r24,0
  121. 118 0066 01F0 breq .L12
  122. 119 0068 0E94 0000 call NutNetBufFree
  123. 120 .L12:
  124. 121 006c BE01 movw r22,r28
  125. 122 006e 80E0 ldi r24,lo8(heapFreeList)
  126. 123 0070 90E0 ldi r25,hi8(heapFreeList)
  127. 124 /* epilogue start */
  128. 125 0072 DF91 pop r29
  129. 126 0074 CF91 pop r28
  130. 127 0076 0C94 0000 jmp NutHeapRootFree
  131. 128 .size NutNetBufFree, .-NutNetBufFree
  132. 129 .section .text.NutNetBufAlloc,"ax",@progbits
  133. 130 .global NutNetBufAlloc
  134. 131 .type NutNetBufAlloc, @function
  135. 132 NutNetBufAlloc:
  136. 133 0000 CF92 push r12
  137. 134 0002 DF92 push r13
  138. 135 0004 EF92 push r14
  139. 136 0006 FF92 push r15
  140. 137 0008 0F93 push r16
  141. 138 000a 1F93 push r17
  142. 139 000c CF93 push r28
  143. 140 000e DF93 push r29
  144. 141 /* prologue: function */
  145. 142 /* frame size = 0 */
  146. 143 /* stack size = 8 */
  147. 144 .L__stack_usage = 8
  148. 145 0010 EC01 movw r28,r24
  149. 146 0012 062F mov r16,r22
  150. 147 0014 6A01 movw r12,r20
  151. 148 0016 862F mov r24,r22
  152. 149 0018 807F andi r24,lo8(-16)
  153. 150 001a 8031 cpi r24,lo8(16)
  154. 151 001c 01F0 breq .L27
  155. 152 001e 162F mov r17,r22
  156. 153 0020 2097 sbiw r28,0
  157. 154 0022 01F4 brne .L28
  158. 155 0024 00C0 rjmp .L39
  159. 156 .L27:
  160. 157 0026 2097 sbiw r28,0
  161. 158 0028 01F4 brne .L33
  162. 159 002a 10E1 ldi r17,lo8(16)
  163. 160 .L39:
  164. 161 002c 65E1 ldi r22,lo8(21)
  165. 162 002e 70E0 ldi r23,0
  166. 163 0030 80E0 ldi r24,lo8(heapFreeList)
  167. 164 0032 90E0 ldi r25,hi8(heapFreeList)
  168. 165 0034 0E94 0000 call NutHeapRootAllocClear
  169. 166 0038 EC01 movw r28,r24
  170. 167 003a 892B or r24,r25
  171. 168 003c 01F4 brne .+2
  172. 169 003e 00C0 rjmp .L44
  173. 170 .L28:
  174. 171 0040 1032 cpi r17,lo8(32)
  175. GAS LISTING /tmp/ccAfoP28.s page 4
  176. 172 0042 01F0 breq .L31
  177. 173 0044 1034 cpi r17,lo8(64)
  178. 174 0046 01F0 breq .L32
  179. 175 0048 1031 cpi r17,lo8(16)
  180. 176 004a 01F4 brne .L49
  181. 177 .L33:
  182. 178 004c 7E01 movw r14,r28
  183. 179 004e 83E0 ldi r24,3
  184. 180 0050 E80E add r14,r24
  185. 181 0052 F11C adc r15,__zero_reg__
  186. 182 0054 10E1 ldi r17,lo8(16)
  187. 183 0056 00C0 rjmp .L34
  188. 184 .L31:
  189. 185 0058 7E01 movw r14,r28
  190. 186 005a E7E0 ldi r30,7
  191. 187 005c EE0E add r14,r30
  192. 188 005e F11C adc r15,__zero_reg__
  193. 189 0060 00C0 rjmp .L34
  194. 190 .L32:
  195. 191 0062 7E01 movw r14,r28
  196. 192 0064 FBE0 ldi r31,11
  197. 193 0066 EF0E add r14,r31
  198. 194 0068 F11C adc r15,__zero_reg__
  199. 195 006a 00C0 rjmp .L34
  200. 196 .L49:
  201. 197 006c 7E01 movw r14,r28
  202. 198 006e 8FE0 ldi r24,15
  203. 199 0070 E80E add r14,r24
  204. 200 0072 F11C adc r15,__zero_reg__
  205. 201 .L34:
  206. 202 0074 8A81 ldd r24,Y+2
  207. 203 0076 8123 and r24,r17
  208. 204 0078 F701 movw r30,r14
  209. 205 007a 01F0 breq .L35
  210. 206 007c 8281 ldd r24,Z+2
  211. 207 007e 9381 ldd r25,Z+3
  212. 208 0080 8C15 cp r24,r12
  213. 209 0082 9D05 cpc r25,r13
  214. 210 0084 04F4 brge .L36
  215. 211 0086 6081 ld r22,Z
  216. 212 0088 7181 ldd r23,Z+1
  217. 213 008a 6E7F andi r22,254
  218. 214 008c 80E0 ldi r24,lo8(heapFreeList)
  219. 215 008e 90E0 ldi r25,hi8(heapFreeList)
  220. 216 0090 0E94 0000 call NutHeapRootFree
  221. 217 0094 F701 movw r30,r14
  222. 218 0096 00C0 rjmp .L35
  223. 219 .L36:
  224. 220 0098 F701 movw r30,r14
  225. 221 009a D382 std Z+3,r13
  226. 222 009c C282 std Z+2,r12
  227. 223 009e 00C0 rjmp .L37
  228. 224 .L35:
  229. 225 00a0 1382 std Z+3,__zero_reg__
  230. 226 00a2 1282 std Z+2,__zero_reg__
  231. 227 .L37:
  232. 228 00a4 F701 movw r30,r14
  233. GAS LISTING /tmp/ccAfoP28.s page 5
  234. 229 00a6 8281 ldd r24,Z+2
  235. 230 00a8 9381 ldd r25,Z+3
  236. 231 00aa 892B or r24,r25
  237. 232 00ac 01F4 brne .L44
  238. 233 00ae 402F mov r20,r16
  239. 234 00b0 50E0 ldi r21,0
  240. 235 00b2 4F70 andi r20,15
  241. 236 00b4 B601 movw r22,r12
  242. 237 00b6 C701 movw r24,r14
  243. 238 00b8 0E94 0000 call NutNetBufAllocData
  244. 239 00bc 892B or r24,r25
  245. 240 00be 01F0 breq .L38
  246. 241 00c0 CE01 movw r24,r28
  247. 242 00c2 0E94 0000 call NutNetBufFree
  248. 243 00c6 C0E0 ldi r28,0
  249. 244 00c8 D0E0 ldi r29,0
  250. 245 00ca 00C0 rjmp .L44
  251. 246 .L38:
  252. 247 00cc 8A81 ldd r24,Y+2
  253. 248 00ce 182B or r17,r24
  254. 249 00d0 1A83 std Y+2,r17
  255. 250 .L44:
  256. 251 00d2 CE01 movw r24,r28
  257. 252 /* epilogue start */
  258. 253 00d4 DF91 pop r29
  259. 254 00d6 CF91 pop r28
  260. 255 00d8 1F91 pop r17
  261. 256 00da 0F91 pop r16
  262. 257 00dc FF90 pop r15
  263. 258 00de EF90 pop r14
  264. 259 00e0 DF90 pop r13
  265. 260 00e2 CF90 pop r12
  266. 261 00e4 0895 ret
  267. 262 .size NutNetBufAlloc, .-NutNetBufAlloc
  268. 263 .section .text.NutNetBufClonePart,"ax",@progbits
  269. 264 .global NutNetBufClonePart
  270. 265 .type NutNetBufClonePart, @function
  271. 266 NutNetBufClonePart:
  272. 267 0000 AF92 push r10
  273. 268 0002 BF92 push r11
  274. 269 0004 CF92 push r12
  275. 270 0006 DF92 push r13
  276. 271 0008 EF92 push r14
  277. 272 000a FF92 push r15
  278. 273 000c 0F93 push r16
  279. 274 000e 1F93 push r17
  280. 275 0010 CF93 push r28
  281. 276 0012 DF93 push r29
  282. 277 /* prologue: function */
  283. 278 /* frame size = 0 */
  284. 279 /* stack size = 10 */
  285. 280 .L__stack_usage = 10
  286. 281 0014 8C01 movw r16,r24
  287. 282 0016 C62E mov r12,r22
  288. 283 0018 FC01 movw r30,r24
  289. 284 001a 8281 ldd r24,Z+2
  290. 285 001c 8770 andi r24,lo8(7)
  291. GAS LISTING /tmp/ccAfoP28.s page 6
  292. 286 001e 8730 cpi r24,lo8(7)
  293. 287 0020 01F4 brne .L51
  294. 288 0022 80EF ldi r24,lo8(-16)
  295. 289 0024 C82E mov r12,r24
  296. 290 .L51:
  297. 291 0026 65E1 ldi r22,lo8(21)
  298. 292 0028 70E0 ldi r23,0
  299. 293 002a 80E0 ldi r24,lo8(heapFreeList)
  300. 294 002c 90E0 ldi r25,hi8(heapFreeList)
  301. 295 002e 0E94 0000 call NutHeapRootAllocClear
  302. 296 0032 EC01 movw r28,r24
  303. 297 0034 0097 sbiw r24,0
  304. 298 0036 01F4 brne .+2
  305. 299 0038 00C0 rjmp .L71
  306. 300 003a F801 movw r30,r16
  307. 301 003c A580 ldd r10,Z+5
  308. 302 003e B680 ldd r11,Z+6
  309. 303 0040 A114 cp r10,__zero_reg__
  310. 304 0042 B104 cpc r11,__zero_reg__
  311. 305 0044 01F0 breq .L65
  312. 306 0046 4381 ldd r20,Z+3
  313. 307 0048 5481 ldd r21,Z+4
  314. 308 004a C4FE sbrs r12,4
  315. 309 004c 00C0 rjmp .L54
  316. 310 004e 4170 andi r20,1
  317. 311 0050 5527 clr r21
  318. 312 0052 B501 movw r22,r10
  319. 313 0054 0396 adiw r24,3
  320. 314 0056 0E94 0000 call NutNetBufAllocData
  321. 315 005a 7C01 movw r14,r24
  322. 316 005c 892B or r24,r25
  323. 317 005e 01F4 brne .L66
  324. 318 0060 F801 movw r30,r16
  325. 319 0062 6381 ldd r22,Z+3
  326. 320 0064 7481 ldd r23,Z+4
  327. 321 0066 A501 movw r20,r10
  328. 322 0068 8B81 ldd r24,Y+3
  329. 323 006a 9C81 ldd r25,Y+4
  330. 324 006c 0E94 0000 call memcpy
  331. 325 0070 8A81 ldd r24,Y+2
  332. 326 0072 8061 ori r24,lo8(16)
  333. 327 0074 8A83 std Y+2,r24
  334. 328 0076 00C0 rjmp .L66
  335. 329 .L54:
  336. 330 0078 5C83 std Y+4,r21
  337. 331 007a 4B83 std Y+3,r20
  338. 332 007c BE82 std Y+6,r11
  339. 333 007e AD82 std Y+5,r10
  340. 334 0080 E12C mov r14,__zero_reg__
  341. 335 0082 F12C mov r15,__zero_reg__
  342. 336 0084 DD24 clr r13
  343. 337 0086 D394 inc r13
  344. 338 0088 00C0 rjmp .L53
  345. 339 .L65:
  346. 340 008a E12C mov r14,__zero_reg__
  347. 341 008c F12C mov r15,__zero_reg__
  348. 342 .L66:
  349. GAS LISTING /tmp/ccAfoP28.s page 7
  350. 343 008e D12C mov r13,__zero_reg__
  351. 344 .L53:
  352. 345 0090 F801 movw r30,r16
  353. 346 0092 A184 ldd r10,Z+9
  354. 347 0094 B284 ldd r11,Z+10
  355. 348 0096 A114 cp r10,__zero_reg__
  356. 349 0098 B104 cpc r11,__zero_reg__
  357. 350 009a 01F0 breq .L55
  358. 351 009c E114 cp r14,__zero_reg__
  359. 352 009e F104 cpc r15,__zero_reg__
  360. 353 00a0 01F4 brne .L55
  361. 354 00a2 C5FE sbrs r12,5
  362. 355 00a4 00C0 rjmp .L56
  363. 356 00a6 40E0 ldi r20,0
  364. 357 00a8 50E0 ldi r21,0
  365. 358 00aa B501 movw r22,r10
  366. 359 00ac CE01 movw r24,r28
  367. 360 00ae 0796 adiw r24,7
  368. 361 00b0 0E94 0000 call NutNetBufAllocData
  369. 362 00b4 7C01 movw r14,r24
  370. 363 00b6 892B or r24,r25
  371. 364 00b8 01F4 brne .L55
  372. 365 00ba F801 movw r30,r16
  373. 366 00bc 6781 ldd r22,Z+7
  374. 367 00be 7085 ldd r23,Z+8
  375. 368 00c0 A501 movw r20,r10
  376. 369 00c2 8F81 ldd r24,Y+7
  377. 370 00c4 9885 ldd r25,Y+8
  378. 371 00c6 0E94 0000 call memcpy
  379. 372 00ca 8A81 ldd r24,Y+2
  380. 373 00cc 8062 ori r24,lo8(32)
  381. 374 00ce 8A83 std Y+2,r24
  382. 375 00d0 00C0 rjmp .L55
  383. 376 .L56:
  384. 377 00d2 F801 movw r30,r16
  385. 378 00d4 8781 ldd r24,Z+7
  386. 379 00d6 9085 ldd r25,Z+8
  387. 380 00d8 9887 std Y+8,r25
  388. 381 00da 8F83 std Y+7,r24
  389. 382 00dc BA86 std Y+10,r11
  390. 383 00de A986 std Y+9,r10
  391. 384 00e0 DD24 clr r13
  392. 385 00e2 D394 inc r13
  393. 386 .L55:
  394. 387 00e4 F801 movw r30,r16
  395. 388 00e6 A584 ldd r10,Z+13
  396. 389 00e8 B684 ldd r11,Z+14
  397. 390 00ea A114 cp r10,__zero_reg__
  398. 391 00ec B104 cpc r11,__zero_reg__
  399. 392 00ee 01F0 breq .L57
  400. 393 00f0 E114 cp r14,__zero_reg__
  401. 394 00f2 F104 cpc r15,__zero_reg__
  402. 395 00f4 01F4 brne .L57
  403. 396 00f6 C6FE sbrs r12,6
  404. 397 00f8 00C0 rjmp .L58
  405. 398 00fa 40E0 ldi r20,0
  406. 399 00fc 50E0 ldi r21,0
  407. GAS LISTING /tmp/ccAfoP28.s page 8
  408. 400 00fe B501 movw r22,r10
  409. 401 0100 CE01 movw r24,r28
  410. 402 0102 0B96 adiw r24,11
  411. 403 0104 0E94 0000 call NutNetBufAllocData
  412. 404 0108 7C01 movw r14,r24
  413. 405 010a 892B or r24,r25
  414. 406 010c 01F4 brne .L57
  415. 407 010e F801 movw r30,r16
  416. 408 0110 6385 ldd r22,Z+11
  417. 409 0112 7485 ldd r23,Z+12
  418. 410 0114 A501 movw r20,r10
  419. 411 0116 8B85 ldd r24,Y+11
  420. 412 0118 9C85 ldd r25,Y+12
  421. 413 011a 0E94 0000 call memcpy
  422. 414 011e 8A81 ldd r24,Y+2
  423. 415 0120 8064 ori r24,lo8(64)
  424. 416 0122 8A83 std Y+2,r24
  425. 417 0124 00C0 rjmp .L57
  426. 418 .L58:
  427. 419 0126 F801 movw r30,r16
  428. 420 0128 8385 ldd r24,Z+11
  429. 421 012a 9485 ldd r25,Z+12
  430. 422 012c 9C87 std Y+12,r25
  431. 423 012e 8B87 std Y+11,r24
  432. 424 0130 BE86 std Y+14,r11
  433. 425 0132 AD86 std Y+13,r10
  434. 426 0134 DD24 clr r13
  435. 427 0136 D394 inc r13
  436. 428 .L57:
  437. 429 0138 F801 movw r30,r16
  438. 430 013a A188 ldd r10,Z+17
  439. 431 013c B288 ldd r11,Z+18
  440. 432 013e A114 cp r10,__zero_reg__
  441. 433 0140 B104 cpc r11,__zero_reg__
  442. 434 0142 01F0 breq .L59
  443. 435 0144 EF28 or r14,r15
  444. 436 0146 01F4 brne .L64
  445. 437 0148 C7FE sbrs r12,7
  446. 438 014a 00C0 rjmp .L61
  447. 439 014c 40E0 ldi r20,0
  448. 440 014e 50E0 ldi r21,0
  449. 441 0150 B501 movw r22,r10
  450. 442 0152 CE01 movw r24,r28
  451. 443 0154 0F96 adiw r24,15
  452. 444 0156 0E94 0000 call NutNetBufAllocData
  453. 445 015a 892B or r24,r25
  454. 446 015c 01F4 brne .L64
  455. 447 015e F801 movw r30,r16
  456. 448 0160 6785 ldd r22,Z+15
  457. 449 0162 7089 ldd r23,Z+16
  458. 450 0164 A501 movw r20,r10
  459. 451 0166 8F85 ldd r24,Y+15
  460. 452 0168 9889 ldd r25,Y+16
  461. 453 016a 0E94 0000 call memcpy
  462. 454 016e 8A81 ldd r24,Y+2
  463. 455 0170 8068 ori r24,lo8(-128)
  464. 456 0172 8A83 std Y+2,r24
  465. GAS LISTING /tmp/ccAfoP28.s page 9
  466. 457 0174 00C0 rjmp .L62
  467. 458 .L61:
  468. 459 0176 F801 movw r30,r16
  469. 460 0178 8785 ldd r24,Z+15
  470. 461 017a 9089 ldd r25,Z+16
  471. 462 017c 988B std Y+16,r25
  472. 463 017e 8F87 std Y+15,r24
  473. 464 0180 BA8A std Y+18,r11
  474. 465 0182 A98A std Y+17,r10
  475. 466 0184 00C0 rjmp .L63
  476. 467 .L59:
  477. 468 0186 EF28 or r14,r15
  478. 469 0188 01F4 brne .L64
  479. 470 .L62:
  480. 471 018a DD20 tst r13
  481. 472 018c 01F0 breq .L71
  482. 473 .L63:
  483. 474 018e 1C8B std Y+20,r17
  484. 475 0190 0B8B std Y+19,r16
  485. 476 0192 F801 movw r30,r16
  486. 477 0194 8281 ldd r24,Z+2
  487. 478 0196 8F5F subi r24,lo8(-(1))
  488. 479 0198 8283 std Z+2,r24
  489. 480 019a 00C0 rjmp .L71
  490. 481 .L64:
  491. 482 019c CE01 movw r24,r28
  492. 483 019e 0E94 0000 call NutNetBufFree
  493. 484 01a2 C0E0 ldi r28,0
  494. 485 01a4 D0E0 ldi r29,0
  495. 486 .L71:
  496. 487 01a6 CE01 movw r24,r28
  497. 488 /* epilogue start */
  498. 489 01a8 DF91 pop r29
  499. 490 01aa CF91 pop r28
  500. 491 01ac 1F91 pop r17
  501. 492 01ae 0F91 pop r16
  502. 493 01b0 FF90 pop r15
  503. 494 01b2 EF90 pop r14
  504. 495 01b4 DF90 pop r13
  505. 496 01b6 CF90 pop r12
  506. 497 01b8 BF90 pop r11
  507. 498 01ba AF90 pop r10
  508. 499 01bc 0895 ret
  509. 500 .size NutNetBufClonePart, .-NutNetBufClonePart
  510. 501 .section .text.NutNetBufClone,"ax",@progbits
  511. 502 .global NutNetBufClone
  512. 503 .type NutNetBufClone, @function
  513. 504 NutNetBufClone:
  514. 505 /* prologue: function */
  515. 506 /* frame size = 0 */
  516. 507 /* stack size = 0 */
  517. 508 .L__stack_usage = 0
  518. 509 0000 60EF ldi r22,lo8(-16)
  519. 510 0002 0C94 0000 jmp NutNetBufClonePart
  520. 511 .size NutNetBufClone, .-NutNetBufClone
  521. 512 .section .text.NutNetBufCollect,"ax",@progbits
  522. 513 .global NutNetBufCollect
  523. GAS LISTING /tmp/ccAfoP28.s page 10
  524. 514 .type NutNetBufCollect, @function
  525. 515 NutNetBufCollect:
  526. 516 0000 6F92 push r6
  527. 517 0002 7F92 push r7
  528. 518 0004 8F92 push r8
  529. 519 0006 9F92 push r9
  530. 520 0008 AF92 push r10
  531. 521 000a BF92 push r11
  532. 522 000c CF92 push r12
  533. 523 000e DF92 push r13
  534. 524 0010 EF92 push r14
  535. 525 0012 FF92 push r15
  536. 526 0014 0F93 push r16
  537. 527 0016 1F93 push r17
  538. 528 0018 CF93 push r28
  539. 529 001a DF93 push r29
  540. 530 001c 00D0 rcall .
  541. 531 001e 1F92 push __zero_reg__
  542. 532 0020 CDB7 in r28,__SP_L__
  543. 533 0022 DEB7 in r29,__SP_H__
  544. 534 /* prologue: function */
  545. 535 /* frame size = 4 */
  546. 536 /* stack size = 18 */
  547. 537 .L__stack_usage = 18
  548. 538 0024 7C01 movw r14,r24
  549. 539 0026 5B01 movw r10,r22
  550. 540 0028 40E0 ldi r20,0
  551. 541 002a 50E0 ldi r21,0
  552. 542 002c CE01 movw r24,r28
  553. 543 002e 0196 adiw r24,1
  554. 544 0030 0E94 0000 call NutNetBufAllocData
  555. 545 0034 892B or r24,r25
  556. 546 0036 01F0 breq .+2
  557. 547 0038 00C0 rjmp .L88
  558. 548 003a 8980 ldd r8,Y+1
  559. 549 003c 9A80 ldd r9,Y+2
  560. 550 003e F701 movw r30,r14
  561. 551 0040 6785 ldd r22,Z+15
  562. 552 0042 7089 ldd r23,Z+16
  563. 553 0044 4189 ldd r20,Z+17
  564. 554 0046 5289 ldd r21,Z+18
  565. 555 0048 C401 movw r24,r8
  566. 556 004a 0E94 0000 call memcpy
  567. 557 004e F701 movw r30,r14
  568. 558 0050 8189 ldd r24,Z+17
  569. 559 0052 9289 ldd r25,Z+18
  570. 560 0054 9C83 std Y+4,r25
  571. 561 0056 8B83 std Y+3,r24
  572. 562 0058 0081 ld r16,Z
  573. 563 005a 1181 ldd r17,Z+1
  574. 564 005c C12C mov r12,__zero_reg__
  575. 565 005e D12C mov r13,__zero_reg__
  576. 566 .L83:
  577. 567 0060 0115 cp r16,__zero_reg__
  578. 568 0062 1105 cpc r17,__zero_reg__
  579. 569 0064 01F0 breq .L84
  580. 570 0066 8B81 ldd r24,Y+3
  581. GAS LISTING /tmp/ccAfoP28.s page 11
  582. 571 0068 9C81 ldd r25,Y+4
  583. 572 006a F801 movw r30,r16
  584. 573 006c 4189 ldd r20,Z+17
  585. 574 006e 5289 ldd r21,Z+18
  586. 575 0070 9C01 movw r18,r24
  587. 576 0072 240F add r18,r20
  588. 577 0074 351F adc r19,r21
  589. 578 0076 A216 cp r10,r18
  590. 579 0078 B306 cpc r11,r19
  591. 580 007a 04F0 brlt .L84
  592. 581 007c F801 movw r30,r16
  593. 582 007e 6080 ld r6,Z
  594. 583 0080 7180 ldd r7,Z+1
  595. 584 0082 6785 ldd r22,Z+15
  596. 585 0084 7089 ldd r23,Z+16
  597. 586 0086 880D add r24,r8
  598. 587 0088 991D adc r25,r9
  599. 588 008a 0E94 0000 call memcpy
  600. 589 008e 2B81 ldd r18,Y+3
  601. 590 0090 3C81 ldd r19,Y+4
  602. 591 0092 F801 movw r30,r16
  603. 592 0094 8189 ldd r24,Z+17
  604. 593 0096 9289 ldd r25,Z+18
  605. 594 0098 820F add r24,r18
  606. 595 009a 931F adc r25,r19
  607. 596 009c 9C83 std Y+4,r25
  608. 597 009e 8B83 std Y+3,r24
  609. 598 00a0 C801 movw r24,r16
  610. 599 00a2 0E94 0000 call NutNetBufFree
  611. 600 00a6 FFEF ldi r31,-1
  612. 601 00a8 CF1A sub r12,r31
  613. 602 00aa DF0A sbc r13,r31
  614. 603 00ac 8301 movw r16,r6
  615. 604 00ae 00C0 rjmp .L83
  616. 605 .L84:
  617. 606 00b0 F701 movw r30,r14
  618. 607 00b2 1183 std Z+1,r17
  619. 608 00b4 0083 st Z,r16
  620. 609 00b6 8281 ldd r24,Z+2
  621. 610 00b8 87FF sbrs r24,7
  622. 611 00ba 00C0 rjmp .L86
  623. 612 00bc 6785 ldd r22,Z+15
  624. 613 00be 7089 ldd r23,Z+16
  625. 614 00c0 80E0 ldi r24,lo8(heapFreeList)
  626. 615 00c2 90E0 ldi r25,hi8(heapFreeList)
  627. 616 00c4 0E94 0000 call NutHeapRootFree
  628. 617 00c8 00C0 rjmp .L87
  629. 618 .L86:
  630. 619 00ca 8068 ori r24,lo8(-128)
  631. 620 00cc F701 movw r30,r14
  632. 621 00ce 8283 std Z+2,r24
  633. 622 .L87:
  634. 623 00d0 8981 ldd r24,Y+1
  635. 624 00d2 9A81 ldd r25,Y+2
  636. 625 00d4 F701 movw r30,r14
  637. 626 00d6 908B std Z+16,r25
  638. 627 00d8 8787 std Z+15,r24
  639. GAS LISTING /tmp/ccAfoP28.s page 12
  640. 628 00da 8B81 ldd r24,Y+3
  641. 629 00dc 9C81 ldd r25,Y+4
  642. 630 00de 928B std Z+18,r25
  643. 631 00e0 818B std Z+17,r24
  644. 632 00e2 00C0 rjmp .L82
  645. 633 .L88:
  646. 634 00e4 C12C mov r12,__zero_reg__
  647. 635 00e6 D12C mov r13,__zero_reg__
  648. 636 .L82:
  649. 637 00e8 C601 movw r24,r12
  650. 638 /* epilogue start */
  651. 639 00ea 0F90 pop __tmp_reg__
  652. 640 00ec 0F90 pop __tmp_reg__
  653. 641 00ee 0F90 pop __tmp_reg__
  654. 642 00f0 0F90 pop __tmp_reg__
  655. 643 00f2 DF91 pop r29
  656. 644 00f4 CF91 pop r28
  657. 645 00f6 1F91 pop r17
  658. 646 00f8 0F91 pop r16
  659. 647 00fa FF90 pop r15
  660. 648 00fc EF90 pop r14
  661. 649 00fe DF90 pop r13
  662. 650 0100 CF90 pop r12
  663. 651 0102 BF90 pop r11
  664. 652 0104 AF90 pop r10
  665. 653 0106 9F90 pop r9
  666. 654 0108 8F90 pop r8
  667. 655 010a 7F90 pop r7
  668. 656 010c 6F90 pop r6
  669. 657 010e 0895 ret
  670. 658 .size NutNetBufCollect, .-NutNetBufCollect
  671. 659 .ident "GCC: (GNU) 5.3.0"
  672. GAS LISTING /tmp/ccAfoP28.s page 13
  673. DEFINED SYMBOLS
  674. *ABS*:0000000000000000 netbuf.c
  675. /tmp/ccAfoP28.s:2 *ABS*:000000000000003e __SP_H__
  676. /tmp/ccAfoP28.s:3 *ABS*:000000000000003d __SP_L__
  677. /tmp/ccAfoP28.s:4 *ABS*:000000000000003f __SREG__
  678. /tmp/ccAfoP28.s:5 *ABS*:000000000000003b __RAMPZ__
  679. /tmp/ccAfoP28.s:6 *ABS*:0000000000000000 __tmp_reg__
  680. /tmp/ccAfoP28.s:7 *ABS*:0000000000000001 __zero_reg__
  681. /tmp/ccAfoP28.s:10 .text.NutNetBufAllocData:0000000000000000 NutNetBufAllocData
  682. /tmp/ccAfoP28.s:60 .text.NutNetBufFree:0000000000000000 NutNetBufFree
  683. /tmp/ccAfoP28.s:132 .text.NutNetBufAlloc:0000000000000000 NutNetBufAlloc
  684. /tmp/ccAfoP28.s:266 .text.NutNetBufClonePart:0000000000000000 NutNetBufClonePart
  685. /tmp/ccAfoP28.s:504 .text.NutNetBufClone:0000000000000000 NutNetBufClone
  686. /tmp/ccAfoP28.s:515 .text.NutNetBufCollect:0000000000000000 NutNetBufCollect
  687. UNDEFINED SYMBOLS
  688. heapFreeList
  689. NutHeapRootAlloc
  690. NutHeapRootFree
  691. NutHeapRootAllocClear
  692. memcpy