dm9000.lst 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949
  1. GAS LISTING /tmp/ccUWh7qo.s page 1
  2. 1 .file "dm9000.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.DmInit,"ax",@progbits
  10. 9 .global DmInit
  11. 10 .type DmInit, @function
  12. 11 DmInit:
  13. 12 /* prologue: function */
  14. 13 /* frame size = 0 */
  15. 14 /* stack size = 0 */
  16. 15 .L__stack_usage = 0
  17. 16 0000 8FEF ldi r24,lo8(-1)
  18. 17 0002 9FEF ldi r25,lo8(-1)
  19. 18 0004 0895 ret
  20. 19 .size DmInit, .-DmInit
  21. 20 .section .text.DmOutput,"ax",@progbits
  22. 21 .global DmOutput
  23. 22 .type DmOutput, @function
  24. 23 DmOutput:
  25. 24 0000 EF92 push r14
  26. 25 0002 FF92 push r15
  27. 26 0004 0F93 push r16
  28. 27 0006 1F93 push r17
  29. 28 0008 CF93 push r28
  30. 29 000a DF93 push r29
  31. 30 /* prologue: function */
  32. 31 /* frame size = 0 */
  33. 32 /* stack size = 6 */
  34. 33 .L__stack_usage = 6
  35. 34 000c FB01 movw r30,r22
  36. 35 000e 4185 ldd r20,Z+9
  37. 36 0010 5285 ldd r21,Z+10
  38. 37 0012 2585 ldd r18,Z+13
  39. 38 0014 3685 ldd r19,Z+14
  40. 39 0016 240F add r18,r20
  41. 40 0018 351F adc r19,r21
  42. 41 001a 4189 ldd r20,Z+17
  43. 42 001c 5289 ldd r21,Z+18
  44. 43 001e 240F add r18,r20
  45. 44 0020 351F adc r19,r21
  46. 45 0022 DC01 movw r26,r24
  47. 46 0024 1F96 adiw r26,15
  48. 47 0026 ED91 ld r30,X+
  49. 48 0028 FC91 ld r31,X
  50. 49 002a 5097 sbiw r26,15+1
  51. 50 002c 4789 ldd r20,Z+23
  52. 51 002e 508D ldd r21,Z+24
  53. 52 0030 4217 cp r20,r18
  54. 53 0032 5307 cpc r21,r19
  55. 54 0034 00F0 brlo .L3
  56. 55 0036 5196 adiw r26,17
  57. 56 0038 CD91 ld r28,X+
  58. 57 003a DC91 ld r29,X
  59. GAS LISTING /tmp/ccUWh7qo.s page 2
  60. 58 003c 5297 sbiw r26,17+1
  61. 59 003e 8E01 movw r16,r28
  62. 60 0040 0C5F subi r16,-4
  63. 61 0042 1F4F sbci r17,-1
  64. 62 0044 7E01 movw r14,r28
  65. 63 0046 B2E0 ldi r27,2
  66. 64 0048 EB0E add r14,r27
  67. 65 004a F11C adc r15,__zero_reg__
  68. 66 .L4:
  69. 67 004c 8A85 ldd r24,Y+10
  70. 68 004e 9B85 ldd r25,Y+11
  71. 69 0050 892B or r24,r25
  72. 70 0052 01F4 brne .L6
  73. 71 0054 4091 0000 lds r20,mx_wait.2863
  74. 72 0058 5091 0000 lds r21,mx_wait.2863+1
  75. 73 005c 6091 0000 lds r22,mx_wait.2863+2
  76. 74 0060 7091 0000 lds r23,mx_wait.2863+3
  77. 75 0064 C801 movw r24,r16
  78. 76 0066 0E94 0000 call NutEventWait
  79. 77 006a 892B or r24,r25
  80. 78 006c 01F4 brne .L6
  81. 79 006e 8E81 ldd r24,Y+6
  82. 80 0070 9F81 ldd r25,Y+7
  83. 81 0072 0297 sbiw r24,2
  84. 82 0074 04F0 brlt .L7
  85. 83 0076 44EF ldi r20,lo8(-12)
  86. 84 0078 51E0 ldi r21,lo8(1)
  87. 85 007a 60E0 ldi r22,0
  88. 86 007c 70E0 ldi r23,0
  89. 87 007e C701 movw r24,r14
  90. 88 0080 0E94 0000 call NutEventWait
  91. 89 0084 892B or r24,r25
  92. 90 0086 01F0 breq .L7
  93. 91 0088 C801 movw r24,r16
  94. 92 008a 0E94 0000 call NutEventPost
  95. 93 008e 00C0 rjmp .L6
  96. 94 .L7:
  97. 95 0090 C801 movw r24,r16
  98. 96 0092 0E94 0000 call NutEventPost
  99. 97 0096 00C0 rjmp .L4
  100. 98 .L6:
  101. 99 0098 84EF ldi r24,lo8(-12)
  102. 100 009a 91E0 ldi r25,lo8(1)
  103. 101 009c A0E0 ldi r26,0
  104. 102 009e B0E0 ldi r27,0
  105. 103 00a0 8093 0000 sts mx_wait.2863,r24
  106. 104 00a4 9093 0000 sts mx_wait.2863+1,r25
  107. 105 00a8 A093 0000 sts mx_wait.2863+2,r26
  108. 106 00ac B093 0000 sts mx_wait.2863+3,r27
  109. 107 .L3:
  110. 108 00b0 8FEF ldi r24,lo8(-1)
  111. 109 00b2 9FEF ldi r25,lo8(-1)
  112. 110 /* epilogue start */
  113. 111 00b4 DF91 pop r29
  114. 112 00b6 CF91 pop r28
  115. 113 00b8 1F91 pop r17
  116. 114 00ba 0F91 pop r16
  117. GAS LISTING /tmp/ccUWh7qo.s page 3
  118. 115 00bc FF90 pop r15
  119. 116 00be EF90 pop r14
  120. 117 00c0 0895 ret
  121. 118 .size DmOutput, .-DmOutput
  122. 119 .section .text.NicStart.isra.4,"ax",@progbits
  123. 120 .type NicStart.isra.4, @function
  124. 121 NicStart.isra.4:
  125. 122 0000 0F93 push r16
  126. 123 0002 1F93 push r17
  127. 124 0004 CF93 push r28
  128. 125 0006 DF93 push r29
  129. 126 0008 00D0 rcall .
  130. 127 000a 1F92 push __zero_reg__
  131. 128 000c CDB7 in r28,__SP_L__
  132. 129 000e DEB7 in r29,__SP_H__
  133. 130 /* prologue: function */
  134. 131 /* frame size = 4 */
  135. 132 /* stack size = 8 */
  136. 133 .L__stack_usage = 8
  137. 134 0010 8C01 movw r16,r24
  138. 135 0012 85E0 ldi r24,lo8(5)
  139. 136 0014 0E94 0000 call NutDelay
  140. 137 0018 85E0 ldi r24,lo8(5)
  141. 138 001a 0E94 0000 call NutDelay
  142. 139 001e 85E0 ldi r24,lo8(5)
  143. 140 0020 0E94 0000 call NutDelay
  144. 141 0024 F801 movw r30,r16
  145. 142 0026 8589 ldd r24,Z+21
  146. 143 0028 8068 ori r24,lo8(-128)
  147. 144 002a 858B std Z+21,r24
  148. 145 002c 81E0 ldi r24,lo8(1)
  149. 146 002e 90E0 ldi r25,0
  150. 147 0030 A0E0 ldi r26,0
  151. 148 0032 B0E0 ldi r27,0
  152. 149 0034 8983 std Y+1,r24
  153. 150 0036 9A83 std Y+2,r25
  154. 151 0038 AB83 std Y+3,r26
  155. 152 003a BC83 std Y+4,r27
  156. 153 003c BE01 movw r22,r28
  157. 154 003e 6F5F subi r22,-1
  158. 155 0040 7F4F sbci r23,-1
  159. 156 0042 88E0 ldi r24,lo8(8)
  160. 157 0044 90E0 ldi r25,0
  161. 158 0046 0E94 0000 call NutPhyCtl
  162. 159 004a 0AE1 ldi r16,lo8(26)
  163. 160 004c 10E0 ldi r17,0
  164. 161 .L17:
  165. 162 004e BE01 movw r22,r28
  166. 163 0050 6F5F subi r22,-1
  167. 164 0052 7F4F sbci r23,-1
  168. 165 0054 81E0 ldi r24,lo8(1)
  169. 166 0056 91E0 ldi r25,lo8(1)
  170. 167 0058 0E94 0000 call NutPhyCtl
  171. 168 005c 8981 ldd r24,Y+1
  172. 169 005e 9A81 ldd r25,Y+2
  173. 170 0060 AB81 ldd r26,Y+3
  174. 171 0062 BC81 ldd r27,Y+4
  175. GAS LISTING /tmp/ccUWh7qo.s page 4
  176. 172 0064 8172 andi r24,33
  177. 173 0066 9927 clr r25
  178. 174 0068 AA27 clr r26
  179. 175 006a BB27 clr r27
  180. 176 006c 8197 sbiw r24,33
  181. 177 006e A105 cpc r26,__zero_reg__
  182. 178 0070 B105 cpc r27,__zero_reg__
  183. 179 0072 01F0 breq .L18
  184. 180 0074 0150 subi r16,1
  185. 181 0076 1109 sbc r17,__zero_reg__
  186. 182 0078 01F0 breq .L19
  187. 183 007a 68EC ldi r22,lo8(-56)
  188. 184 007c 70E0 ldi r23,0
  189. 185 007e 80E0 ldi r24,0
  190. 186 0080 90E0 ldi r25,0
  191. 187 0082 0E94 0000 call NutSleep
  192. 188 0086 00C0 rjmp .L17
  193. 189 .L18:
  194. 190 0088 80E0 ldi r24,0
  195. 191 008a 90E0 ldi r25,0
  196. 192 008c 00C0 rjmp .L16
  197. 193 .L19:
  198. 194 008e 8FEF ldi r24,lo8(-1)
  199. 195 0090 9FEF ldi r25,lo8(-1)
  200. 196 .L16:
  201. 197 /* epilogue start */
  202. 198 0092 0F90 pop __tmp_reg__
  203. 199 0094 0F90 pop __tmp_reg__
  204. 200 0096 0F90 pop __tmp_reg__
  205. 201 0098 0F90 pop __tmp_reg__
  206. 202 009a DF91 pop r29
  207. 203 009c CF91 pop r28
  208. 204 009e 1F91 pop r17
  209. 205 00a0 0F91 pop r16
  210. 206 00a2 0895 ret
  211. 207 .size NicStart.isra.4, .-NicStart.isra.4
  212. 208 .section .text.ether_crc32_le.constprop.5,"ax",@progbits
  213. 209 .type ether_crc32_le.constprop.5, @function
  214. 210 ether_crc32_le.constprop.5:
  215. 211 0000 CF92 push r12
  216. 212 0002 DF92 push r13
  217. 213 0004 EF92 push r14
  218. 214 0006 FF92 push r15
  219. 215 /* prologue: function */
  220. 216 /* frame size = 0 */
  221. 217 /* stack size = 4 */
  222. 218 .L__stack_usage = 4
  223. 219 0008 FC01 movw r30,r24
  224. 220 000a 9C01 movw r18,r24
  225. 221 000c 2A5F subi r18,-6
  226. 222 000e 3F4F sbci r19,-1
  227. 223 0010 6FEF ldi r22,lo8(-1)
  228. 224 0012 7FEF ldi r23,lo8(-1)
  229. 225 0014 CB01 movw r24,r22
  230. 226 .L21:
  231. 227 0016 4191 ld r20,Z+
  232. 228 0018 DC01 movw r26,r24
  233. GAS LISTING /tmp/ccUWh7qo.s page 5
  234. 229 001a CB01 movw r24,r22
  235. 230 001c 8427 eor r24,r20
  236. 231 001e 6C01 movw r12,r24
  237. 232 0020 7D01 movw r14,r26
  238. 233 0022 44E0 ldi r20,4
  239. 234 1:
  240. 235 0024 F694 lsr r15
  241. 236 0026 E794 ror r14
  242. 237 0028 D794 ror r13
  243. 238 002a C794 ror r12
  244. 239 002c 4A95 dec r20
  245. 240 002e 01F4 brne 1b
  246. 241 0030 8F70 andi r24,15
  247. 242 0032 9927 clr r25
  248. 243 0034 AA27 clr r26
  249. 244 0036 BB27 clr r27
  250. 245 0038 BC01 movw r22,r24
  251. 246 003a 660F lsl r22
  252. 247 003c 771F rol r23
  253. 248 003e 660F lsl r22
  254. 249 0040 771F rol r23
  255. 250 0042 DB01 movw r26,r22
  256. 251 0044 A050 subi r26,lo8(-(crctab))
  257. 252 0046 B040 sbci r27,hi8(-(crctab))
  258. 253 0048 8D91 ld r24,X+
  259. 254 004a 9D91 ld r25,X+
  260. 255 004c 0D90 ld __tmp_reg__,X+
  261. 256 004e BC91 ld r27,X
  262. 257 0050 A02D mov r26,__tmp_reg__
  263. 258 0052 8C25 eor r24,r12
  264. 259 0054 9D25 eor r25,r13
  265. 260 0056 AE25 eor r26,r14
  266. 261 0058 BF25 eor r27,r15
  267. 262 005a 6C01 movw r12,r24
  268. 263 005c 7D01 movw r14,r26
  269. 264 005e 64E0 ldi r22,4
  270. 265 1:
  271. 266 0060 F694 lsr r15
  272. 267 0062 E794 ror r14
  273. 268 0064 D794 ror r13
  274. 269 0066 C794 ror r12
  275. 270 0068 6A95 dec r22
  276. 271 006a 01F4 brne 1b
  277. 272 006c 8F70 andi r24,15
  278. 273 006e 9927 clr r25
  279. 274 0070 AA27 clr r26
  280. 275 0072 BB27 clr r27
  281. 276 0074 880F lsl r24
  282. 277 0076 991F rol r25
  283. 278 0078 880F lsl r24
  284. 279 007a 991F rol r25
  285. 280 007c DC01 movw r26,r24
  286. 281 007e A050 subi r26,lo8(-(crctab))
  287. 282 0080 B040 sbci r27,hi8(-(crctab))
  288. 283 0082 4D91 ld r20,X+
  289. 284 0084 5D91 ld r21,X+
  290. 285 0086 6D91 ld r22,X+
  291. GAS LISTING /tmp/ccUWh7qo.s page 6
  292. 286 0088 7C91 ld r23,X
  293. 287 008a CB01 movw r24,r22
  294. 288 008c BA01 movw r22,r20
  295. 289 008e 6C25 eor r22,r12
  296. 290 0090 7D25 eor r23,r13
  297. 291 0092 8E25 eor r24,r14
  298. 292 0094 9F25 eor r25,r15
  299. 293 0096 2E17 cp r18,r30
  300. 294 0098 3F07 cpc r19,r31
  301. 295 009a 01F0 breq .+2
  302. 296 009c 00C0 rjmp .L21
  303. 297 /* epilogue start */
  304. 298 009e FF90 pop r15
  305. 299 00a0 EF90 pop r14
  306. 300 00a2 DF90 pop r13
  307. 301 00a4 CF90 pop r12
  308. 302 00a6 0895 ret
  309. 303 .size ether_crc32_le.constprop.5, .-ether_crc32_le.constprop.5
  310. 304 .section .text.DmIOCtl,"ax",@progbits
  311. 305 .type DmIOCtl, @function
  312. 306 DmIOCtl:
  313. 307 0000 4F92 push r4
  314. 308 0002 5F92 push r5
  315. 309 0004 6F92 push r6
  316. 310 0006 7F92 push r7
  317. 311 0008 8F92 push r8
  318. 312 000a 9F92 push r9
  319. 313 000c AF92 push r10
  320. 314 000e BF92 push r11
  321. 315 0010 CF92 push r12
  322. 316 0012 DF92 push r13
  323. 317 0014 EF92 push r14
  324. 318 0016 FF92 push r15
  325. 319 0018 0F93 push r16
  326. 320 001a 1F93 push r17
  327. 321 001c CF93 push r28
  328. 322 001e DF93 push r29
  329. 323 0020 00D0 rcall .
  330. 324 0022 00D0 rcall .
  331. 325 0024 CDB7 in r28,__SP_L__
  332. 326 0026 DEB7 in r29,__SP_H__
  333. 327 /* prologue: function */
  334. 328 /* frame size = 6 */
  335. 329 /* stack size = 22 */
  336. 330 .L__stack_usage = 22
  337. 331 0028 6A01 movw r12,r20
  338. 332 002a DC01 movw r26,r24
  339. 333 002c 1F96 adiw r26,15
  340. 334 002e 0D91 ld r16,X+
  341. 335 0030 1C91 ld r17,X
  342. 336 0032 5097 sbiw r26,15+1
  343. 337 0034 5196 adiw r26,17
  344. 338 0036 ED90 ld r14,X+
  345. 339 0038 FC90 ld r15,X
  346. 340 003a 5297 sbiw r26,17+1
  347. 341 003c 6730 cpi r22,7
  348. 342 003e B0E1 ldi r27,16
  349. GAS LISTING /tmp/ccUWh7qo.s page 7
  350. 343 0040 7B07 cpc r23,r27
  351. 344 0042 01F0 breq .L25
  352. 345 0044 6830 cpi r22,8
  353. 346 0046 E0E1 ldi r30,16
  354. 347 0048 7E07 cpc r23,r30
  355. 348 004a 01F4 brne .+2
  356. 349 004c 00C0 rjmp .L26
  357. 350 004e 6530 cpi r22,5
  358. 351 0050 7041 sbci r23,16
  359. 352 0052 01F0 breq .+2
  360. 353 0054 00C0 rjmp .L46
  361. 354 0056 D801 movw r26,r16
  362. 355 0058 1596 adiw r26,5
  363. 356 005a 86E0 ldi r24,lo8(6)
  364. 357 005c FA01 movw r30,r20
  365. 358 0:
  366. 359 005e 0190 ld r0,Z+
  367. 360 0060 0D92 st X+,r0
  368. 361 0062 8A95 dec r24
  369. 362 0064 01F4 brne 0b
  370. 363 0066 00C0 rjmp .L50
  371. 364 .L25:
  372. 365 0068 DA01 movw r26,r20
  373. 366 006a 8D90 ld r8,X+
  374. 367 006c 9D90 ld r9,X+
  375. 368 006e AD90 ld r10,X+
  376. 369 0070 BC90 ld r11,X
  377. 370 0072 D801 movw r26,r16
  378. 371 0074 5D96 adiw r26,29
  379. 372 0076 ED91 ld r30,X+
  380. 373 0078 FC91 ld r31,X
  381. 374 007a 5E97 sbiw r26,29+1
  382. 375 .L28:
  383. 376 007c 3097 sbiw r30,0
  384. 377 007e 01F0 breq .L51
  385. 378 0080 4085 ldd r20,Z+8
  386. 379 0082 5185 ldd r21,Z+9
  387. 380 0084 6285 ldd r22,Z+10
  388. 381 0086 7385 ldd r23,Z+11
  389. 382 0088 8416 cp r8,r20
  390. 383 008a 9506 cpc r9,r21
  391. 384 008c A606 cpc r10,r22
  392. 385 008e B706 cpc r11,r23
  393. 386 0090 01F4 brne .+2
  394. 387 0092 00C0 rjmp .L46
  395. 388 0094 0190 ld __tmp_reg__,Z+
  396. 389 0096 F081 ld r31,Z
  397. 390 0098 E02D mov r30,__tmp_reg__
  398. 391 009a 00C0 rjmp .L28
  399. 392 .L51:
  400. 393 009c 81E0 ldi r24,lo8(1)
  401. 394 009e 8983 std Y+1,r24
  402. 395 00a0 1A82 std Y+2,__zero_reg__
  403. 396 00a2 8EE5 ldi r24,lo8(94)
  404. 397 00a4 8B83 std Y+3,r24
  405. 398 00a6 F601 movw r30,r12
  406. 399 00a8 8181 ldd r24,Z+1
  407. GAS LISTING /tmp/ccUWh7qo.s page 8
  408. 400 00aa 8F77 andi r24,lo8(127)
  409. 401 00ac 8C83 std Y+4,r24
  410. 402 00ae 8281 ldd r24,Z+2
  411. 403 00b0 8D83 std Y+5,r24
  412. 404 00b2 8381 ldd r24,Z+3
  413. 405 00b4 8E83 std Y+6,r24
  414. 406 00b6 8CE0 ldi r24,lo8(12)
  415. 407 00b8 90E0 ldi r25,0
  416. 408 00ba 0E94 0000 call malloc
  417. 409 00be 5C01 movw r10,r24
  418. 410 00c0 892B or r24,r25
  419. 411 00c2 01F4 brne .+2
  420. 412 00c4 00C0 rjmp .L46
  421. 413 00c6 CE01 movw r24,r28
  422. 414 00c8 0196 adiw r24,1
  423. 415 00ca 0E94 0000 call ether_crc32_le.constprop.5
  424. 416 00ce DC01 movw r26,r24
  425. 417 00d0 CB01 movw r24,r22
  426. 418 00d2 8F73 andi r24,63
  427. 419 00d4 9927 clr r25
  428. 420 00d6 AA27 clr r26
  429. 421 00d8 BB27 clr r27
  430. 422 00da 2C01 movw r4,r24
  431. 423 00dc 3D01 movw r6,r26
  432. 424 00de 43E0 ldi r20,3
  433. 425 1:
  434. 426 00e0 7694 lsr r7
  435. 427 00e2 6794 ror r6
  436. 428 00e4 5794 ror r5
  437. 429 00e6 4794 ror r4
  438. 430 00e8 4A95 dec r20
  439. 431 00ea 01F4 brne 1b
  440. 432 00ec F701 movw r30,r14
  441. 433 00ee E40D add r30,r4
  442. 434 00f0 F51D adc r31,r5
  443. 435 00f2 BC01 movw r22,r24
  444. 436 00f4 6770 andi r22,7
  445. 437 00f6 7727 clr r23
  446. 438 00f8 81E0 ldi r24,lo8(1)
  447. 439 00fa 90E0 ldi r25,0
  448. 440 00fc 00C0 rjmp 2f
  449. 441 1:
  450. 442 00fe 880F lsl r24
  451. 443 2:
  452. 444 0100 6A95 dec r22
  453. 445 0102 02F4 brpl 1b
  454. 446 0104 9685 ldd r25,Z+14
  455. 447 0106 892B or r24,r25
  456. 448 0108 8687 std Z+14,r24
  457. 449 010a 86E0 ldi r24,lo8(6)
  458. 450 010c FE01 movw r30,r28
  459. 451 010e 3196 adiw r30,1
  460. 452 0110 D501 movw r26,r10
  461. 453 0112 1296 adiw r26,2
  462. 454 0:
  463. 455 0114 0190 ld r0,Z+
  464. 456 0116 0D92 st X+,r0
  465. GAS LISTING /tmp/ccUWh7qo.s page 9
  466. 457 0118 8A95 dec r24
  467. 458 011a 01F4 brne 0b
  468. 459 011c F601 movw r30,r12
  469. 460 011e 8081 ld r24,Z
  470. 461 0120 9181 ldd r25,Z+1
  471. 462 0122 A281 ldd r26,Z+2
  472. 463 0124 B381 ldd r27,Z+3
  473. 464 0126 F501 movw r30,r10
  474. 465 0128 8087 std Z+8,r24
  475. 466 012a 9187 std Z+9,r25
  476. 467 012c A287 std Z+10,r26
  477. 468 012e B387 std Z+11,r27
  478. 469 0130 D801 movw r26,r16
  479. 470 0132 5D96 adiw r26,29
  480. 471 0134 8D91 ld r24,X+
  481. 472 0136 9C91 ld r25,X
  482. 473 0138 5E97 sbiw r26,29+1
  483. 474 013a 9183 std Z+1,r25
  484. 475 013c 8083 st Z,r24
  485. 476 013e 5E96 adiw r26,29+1
  486. 477 0140 BC92 st X,r11
  487. 478 0142 AE92 st -X,r10
  488. 479 0144 5D97 sbiw r26,29
  489. 480 0146 F701 movw r30,r14
  490. 481 0148 8589 ldd r24,Z+21
  491. 482 014a 8068 ori r24,lo8(-128)
  492. 483 014c 858B std Z+21,r24
  493. 484 014e 00C0 rjmp .L50
  494. 485 .L26:
  495. 486 0150 DA01 movw r26,r20
  496. 487 0152 8D90 ld r8,X+
  497. 488 0154 9D90 ld r9,X+
  498. 489 0156 AD90 ld r10,X+
  499. 490 0158 BC90 ld r11,X
  500. 491 015a F801 movw r30,r16
  501. 492 015c 458D ldd r20,Z+29
  502. 493 015e 568D ldd r21,Z+30
  503. 494 0160 FA01 movw r30,r20
  504. 495 0162 CA01 movw r24,r20
  505. 496 .L32:
  506. 497 0164 0097 sbiw r24,0
  507. 498 0166 01F0 breq .L46
  508. 499 0168 DC01 movw r26,r24
  509. 500 016a 1896 adiw r26,8
  510. 501 016c 4D90 ld r4,X+
  511. 502 016e 5D90 ld r5,X+
  512. 503 0170 6D90 ld r6,X+
  513. 504 0172 7C90 ld r7,X
  514. 505 0174 1B97 sbiw r26,8+3
  515. 506 0176 2C91 ld r18,X
  516. 507 0178 1196 adiw r26,1
  517. 508 017a 3C91 ld r19,X
  518. 509 017c 8414 cp r8,r4
  519. 510 017e 9504 cpc r9,r5
  520. 511 0180 A604 cpc r10,r6
  521. 512 0182 B704 cpc r11,r7
  522. 513 0184 01F0 breq .L33
  523. GAS LISTING /tmp/ccUWh7qo.s page 10
  524. 514 0186 FC01 movw r30,r24
  525. 515 0188 C901 movw r24,r18
  526. 516 018a 00C0 rjmp .L32
  527. 517 .L52:
  528. 518 018c D701 movw r26,r14
  529. 519 018e 5596 adiw r26,21
  530. 520 0190 8C91 ld r24,X
  531. 521 0192 5597 sbiw r26,21
  532. 522 0194 8068 ori r24,lo8(-128)
  533. 523 0196 5596 adiw r26,21
  534. 524 0198 8C93 st X,r24
  535. 525 .L50:
  536. 526 019a 80E0 ldi r24,0
  537. 527 019c 90E0 ldi r25,0
  538. 528 019e 00C0 rjmp .L47
  539. 529 .L46:
  540. 530 01a0 8FEF ldi r24,lo8(-1)
  541. 531 01a2 9FEF ldi r25,lo8(-1)
  542. 532 01a4 00C0 rjmp .L47
  543. 533 .L33:
  544. 534 01a6 8417 cp r24,r20
  545. 535 01a8 9507 cpc r25,r21
  546. 536 01aa 01F4 brne .L48
  547. 537 01ac F801 movw r30,r16
  548. 538 01ae 258F std Z+29,r18
  549. 539 01b0 368F std Z+30,r19
  550. 540 01b2 00C0 rjmp .L49
  551. 541 .L48:
  552. 542 01b4 2083 st Z,r18
  553. 543 01b6 3183 std Z+1,r19
  554. 544 .L49:
  555. 545 01b8 0E94 0000 call free
  556. 546 01bc F701 movw r30,r14
  557. 547 01be 3E96 adiw r30,14
  558. 548 01c0 C701 movw r24,r14
  559. 549 01c2 4596 adiw r24,21
  560. 550 .L36:
  561. 551 01c4 1192 st Z+,__zero_reg__
  562. 552 01c6 8E17 cp r24,r30
  563. 553 01c8 9F07 cpc r25,r31
  564. 554 01ca 01F4 brne .L36
  565. 555 01cc D801 movw r26,r16
  566. 556 01ce 5D96 adiw r26,29
  567. 557 01d0 0D91 ld r16,X+
  568. 558 01d2 1C91 ld r17,X
  569. 559 01d4 5E97 sbiw r26,29+1
  570. 560 01d6 CC24 clr r12
  571. 561 01d8 C394 inc r12
  572. 562 01da D12C mov r13,__zero_reg__
  573. 563 .L37:
  574. 564 01dc 0115 cp r16,__zero_reg__
  575. 565 01de 1105 cpc r17,__zero_reg__
  576. 566 01e0 01F0 breq .L52
  577. 567 01e2 C801 movw r24,r16
  578. 568 01e4 0296 adiw r24,2
  579. 569 01e6 0E94 0000 call ether_crc32_le.constprop.5
  580. 570 01ea DC01 movw r26,r24
  581. GAS LISTING /tmp/ccUWh7qo.s page 11
  582. 571 01ec CB01 movw r24,r22
  583. 572 01ee 8F73 andi r24,63
  584. 573 01f0 9927 clr r25
  585. 574 01f2 AA27 clr r26
  586. 575 01f4 BB27 clr r27
  587. 576 01f6 4C01 movw r8,r24
  588. 577 01f8 5D01 movw r10,r26
  589. 578 01fa 23E0 ldi r18,3
  590. 579 1:
  591. 580 01fc B694 lsr r11
  592. 581 01fe A794 ror r10
  593. 582 0200 9794 ror r9
  594. 583 0202 8794 ror r8
  595. 584 0204 2A95 dec r18
  596. 585 0206 01F4 brne 1b
  597. 586 0208 F701 movw r30,r14
  598. 587 020a E80D add r30,r8
  599. 588 020c F91D adc r31,r9
  600. 589 020e BC01 movw r22,r24
  601. 590 0210 6770 andi r22,7
  602. 591 0212 7727 clr r23
  603. 592 0214 C601 movw r24,r12
  604. 593 0216 00C0 rjmp 2f
  605. 594 1:
  606. 595 0218 880F lsl r24
  607. 596 2:
  608. 597 021a 6A95 dec r22
  609. 598 021c 02F4 brpl 1b
  610. 599 021e 9685 ldd r25,Z+14
  611. 600 0220 892B or r24,r25
  612. 601 0222 8687 std Z+14,r24
  613. 602 0224 F801 movw r30,r16
  614. 603 0226 0081 ld r16,Z
  615. 604 0228 1181 ldd r17,Z+1
  616. 605 022a 00C0 rjmp .L37
  617. 606 .L47:
  618. 607 /* epilogue start */
  619. 608 022c 2696 adiw r28,6
  620. 609 022e 0FB6 in __tmp_reg__,__SREG__
  621. 610 0230 F894 cli
  622. 611 0232 DEBF out __SP_H__,r29
  623. 612 0234 0FBE out __SREG__,__tmp_reg__
  624. 613 0236 CDBF out __SP_L__,r28
  625. 614 0238 DF91 pop r29
  626. 615 023a CF91 pop r28
  627. 616 023c 1F91 pop r17
  628. 617 023e 0F91 pop r16
  629. 618 0240 FF90 pop r15
  630. 619 0242 EF90 pop r14
  631. 620 0244 DF90 pop r13
  632. 621 0246 CF90 pop r12
  633. 622 0248 BF90 pop r11
  634. 623 024a AF90 pop r10
  635. 624 024c 9F90 pop r9
  636. 625 024e 8F90 pop r8
  637. 626 0250 7F90 pop r7
  638. 627 0252 6F90 pop r6
  639. GAS LISTING /tmp/ccUWh7qo.s page 12
  640. 628 0254 5F90 pop r5
  641. 629 0256 4F90 pop r4
  642. 630 0258 0895 ret
  643. 631 .size DmIOCtl, .-DmIOCtl
  644. 632 .section .text.NicRxLanc,"ax",@progbits
  645. 633 .global NicRxLanc
  646. 634 .type NicRxLanc, @function
  647. 635 NicRxLanc:
  648. 636 /* prologue: function */
  649. 637 /* frame size = 0 */
  650. 638 /* stack size = 0 */
  651. 639 .L__stack_usage = 0
  652. 640 0000 FC01 movw r30,r24
  653. 641 0002 0785 ldd r16,Z+15
  654. 642 0004 1089 ldd r17,Z+16
  655. 643 0006 C189 ldd r28,Z+17
  656. 644 0008 D289 ldd r29,Z+18
  657. 645 .L54:
  658. 646 000a F801 movw r30,r16
  659. 647 000c 6581 ldd r22,Z+5
  660. 648 000e 5681 ldd r21,Z+6
  661. 649 0010 4781 ldd r20,Z+7
  662. 650 0012 3085 ldd r19,Z+8
  663. 651 0014 2185 ldd r18,Z+9
  664. 652 0016 9285 ldd r25,Z+10
  665. 653 0018 862F mov r24,r22
  666. 654 001a 852B or r24,r21
  667. 655 001c 842B or r24,r20
  668. 656 001e 832B or r24,r19
  669. 657 0020 822B or r24,r18
  670. 658 0022 892B or r24,r25
  671. 659 0024 01F4 brne .L69
  672. 660 .L55:
  673. 661 0026 6AE0 ldi r22,lo8(10)
  674. 662 0028 70E0 ldi r23,0
  675. 663 002a 80E0 ldi r24,0
  676. 664 002c 90E0 ldi r25,0
  677. 665 002e 0E94 0000 call NutSleep
  678. 666 0032 00C0 rjmp .L54
  679. 667 .L69:
  680. 668 0034 5623 and r21,r22
  681. 669 0036 4523 and r20,r21
  682. 670 0038 3423 and r19,r20
  683. 671 003a 2323 and r18,r19
  684. 672 003c 9223 and r25,r18
  685. 673 003e 9F3F cpi r25,lo8(-1)
  686. 674 0040 01F0 breq .L55
  687. 675 .L56:
  688. 676 0042 CE01 movw r24,r28
  689. 677 0044 0E94 0000 call NicStart.isra.4
  690. 678 0048 892B or r24,r25
  691. 679 004a 01F0 breq .L70
  692. 680 004c 68EE ldi r22,lo8(-24)
  693. 681 004e 73E0 ldi r23,lo8(3)
  694. 682 0050 80E0 ldi r24,0
  695. 683 0052 90E0 ldi r25,0
  696. 684 0054 0E94 0000 call NutSleep
  697. GAS LISTING /tmp/ccUWh7qo.s page 13
  698. 685 0058 00C0 rjmp .L56
  699. 686 .L70:
  700. 687 005a CE01 movw r24,r28
  701. 688 005c 0496 adiw r24,4
  702. 689 005e 0E94 0000 call NutEventPost
  703. 690 0062 89E0 ldi r24,lo8(9)
  704. 691 0064 0E94 0000 call NutThreadSetPriority
  705. 692 .L62:
  706. 693 0068 40ED ldi r20,lo8(-48)
  707. 694 006a 57E0 ldi r21,lo8(7)
  708. 695 006c 60E0 ldi r22,0
  709. 696 006e 70E0 ldi r23,0
  710. 697 0070 CE01 movw r24,r28
  711. 698 0072 0E94 0000 call NutEventWait
  712. 699 .L58:
  713. 700 0076 8A85 ldd r24,Y+10
  714. 701 0078 9B85 ldd r25,Y+11
  715. 702 007a 892B or r24,r25
  716. 703 007c 01F0 breq .L62
  717. 704 007e CE01 movw r24,r28
  718. 705 0080 0E94 0000 call NicStart.isra.4
  719. 706 0084 892B or r24,r25
  720. 707 0086 01F4 brne .L59
  721. 708 0088 1B86 std Y+11,__zero_reg__
  722. 709 008a 1A86 std Y+10,__zero_reg__
  723. 710 008c 1F82 std Y+7,__zero_reg__
  724. 711 008e 1E82 std Y+6,__zero_reg__
  725. 712 0090 1986 std Y+9,__zero_reg__
  726. 713 0092 1886 std Y+8,__zero_reg__
  727. 714 0094 00C0 rjmp .L58
  728. 715 .L59:
  729. 716 0096 68EE ldi r22,lo8(-24)
  730. 717 0098 73E0 ldi r23,lo8(3)
  731. 718 009a 80E0 ldi r24,0
  732. 719 009c 90E0 ldi r25,0
  733. 720 009e 0E94 0000 call NutSleep
  734. 721 00a2 00C0 rjmp .L58
  735. 722 .size NicRxLanc, .-NicRxLanc
  736. 723 .data
  737. 724 .type mx_wait.2863, @object
  738. 725 .size mx_wait.2863, 4
  739. 726 mx_wait.2863:
  740. 727 0000 88 .byte -120
  741. 728 0001 13 .byte 19
  742. 729 0002 00 .byte 0
  743. 730 0003 00 .byte 0
  744. 731 .global devDm9000
  745. 732 .type devDm9000, @object
  746. 733 .size devDm9000, 37
  747. 734 devDm9000:
  748. 735 0004 0000 .word 0
  749. 736 0006 65 .byte 101
  750. 737 0007 74 .byte 116
  751. 738 0008 68 .byte 104
  752. 739 0009 30 .byte 48
  753. 740 000a 00 .byte 0
  754. 741 000b 00 .byte 0
  755. GAS LISTING /tmp/ccUWh7qo.s page 14
  756. 742 000c 00 .byte 0
  757. 743 000d 00 .byte 0
  758. 744 000e 00 .byte 0
  759. 745 000f 03 .byte 3
  760. 746 0010 0000 .word 0
  761. 747 0012 00 .byte 0
  762. 748 0013 0000 .word ifn_eth0
  763. 749 0015 0000 .word dcb_eth0
  764. 750 0017 0000 .word gs(DmInit)
  765. 751 0019 0000 .word gs(DmIOCtl)
  766. 752 001b 0000 .word 0
  767. 753 001d 0000 .word 0
  768. 754 001f 0000 .word 0
  769. 755 0021 0000 .word 0
  770. 756 0023 0000 .word 0
  771. 757 0025 0000 .word 0
  772. 758 0027 0000 .word 0
  773. 759 .type ifn_eth0, @object
  774. 760 .size ifn_eth0, 39
  775. 761 ifn_eth0:
  776. 762 0029 06 .byte 6
  777. 763 002a 00 .byte 0
  778. 764 002b 00 .byte 0
  779. 765 002c 00 .byte 0
  780. 766 002d 00 .byte 0
  781. 767 002e 00 .byte 0
  782. 768 002f 00 .byte 0
  783. 769 0030 00 .byte 0
  784. 770 0031 00 .byte 0
  785. 771 0032 00 .byte 0
  786. 772 0033 00 .byte 0
  787. 773 0034 00 .byte 0
  788. 774 0035 00 .byte 0
  789. 775 0036 00 .byte 0
  790. 776 0037 00 .byte 0
  791. 777 0038 00 .byte 0
  792. 778 0039 00 .byte 0
  793. 779 003a 00 .byte 0
  794. 780 003b 00 .byte 0
  795. 781 003c 00 .byte 0
  796. 782 003d 00 .byte 0
  797. 783 003e 00 .byte 0
  798. 784 003f 00 .byte 0
  799. 785 0040 DC05 .word 1500
  800. 786 0042 0000 .word 0
  801. 787 0044 0000 .word 0
  802. 788 0046 0000 .word 0
  803. 789 0048 0000 .word gs(NutEtherInput)
  804. 790 004a 0000 .word gs(DmOutput)
  805. 791 004c 0000 .word gs(NutEtherOutput)
  806. 792 004e 0000 .zero 2
  807. 793 .local dcb_eth0
  808. 794 .comm dcb_eth0,22,1
  809. 795 .section .rodata
  810. 796 .type crctab, @object
  811. 797 .size crctab, 64
  812. 798 crctab:
  813. GAS LISTING /tmp/ccUWh7qo.s page 15
  814. 799 0000 00 .byte 0
  815. 800 0001 00 .byte 0
  816. 801 0002 00 .byte 0
  817. 802 0003 00 .byte 0
  818. 803 0004 64 .byte 100
  819. 804 0005 10 .byte 16
  820. 805 0006 B7 .byte -73
  821. 806 0007 1D .byte 29
  822. 807 0008 C8 .byte -56
  823. 808 0009 20 .byte 32
  824. 809 000a 6E .byte 110
  825. 810 000b 3B .byte 59
  826. 811 000c AC .byte -84
  827. 812 000d 30 .byte 48
  828. 813 000e D9 .byte -39
  829. 814 000f 26 .byte 38
  830. 815 0010 90 .byte -112
  831. 816 0011 41 .byte 65
  832. 817 0012 DC .byte -36
  833. 818 0013 76 .byte 118
  834. 819 0014 F4 .byte -12
  835. 820 0015 51 .byte 81
  836. 821 0016 6B .byte 107
  837. 822 0017 6B .byte 107
  838. 823 0018 58 .byte 88
  839. 824 0019 61 .byte 97
  840. 825 001a B2 .byte -78
  841. 826 001b 4D .byte 77
  842. 827 001c 3C .byte 60
  843. 828 001d 71 .byte 113
  844. 829 001e 05 .byte 5
  845. 830 001f 50 .byte 80
  846. 831 0020 20 .byte 32
  847. 832 0021 83 .byte -125
  848. 833 0022 B8 .byte -72
  849. 834 0023 ED .byte -19
  850. 835 0024 44 .byte 68
  851. 836 0025 93 .byte -109
  852. 837 0026 0F .byte 15
  853. 838 0027 F0 .byte -16
  854. 839 0028 E8 .byte -24
  855. 840 0029 A3 .byte -93
  856. 841 002a D6 .byte -42
  857. 842 002b D6 .byte -42
  858. 843 002c 8C .byte -116
  859. 844 002d B3 .byte -77
  860. 845 002e 61 .byte 97
  861. 846 002f CB .byte -53
  862. 847 0030 B0 .byte -80
  863. 848 0031 C2 .byte -62
  864. 849 0032 64 .byte 100
  865. 850 0033 9B .byte -101
  866. 851 0034 D4 .byte -44
  867. 852 0035 D2 .byte -46
  868. 853 0036 D3 .byte -45
  869. 854 0037 86 .byte -122
  870. 855 0038 78 .byte 120
  871. GAS LISTING /tmp/ccUWh7qo.s page 16
  872. 856 0039 E2 .byte -30
  873. 857 003a 0A .byte 10
  874. 858 003b A0 .byte -96
  875. 859 003c 1C .byte 28
  876. 860 003d F2 .byte -14
  877. 861 003e BD .byte -67
  878. 862 003f BD .byte -67
  879. 863 .ident "GCC: (GNU) 5.3.0"
  880. 864 .global __do_copy_data
  881. 865 .global __do_clear_bss
  882. GAS LISTING /tmp/ccUWh7qo.s page 17
  883. DEFINED SYMBOLS
  884. *ABS*:0000000000000000 dm9000.c
  885. /tmp/ccUWh7qo.s:2 *ABS*:000000000000003e __SP_H__
  886. /tmp/ccUWh7qo.s:3 *ABS*:000000000000003d __SP_L__
  887. /tmp/ccUWh7qo.s:4 *ABS*:000000000000003f __SREG__
  888. /tmp/ccUWh7qo.s:5 *ABS*:000000000000003b __RAMPZ__
  889. /tmp/ccUWh7qo.s:6 *ABS*:0000000000000000 __tmp_reg__
  890. /tmp/ccUWh7qo.s:7 *ABS*:0000000000000001 __zero_reg__
  891. /tmp/ccUWh7qo.s:11 .text.DmInit:0000000000000000 DmInit
  892. /tmp/ccUWh7qo.s:23 .text.DmOutput:0000000000000000 DmOutput
  893. /tmp/ccUWh7qo.s:726 .data:0000000000000000 mx_wait.2863
  894. /tmp/ccUWh7qo.s:121 .text.NicStart.isra.4:0000000000000000 NicStart.isra.4
  895. /tmp/ccUWh7qo.s:210 .text.ether_crc32_le.constprop.5:0000000000000000 ether_crc32_le.constprop.5
  896. /tmp/ccUWh7qo.s:798 .rodata:0000000000000000 crctab
  897. /tmp/ccUWh7qo.s:306 .text.DmIOCtl:0000000000000000 DmIOCtl
  898. /tmp/ccUWh7qo.s:635 .text.NicRxLanc:0000000000000000 NicRxLanc
  899. /tmp/ccUWh7qo.s:734 .data:0000000000000004 devDm9000
  900. /tmp/ccUWh7qo.s:761 .data:0000000000000029 ifn_eth0
  901. .bss:0000000000000000 dcb_eth0
  902. UNDEFINED SYMBOLS
  903. NutEventWait
  904. NutEventPost
  905. NutDelay
  906. NutPhyCtl
  907. NutSleep
  908. malloc
  909. free
  910. NutThreadSetPriority
  911. NutEtherInput
  912. NutEtherOutput
  913. __do_copy_data
  914. __do_clear_bss