ethout.lst 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  1. GAS LISTING /tmp/ccDpZfxO.s page 1
  2. 1 .file "ethout.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.NutEtherOutput,"ax",@progbits
  10. 9 .global NutEtherOutput
  11. 10 .type NutEtherOutput, @function
  12. 11 NutEtherOutput:
  13. 12 0000 8F92 push r8
  14. 13 0002 9F92 push r9
  15. 14 0004 AF92 push r10
  16. 15 0006 BF92 push r11
  17. 16 0008 CF92 push r12
  18. 17 000a DF92 push r13
  19. 18 000c EF92 push r14
  20. 19 000e FF92 push r15
  21. 20 0010 0F93 push r16
  22. 21 0012 1F93 push r17
  23. 22 0014 CF93 push r28
  24. 23 0016 DF93 push r29
  25. 24 /* prologue: function */
  26. 25 /* frame size = 0 */
  27. 26 /* stack size = 12 */
  28. 27 .L__stack_usage = 12
  29. 28 0018 6C01 movw r12,r24
  30. 29 001a EB01 movw r28,r22
  31. 30 001c 4A01 movw r8,r20
  32. 31 001e 8901 movw r16,r18
  33. 32 0020 4EE0 ldi r20,lo8(14)
  34. 33 0022 50E0 ldi r21,0
  35. 34 0024 60E1 ldi r22,lo8(16)
  36. 35 0026 C901 movw r24,r18
  37. 36 0028 0E94 0000 call NutNetBufAlloc
  38. 37 002c 892B or r24,r25
  39. 38 002e 01F0 breq .L5
  40. 39 0030 D801 movw r26,r16
  41. 40 0032 1396 adiw r26,3
  42. 41 0034 ED90 ld r14,X+
  43. 42 0036 FC90 ld r15,X
  44. 43 0038 1497 sbiw r26,3+1
  45. 44 003a F601 movw r30,r12
  46. 45 003c A784 ldd r10,Z+15
  47. 46 003e B088 ldd r11,Z+16
  48. 47 0040 D701 movw r26,r14
  49. 48 0042 1696 adiw r26,6
  50. 49 0044 F501 movw r30,r10
  51. 50 0046 3596 adiw r30,5
  52. 51 0048 86E0 ldi r24,lo8(6)
  53. 52 0:
  54. 53 004a 0190 ld r0,Z+
  55. 54 004c 0D92 st X+,r0
  56. 55 004e 8A95 dec r24
  57. 56 0050 01F4 brne 0b
  58. 57 0052 8114 cp r8,__zero_reg__
  59. GAS LISTING /tmp/ccDpZfxO.s page 2
  60. 58 0054 9104 cpc r9,__zero_reg__
  61. 59 0056 01F0 breq .L3
  62. 60 0058 86E0 ldi r24,lo8(6)
  63. 61 005a F401 movw r30,r8
  64. 62 005c D701 movw r26,r14
  65. 63 0:
  66. 64 005e 0190 ld r0,Z+
  67. 65 0060 0D92 st X+,r0
  68. 66 0062 8A95 dec r24
  69. 67 0064 01F4 brne 0b
  70. 68 0066 00C0 rjmp .L4
  71. 69 .L3:
  72. 70 0068 46E0 ldi r20,lo8(6)
  73. 71 006a 50E0 ldi r21,0
  74. 72 006c 6FEF ldi r22,lo8(-1)
  75. 73 006e 70E0 ldi r23,0
  76. 74 0070 C701 movw r24,r14
  77. 75 0072 0E94 0000 call memset
  78. 76 .L4:
  79. 77 0076 BE01 movw r22,r28
  80. 78 /* #APP */
  81. 79 ; 309 "../../nut/include/sys/types.h" 1
  82. 80 0078 062E mov __tmp_reg__, r22
  83. 81 007a 672F mov r22, r23
  84. 82 007c 702D mov r23, __tmp_reg__
  85. 83
  86. 84 ; 0 "" 2
  87. 85 /* #NOAPP */
  88. 86 007e D701 movw r26,r14
  89. 87 0080 1D96 adiw r26,12+1
  90. 88 0082 7C93 st X,r23
  91. 89 0084 6E93 st -X,r22
  92. 90 0086 1C97 sbiw r26,12
  93. 91 0088 D501 movw r26,r10
  94. 92 008a 9196 adiw r26,33
  95. 93 008c ED91 ld r30,X+
  96. 94 008e FC91 ld r31,X
  97. 95 0090 9297 sbiw r26,33+1
  98. 96 0092 B801 movw r22,r16
  99. 97 0094 C601 movw r24,r12
  100. 98 0096 1995 eicall
  101. 99 0098 0097 sbiw r24,0
  102. 100 009a 01F0 breq .L2
  103. 101 009c C801 movw r24,r16
  104. 102 009e 0E94 0000 call NutNetBufFree
  105. 103 .L5:
  106. 104 00a2 8FEF ldi r24,lo8(-1)
  107. 105 00a4 9FEF ldi r25,lo8(-1)
  108. 106 .L2:
  109. 107 /* epilogue start */
  110. 108 00a6 DF91 pop r29
  111. 109 00a8 CF91 pop r28
  112. 110 00aa 1F91 pop r17
  113. 111 00ac 0F91 pop r16
  114. 112 00ae FF90 pop r15
  115. 113 00b0 EF90 pop r14
  116. 114 00b2 DF90 pop r13
  117. GAS LISTING /tmp/ccDpZfxO.s page 3
  118. 115 00b4 CF90 pop r12
  119. 116 00b6 BF90 pop r11
  120. 117 00b8 AF90 pop r10
  121. 118 00ba 9F90 pop r9
  122. 119 00bc 8F90 pop r8
  123. 120 00be 0895 ret
  124. 121 .size NutEtherOutput, .-NutEtherOutput
  125. 122 .ident "GCC: (GNU) 5.3.0"
  126. GAS LISTING /tmp/ccDpZfxO.s page 4
  127. DEFINED SYMBOLS
  128. *ABS*:0000000000000000 ethout.c
  129. /tmp/ccDpZfxO.s:2 *ABS*:000000000000003e __SP_H__
  130. /tmp/ccDpZfxO.s:3 *ABS*:000000000000003d __SP_L__
  131. /tmp/ccDpZfxO.s:4 *ABS*:000000000000003f __SREG__
  132. /tmp/ccDpZfxO.s:5 *ABS*:000000000000003b __RAMPZ__
  133. /tmp/ccDpZfxO.s:6 *ABS*:0000000000000000 __tmp_reg__
  134. /tmp/ccDpZfxO.s:7 *ABS*:0000000000000001 __zero_reg__
  135. /tmp/ccDpZfxO.s:11 .text.NutEtherOutput:0000000000000000 NutEtherOutput
  136. UNDEFINED SYMBOLS
  137. NutNetBufAlloc
  138. memset
  139. NutNetBufFree