udpout.lst 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218
  1. GAS LISTING /tmp/ccK5LciR.s page 1
  2. 1 .file "udpout.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.NutUdpOutput,"ax",@progbits
  10. 9 .global NutUdpOutput
  11. 10 .type NutUdpOutput, @function
  12. 11 NutUdpOutput:
  13. 12 0000 4F92 push r4
  14. 13 0002 5F92 push r5
  15. 14 0004 6F92 push r6
  16. 15 0006 7F92 push r7
  17. 16 0008 8F92 push r8
  18. 17 000a 9F92 push r9
  19. 18 000c AF92 push r10
  20. 19 000e BF92 push r11
  21. 20 0010 CF92 push r12
  22. 21 0012 DF92 push r13
  23. 22 0014 EF92 push r14
  24. 23 0016 FF92 push r15
  25. 24 0018 0F93 push r16
  26. 25 001a 1F93 push r17
  27. 26 001c CF93 push r28
  28. 27 001e DF93 push r29
  29. 28 0020 00D0 rcall .
  30. 29 0022 1F92 push __zero_reg__
  31. 30 0024 CDB7 in r28,__SP_L__
  32. 31 0026 DEB7 in r29,__SP_H__
  33. 32 /* prologue: function */
  34. 33 /* frame size = 4 */
  35. 34 /* stack size = 20 */
  36. 35 .L__stack_usage = 20
  37. 36 0028 7C01 movw r14,r24
  38. 37 002a 2A01 movw r4,r20
  39. 38 002c 3B01 movw r6,r22
  40. 39 002e 4901 movw r8,r18
  41. 40 0030 C801 movw r24,r16
  42. 41 0032 48E0 ldi r20,lo8(8)
  43. 42 0034 50E0 ldi r21,0
  44. 43 0036 60E4 ldi r22,lo8(64)
  45. 44 0038 0E94 0000 call NutNetBufAlloc
  46. 45 003c 6C01 movw r12,r24
  47. 46 003e 0097 sbiw r24,0
  48. 47 0040 01F4 brne .+2
  49. 48 0042 00C0 rjmp .L5
  50. 49 0044 DC01 movw r26,r24
  51. 50 0046 1B96 adiw r26,11
  52. 51 0048 AD90 ld r10,X+
  53. 52 004a BC90 ld r11,X
  54. 53 004c 1C97 sbiw r26,11+1
  55. 54 004e F701 movw r30,r14
  56. 55 0050 8281 ldd r24,Z+2
  57. 56 0052 9381 ldd r25,Z+3
  58. 57 0054 D501 movw r26,r10
  59. GAS LISTING /tmp/ccK5LciR.s page 2
  60. 58 0056 8D93 st X+,r24
  61. 59 0058 9C93 st X,r25
  62. 60 005a 9401 movw r18,r8
  63. 61 /* #APP */
  64. 62 ; 309 "../../nut/include/sys/types.h" 1
  65. 63 005c 022E mov __tmp_reg__, r18
  66. 64 005e 232F mov r18, r19
  67. 65 0060 302D mov r19, __tmp_reg__
  68. 66
  69. 67 ; 0 "" 2
  70. 68 /* #NOAPP */
  71. 69 0062 F501 movw r30,r10
  72. 70 0064 3383 std Z+3,r19
  73. 71 0066 2283 std Z+2,r18
  74. 72 0068 D601 movw r26,r12
  75. 73 006a 1D96 adiw r26,13
  76. 74 006c 2D91 ld r18,X+
  77. 75 006e 3C91 ld r19,X
  78. 76 0070 1E97 sbiw r26,13+1
  79. 77 0072 5196 adiw r26,17
  80. 78 0074 8D91 ld r24,X+
  81. 79 0076 9C91 ld r25,X
  82. 80 0078 5297 sbiw r26,17+1
  83. 81 007a 820F add r24,r18
  84. 82 007c 931F adc r25,r19
  85. 83 /* #APP */
  86. 84 ; 309 "../../nut/include/sys/types.h" 1
  87. 85 007e 082E mov __tmp_reg__, r24
  88. 86 0080 892F mov r24, r25
  89. 87 0082 902D mov r25, __tmp_reg__
  90. 88
  91. 89 ; 0 "" 2
  92. 90 /* #NOAPP */
  93. 91 0084 9583 std Z+5,r25
  94. 92 0086 8483 std Z+4,r24
  95. 93 0088 AE01 movw r20,r28
  96. 94 008a 4F5F subi r20,-1
  97. 95 008c 5F4F sbci r21,-1
  98. 96 008e C301 movw r24,r6
  99. 97 0090 B201 movw r22,r4
  100. 98 0092 0E94 0000 call NutIpRouteQuery
  101. 99 0096 0097 sbiw r24,0
  102. 100 0098 01F0 breq .L3
  103. 101 009a DC01 movw r26,r24
  104. 102 009c 1F96 adiw r26,15
  105. 103 009e ED91 ld r30,X+
  106. 104 00a0 FC91 ld r31,X
  107. 105 00a2 5097 sbiw r26,15+1
  108. 106 00a4 8385 ldd r24,Z+11
  109. 107 00a6 9485 ldd r25,Z+12
  110. 108 00a8 A585 ldd r26,Z+13
  111. 109 00aa B685 ldd r27,Z+14
  112. 110 00ac 8983 std Y+1,r24
  113. 111 00ae 9A83 std Y+2,r25
  114. 112 00b0 AB83 std Y+3,r26
  115. 113 00b2 BC83 std Y+4,r27
  116. 114 00b4 00C0 rjmp .L4
  117. GAS LISTING /tmp/ccK5LciR.s page 3
  118. 115 .L3:
  119. 116 00b6 1982 std Y+1,__zero_reg__
  120. 117 00b8 1A82 std Y+2,__zero_reg__
  121. 118 00ba 1B82 std Y+3,__zero_reg__
  122. 119 00bc 1C82 std Y+4,__zero_reg__
  123. 120 .L4:
  124. 121 00be F501 movw r30,r10
  125. 122 00c0 1782 std Z+7,__zero_reg__
  126. 123 00c2 1682 std Z+6,__zero_reg__
  127. 124 00c4 E480 ldd r14,Z+4
  128. 125 00c6 F580 ldd r15,Z+5
  129. 126 00c8 6981 ldd r22,Y+1
  130. 127 00ca 7A81 ldd r23,Y+2
  131. 128 00cc 8B81 ldd r24,Y+3
  132. 129 00ce 9C81 ldd r25,Y+4
  133. 130 00d0 01E1 ldi r16,lo8(17)
  134. 131 00d2 A301 movw r20,r6
  135. 132 00d4 9201 movw r18,r4
  136. 133 00d6 0E94 0000 call NutIpPseudoChkSumPartial
  137. 134 00da DC01 movw r26,r24
  138. 135 00dc CB01 movw r24,r22
  139. 136 00de 48E0 ldi r20,lo8(8)
  140. 137 00e0 50E0 ldi r21,0
  141. 138 00e2 B501 movw r22,r10
  142. 139 00e4 0E94 0000 call NutIpChkSumPartial
  143. 140 00e8 D601 movw r26,r12
  144. 141 00ea 5196 adiw r26,17
  145. 142 00ec 4D91 ld r20,X+
  146. 143 00ee 5C91 ld r21,X
  147. 144 00f0 5297 sbiw r26,17+1
  148. 145 00f2 1F96 adiw r26,15
  149. 146 00f4 6D91 ld r22,X+
  150. 147 00f6 7C91 ld r23,X
  151. 148 00f8 5097 sbiw r26,15+1
  152. 149 00fa 0E94 0000 call NutIpChkSum
  153. 150 00fe F501 movw r30,r10
  154. 151 0100 9783 std Z+7,r25
  155. 152 0102 8683 std Z+6,r24
  156. 153 0104 9601 movw r18,r12
  157. 154 0106 B301 movw r22,r6
  158. 155 0108 A201 movw r20,r4
  159. 156 010a 81E1 ldi r24,lo8(17)
  160. 157 010c 0E94 0000 call NutIpOutput
  161. 158 0110 00C0 rjmp .L2
  162. 159 .L5:
  163. 160 0112 8FEF ldi r24,lo8(-1)
  164. 161 0114 9FEF ldi r25,lo8(-1)
  165. 162 .L2:
  166. 163 /* epilogue start */
  167. 164 0116 0F90 pop __tmp_reg__
  168. 165 0118 0F90 pop __tmp_reg__
  169. 166 011a 0F90 pop __tmp_reg__
  170. 167 011c 0F90 pop __tmp_reg__
  171. 168 011e DF91 pop r29
  172. 169 0120 CF91 pop r28
  173. 170 0122 1F91 pop r17
  174. 171 0124 0F91 pop r16
  175. GAS LISTING /tmp/ccK5LciR.s page 4
  176. 172 0126 FF90 pop r15
  177. 173 0128 EF90 pop r14
  178. 174 012a DF90 pop r13
  179. 175 012c CF90 pop r12
  180. 176 012e BF90 pop r11
  181. 177 0130 AF90 pop r10
  182. 178 0132 9F90 pop r9
  183. 179 0134 8F90 pop r8
  184. 180 0136 7F90 pop r7
  185. 181 0138 6F90 pop r6
  186. 182 013a 5F90 pop r5
  187. 183 013c 4F90 pop r4
  188. 184 013e 0895 ret
  189. 185 .size NutUdpOutput, .-NutUdpOutput
  190. 186 .ident "GCC: (GNU) 5.3.0"
  191. GAS LISTING /tmp/ccK5LciR.s page 5
  192. DEFINED SYMBOLS
  193. *ABS*:0000000000000000 udpout.c
  194. /tmp/ccK5LciR.s:2 *ABS*:000000000000003e __SP_H__
  195. /tmp/ccK5LciR.s:3 *ABS*:000000000000003d __SP_L__
  196. /tmp/ccK5LciR.s:4 *ABS*:000000000000003f __SREG__
  197. /tmp/ccK5LciR.s:5 *ABS*:000000000000003b __RAMPZ__
  198. /tmp/ccK5LciR.s:6 *ABS*:0000000000000000 __tmp_reg__
  199. /tmp/ccK5LciR.s:7 *ABS*:0000000000000001 __zero_reg__
  200. /tmp/ccK5LciR.s:11 .text.NutUdpOutput:0000000000000000 NutUdpOutput
  201. UNDEFINED SYMBOLS
  202. NutNetBufAlloc
  203. NutIpRouteQuery
  204. NutIpPseudoChkSumPartial
  205. NutIpChkSumPartial
  206. NutIpChkSum
  207. NutIpOutput