resolv.lst 57 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683
  1. GAS LISTING /tmp/ccUyxdR2.s page 1
  2. 1 .file "resolv.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.DecodeDnsHeader,"ax",@progbits
  10. 9 .type DecodeDnsHeader, @function
  11. 10 DecodeDnsHeader:
  12. 11 /* prologue: function */
  13. 12 /* frame size = 0 */
  14. 13 /* stack size = 0 */
  15. 14 .L__stack_usage = 0
  16. 15 0000 FC01 movw r30,r24
  17. 16 0002 DB01 movw r26,r22
  18. 17 0004 8C91 ld r24,X
  19. 18 0006 90E0 ldi r25,0
  20. 19 0008 982F mov r25,r24
  21. 20 000a 8827 clr r24
  22. 21 000c 9183 std Z+1,r25
  23. 22 000e 8083 st Z,r24
  24. 23 0010 1196 adiw r26,1
  25. 24 0012 2C91 ld r18,X
  26. 25 0014 1197 sbiw r26,1
  27. 26 0016 822B or r24,r18
  28. 27 0018 9183 std Z+1,r25
  29. 28 001a 8083 st Z,r24
  30. 29 001c 1296 adiw r26,2
  31. 30 001e 8C91 ld r24,X
  32. 31 0020 1297 sbiw r26,2
  33. 32 0022 90E0 ldi r25,0
  34. 33 0024 982F mov r25,r24
  35. 34 0026 8827 clr r24
  36. 35 0028 9383 std Z+3,r25
  37. 36 002a 8283 std Z+2,r24
  38. 37 002c 1396 adiw r26,3
  39. 38 002e 2C91 ld r18,X
  40. 39 0030 1397 sbiw r26,3
  41. 40 0032 822B or r24,r18
  42. 41 0034 9383 std Z+3,r25
  43. 42 0036 8283 std Z+2,r24
  44. 43 0038 1496 adiw r26,4
  45. 44 003a 8C91 ld r24,X
  46. 45 003c 1497 sbiw r26,4
  47. 46 003e 90E0 ldi r25,0
  48. 47 0040 982F mov r25,r24
  49. 48 0042 8827 clr r24
  50. 49 0044 9583 std Z+5,r25
  51. 50 0046 8483 std Z+4,r24
  52. 51 0048 1596 adiw r26,5
  53. 52 004a 2C91 ld r18,X
  54. 53 004c 1597 sbiw r26,5
  55. 54 004e 822B or r24,r18
  56. 55 0050 9583 std Z+5,r25
  57. 56 0052 8483 std Z+4,r24
  58. 57 0054 1696 adiw r26,6
  59. GAS LISTING /tmp/ccUyxdR2.s page 2
  60. 58 0056 8C91 ld r24,X
  61. 59 0058 1697 sbiw r26,6
  62. 60 005a 90E0 ldi r25,0
  63. 61 005c 982F mov r25,r24
  64. 62 005e 8827 clr r24
  65. 63 0060 9783 std Z+7,r25
  66. 64 0062 8683 std Z+6,r24
  67. 65 0064 1796 adiw r26,7
  68. 66 0066 2C91 ld r18,X
  69. 67 0068 1797 sbiw r26,7
  70. 68 006a 822B or r24,r18
  71. 69 006c 9783 std Z+7,r25
  72. 70 006e 8683 std Z+6,r24
  73. 71 0070 1896 adiw r26,8
  74. 72 0072 8C91 ld r24,X
  75. 73 0074 1897 sbiw r26,8
  76. 74 0076 90E0 ldi r25,0
  77. 75 0078 982F mov r25,r24
  78. 76 007a 8827 clr r24
  79. 77 007c 9187 std Z+9,r25
  80. 78 007e 8087 std Z+8,r24
  81. 79 0080 1996 adiw r26,9
  82. 80 0082 2C91 ld r18,X
  83. 81 0084 1997 sbiw r26,9
  84. 82 0086 822B or r24,r18
  85. 83 0088 9187 std Z+9,r25
  86. 84 008a 8087 std Z+8,r24
  87. 85 008c 1A96 adiw r26,10
  88. 86 008e 8C91 ld r24,X
  89. 87 0090 1A97 sbiw r26,10
  90. 88 0092 90E0 ldi r25,0
  91. 89 0094 982F mov r25,r24
  92. 90 0096 8827 clr r24
  93. 91 0098 9387 std Z+11,r25
  94. 92 009a 8287 std Z+10,r24
  95. 93 009c 1B96 adiw r26,11
  96. 94 009e 2C91 ld r18,X
  97. 95 00a0 822B or r24,r18
  98. 96 00a2 9387 std Z+11,r25
  99. 97 00a4 8287 std Z+10,r24
  100. 98 00a6 8CE0 ldi r24,lo8(12)
  101. 99 00a8 90E0 ldi r25,0
  102. 100 00aa 0895 ret
  103. 101 .size DecodeDnsHeader, .-DecodeDnsHeader
  104. 102 .section .text.ReleaseDnsQuestion,"ax",@progbits
  105. 103 .type ReleaseDnsQuestion, @function
  106. 104 ReleaseDnsQuestion:
  107. 105 0000 CF93 push r28
  108. 106 0002 DF93 push r29
  109. 107 /* prologue: function */
  110. 108 /* frame size = 0 */
  111. 109 /* stack size = 2 */
  112. 110 .L__stack_usage = 2
  113. 111 0004 EC01 movw r28,r24
  114. 112 0006 892B or r24,r25
  115. 113 0008 01F0 breq .L2
  116. 114 000a 8881 ld r24,Y
  117. GAS LISTING /tmp/ccUyxdR2.s page 3
  118. 115 000c 9981 ldd r25,Y+1
  119. 116 000e 0097 sbiw r24,0
  120. 117 0010 01F0 breq .L4
  121. 118 0012 0E94 0000 call free
  122. 119 .L4:
  123. 120 0016 CE01 movw r24,r28
  124. 121 /* epilogue start */
  125. 122 0018 DF91 pop r29
  126. 123 001a CF91 pop r28
  127. 124 001c 0C94 0000 jmp free
  128. 125 .L2:
  129. 126 /* epilogue start */
  130. 127 0020 DF91 pop r29
  131. 128 0022 CF91 pop r28
  132. 129 0024 0895 ret
  133. 130 .size ReleaseDnsQuestion, .-ReleaseDnsQuestion
  134. 131 .section .text.ReleaseDnsResource,"ax",@progbits
  135. 132 .type ReleaseDnsResource, @function
  136. 133 ReleaseDnsResource:
  137. 134 0000 CF93 push r28
  138. 135 0002 DF93 push r29
  139. 136 /* prologue: function */
  140. 137 /* frame size = 0 */
  141. 138 /* stack size = 2 */
  142. 139 .L__stack_usage = 2
  143. 140 0004 EC01 movw r28,r24
  144. 141 0006 892B or r24,r25
  145. 142 0008 01F0 breq .L9
  146. 143 000a 8881 ld r24,Y
  147. 144 000c 9981 ldd r25,Y+1
  148. 145 000e 0097 sbiw r24,0
  149. 146 0010 01F0 breq .L11
  150. 147 0012 0E94 0000 call free
  151. 148 .L11:
  152. 149 0016 8C85 ldd r24,Y+12
  153. 150 0018 9D85 ldd r25,Y+13
  154. 151 001a 0097 sbiw r24,0
  155. 152 001c 01F0 breq .L12
  156. 153 001e 0E94 0000 call free
  157. 154 .L12:
  158. 155 0022 CE01 movw r24,r28
  159. 156 /* epilogue start */
  160. 157 0024 DF91 pop r29
  161. 158 0026 CF91 pop r28
  162. 159 0028 0C94 0000 jmp free
  163. 160 .L9:
  164. 161 /* epilogue start */
  165. 162 002c DF91 pop r29
  166. 163 002e CF91 pop r28
  167. 164 0030 0895 ret
  168. 165 .size ReleaseDnsResource, .-ReleaseDnsResource
  169. 166 .section .text.CreateDnsQuestion,"ax",@progbits
  170. 167 .type CreateDnsQuestion, @function
  171. 168 CreateDnsQuestion:
  172. 169 0000 EF92 push r14
  173. 170 0002 FF92 push r15
  174. 171 0004 0F93 push r16
  175. GAS LISTING /tmp/ccUyxdR2.s page 4
  176. 172 0006 1F93 push r17
  177. 173 0008 CF93 push r28
  178. 174 000a DF93 push r29
  179. 175 /* prologue: function */
  180. 176 /* frame size = 0 */
  181. 177 /* stack size = 6 */
  182. 178 .L__stack_usage = 6
  183. 179 000c EC01 movw r28,r24
  184. 180 000e 7B01 movw r14,r22
  185. 181 0010 8A01 movw r16,r20
  186. 182 0012 892B or r24,r25
  187. 183 0014 01F4 brne .L20
  188. 184 0016 66E0 ldi r22,lo8(6)
  189. 185 0018 70E0 ldi r23,0
  190. 186 001a 81E0 ldi r24,lo8(1)
  191. 187 001c 90E0 ldi r25,0
  192. 188 001e 0E94 0000 call calloc
  193. 189 0022 EC01 movw r28,r24
  194. 190 0024 892B or r24,r25
  195. 191 0026 01F0 breq .L21
  196. 192 .L20:
  197. 193 0028 8881 ld r24,Y
  198. 194 002a 9981 ldd r25,Y+1
  199. 195 002c 0097 sbiw r24,0
  200. 196 002e 01F0 breq .L22
  201. 197 0030 0E94 0000 call free
  202. 198 .L22:
  203. 199 0034 C701 movw r24,r14
  204. 200 0036 0E94 0000 call strdup
  205. 201 003a 9983 std Y+1,r25
  206. 202 003c 8883 st Y,r24
  207. 203 003e 1B83 std Y+3,r17
  208. 204 0040 0A83 std Y+2,r16
  209. 205 0042 81E0 ldi r24,lo8(1)
  210. 206 0044 90E0 ldi r25,0
  211. 207 0046 9D83 std Y+5,r25
  212. 208 0048 8C83 std Y+4,r24
  213. 209 .L21:
  214. 210 004a CE01 movw r24,r28
  215. 211 /* epilogue start */
  216. 212 004c DF91 pop r29
  217. 213 004e CF91 pop r28
  218. 214 0050 1F91 pop r17
  219. 215 0052 0F91 pop r16
  220. 216 0054 FF90 pop r15
  221. 217 0056 EF90 pop r14
  222. 218 0058 0895 ret
  223. 219 .size CreateDnsQuestion, .-CreateDnsQuestion
  224. 220 .section .text.EncodeDnsQuestion,"ax",@progbits
  225. 221 .type EncodeDnsQuestion, @function
  226. 222 EncodeDnsQuestion:
  227. 223 0000 FF92 push r15
  228. 224 0002 0F93 push r16
  229. 225 0004 1F93 push r17
  230. 226 0006 CF93 push r28
  231. 227 0008 DF93 push r29
  232. 228 /* prologue: function */
  233. GAS LISTING /tmp/ccUyxdR2.s page 5
  234. 229 /* frame size = 0 */
  235. 230 /* stack size = 5 */
  236. 231 .L__stack_usage = 5
  237. 232 000a FB01 movw r30,r22
  238. 233 000c A081 ld r26,Z
  239. 234 000e B181 ldd r27,Z+1
  240. 235 0010 FD01 movw r30,r26
  241. 236 0:
  242. 237 0012 0190 ld __tmp_reg__,Z+
  243. 238 0014 0020 tst __tmp_reg__
  244. 239 0016 01F4 brne 0b
  245. 240 0018 3197 sbiw r30,1
  246. 241 001a 9F01 movw r18,r30
  247. 242 001c 2A1B sub r18,r26
  248. 243 001e 3B0B sbc r19,r27
  249. 244 0020 A901 movw r20,r18
  250. 245 0022 4E5F subi r20,-2
  251. 246 0024 5F4F sbci r21,-1
  252. 247 0026 FC01 movw r30,r24
  253. 248 0028 1192 st Z+,__zero_reg__
  254. 249 002a ED01 movw r28,r26
  255. 250 002c DC01 movw r26,r24
  256. 251 .L30:
  257. 252 002e FE2E mov r15,r30
  258. 253 0030 0F2F mov r16,r31
  259. 254 0032 1991 ld r17,Y+
  260. 255 0034 1123 tst r17
  261. 256 0036 01F0 breq .L34
  262. 257 0038 1E32 cpi r17,lo8(46)
  263. 258 003a 01F4 brne .L31
  264. 259 003c 1082 st Z,__zero_reg__
  265. 260 003e 00C0 rjmp .L32
  266. 261 .L31:
  267. 262 0040 1083 st Z,r17
  268. 263 0042 1C91 ld r17,X
  269. 264 0044 1F5F subi r17,lo8(-(1))
  270. 265 0046 1C93 st X,r17
  271. 266 0048 FA2E mov r15,r26
  272. 267 004a 0B2F mov r16,r27
  273. 268 .L32:
  274. 269 004c 3196 adiw r30,1
  275. 270 004e AF2D mov r26,r15
  276. 271 0050 B02F mov r27,r16
  277. 272 0052 00C0 rjmp .L30
  278. 273 .L34:
  279. 274 0054 1082 st Z,__zero_reg__
  280. 275 0056 FB01 movw r30,r22
  281. 276 0058 A281 ldd r26,Z+2
  282. 277 005a B381 ldd r27,Z+3
  283. 278 005c FC01 movw r30,r24
  284. 279 005e E40F add r30,r20
  285. 280 0060 F51F adc r31,r21
  286. 281 0062 B083 st Z,r27
  287. 282 0064 A183 std Z+1,r26
  288. 283 0066 FB01 movw r30,r22
  289. 284 0068 A481 ldd r26,Z+4
  290. 285 006a 6581 ldd r22,Z+5
  291. GAS LISTING /tmp/ccUyxdR2.s page 6
  292. 286 006c A901 movw r20,r18
  293. 287 006e 4C5F subi r20,-4
  294. 288 0070 5F4F sbci r21,-1
  295. 289 0072 FC01 movw r30,r24
  296. 290 0074 E40F add r30,r20
  297. 291 0076 F51F adc r31,r21
  298. 292 0078 6083 st Z,r22
  299. 293 007a A183 std Z+1,r26
  300. 294 007c C901 movw r24,r18
  301. 295 007e 0696 adiw r24,6
  302. 296 /* epilogue start */
  303. 297 0080 DF91 pop r29
  304. 298 0082 CF91 pop r28
  305. 299 0084 1F91 pop r17
  306. 300 0086 0F91 pop r16
  307. 301 0088 FF90 pop r15
  308. 302 008a 0895 ret
  309. 303 .size EncodeDnsQuestion, .-EncodeDnsQuestion
  310. 304 .section .text.ScanName,"ax",@progbits
  311. 305 .type ScanName, @function
  312. 306 ScanName:
  313. 307 0000 EF92 push r14
  314. 308 0002 FF92 push r15
  315. 309 0004 0F93 push r16
  316. 310 0006 1F93 push r17
  317. 311 0008 CF93 push r28
  318. 312 000a DF93 push r29
  319. 313 /* prologue: function */
  320. 314 /* frame size = 0 */
  321. 315 /* stack size = 6 */
  322. 316 .L__stack_usage = 6
  323. 317 000c 8C01 movw r16,r24
  324. 318 000e 7B01 movw r14,r22
  325. 319 0010 DB01 movw r26,r22
  326. 320 0012 8D91 ld r24,X+
  327. 321 0014 9C91 ld r25,X
  328. 322 0016 0097 sbiw r24,0
  329. 323 0018 01F0 breq .L36
  330. 324 001a 0E94 0000 call free
  331. 325 001e F701 movw r30,r14
  332. 326 0020 1182 std Z+1,__zero_reg__
  333. 327 0022 1082 st Z,__zero_reg__
  334. 328 .L36:
  335. 329 0024 D801 movw r26,r16
  336. 330 0026 8C91 ld r24,X
  337. 331 0028 807C andi r24,lo8(-64)
  338. 332 002a 803C cpi r24,lo8(-64)
  339. 333 002c 01F0 breq .L43
  340. 334 002e E801 movw r28,r16
  341. 335 0:
  342. 336 0030 0990 ld __tmp_reg__,Y+
  343. 337 0032 0020 tst __tmp_reg__
  344. 338 0034 01F4 brne 0b
  345. 339 0036 C01B sub r28,r16
  346. 340 0038 D10B sbc r29,r17
  347. 341 003a CE01 movw r24,r28
  348. 342 003c 0E94 0000 call malloc
  349. GAS LISTING /tmp/ccUyxdR2.s page 7
  350. 343 0040 F701 movw r30,r14
  351. 344 0042 9183 std Z+1,r25
  352. 345 0044 8083 st Z,r24
  353. 346 0046 A801 movw r20,r16
  354. 347 0048 4F5F subi r20,-1
  355. 348 004a 5F4F sbci r21,-1
  356. 349 004c D801 movw r26,r16
  357. 350 004e EC91 ld r30,X
  358. 351 0050 3EE2 ldi r19,lo8(46)
  359. 352 .L38:
  360. 353 0052 EE23 tst r30
  361. 354 0054 01F0 breq .L41
  362. 355 0056 BA01 movw r22,r20
  363. 356 0058 8C01 movw r16,r24
  364. 357 005a 2E2F mov r18,r30
  365. 358 .L42:
  366. 359 005c 2150 subi r18,1
  367. 360 005e 00F0 brcs .L50
  368. 361 0060 DB01 movw r26,r22
  369. 362 0062 FD91 ld r31,X+
  370. 363 0064 BD01 movw r22,r26
  371. 364 0066 D801 movw r26,r16
  372. 365 0068 FD93 st X+,r31
  373. 366 006a 8D01 movw r16,r26
  374. 367 006c 00C0 rjmp .L42
  375. 368 .L50:
  376. 369 006e F0E0 ldi r31,0
  377. 370 0070 8E0F add r24,r30
  378. 371 0072 9F1F adc r25,r31
  379. 372 0074 E40F add r30,r20
  380. 373 0076 F51F adc r31,r21
  381. 374 0078 AF01 movw r20,r30
  382. 375 007a 4F5F subi r20,-1
  383. 376 007c 5F4F sbci r21,-1
  384. 377 007e E081 ld r30,Z
  385. 378 0080 EE23 tst r30
  386. 379 0082 01F0 breq .L41
  387. 380 0084 DC01 movw r26,r24
  388. 381 0086 3C93 st X,r19
  389. 382 0088 0196 adiw r24,1
  390. 383 008a 00C0 rjmp .L38
  391. 384 .L41:
  392. 385 008c FC01 movw r30,r24
  393. 386 008e 1082 st Z,__zero_reg__
  394. 387 0090 CE01 movw r24,r28
  395. 388 0092 00C0 rjmp .L37
  396. 389 .L43:
  397. 390 0094 82E0 ldi r24,lo8(2)
  398. 391 0096 90E0 ldi r25,0
  399. 392 .L37:
  400. 393 /* epilogue start */
  401. 394 0098 DF91 pop r29
  402. 395 009a CF91 pop r28
  403. 396 009c 1F91 pop r17
  404. 397 009e 0F91 pop r16
  405. 398 00a0 FF90 pop r15
  406. 399 00a2 EF90 pop r14
  407. GAS LISTING /tmp/ccUyxdR2.s page 8
  408. 400 00a4 0895 ret
  409. 401 .size ScanName, .-ScanName
  410. 402 .section .text.DecodeDnsQuestion,"ax",@progbits
  411. 403 .type DecodeDnsQuestion, @function
  412. 404 DecodeDnsQuestion:
  413. 405 0000 0F93 push r16
  414. 406 0002 1F93 push r17
  415. 407 0004 CF93 push r28
  416. 408 0006 DF93 push r29
  417. 409 /* prologue: function */
  418. 410 /* frame size = 0 */
  419. 411 /* stack size = 4 */
  420. 412 .L__stack_usage = 4
  421. 413 0008 EC01 movw r28,r24
  422. 414 000a 8B01 movw r16,r22
  423. 415 000c BC01 movw r22,r24
  424. 416 000e C801 movw r24,r16
  425. 417 0010 0E94 0000 call ScanName
  426. 418 0014 F801 movw r30,r16
  427. 419 0016 E80F add r30,r24
  428. 420 0018 F91F adc r31,r25
  429. 421 001a 2081 ld r18,Z
  430. 422 001c 30E0 ldi r19,0
  431. 423 001e 322F mov r19,r18
  432. 424 0020 2227 clr r18
  433. 425 0022 3B83 std Y+3,r19
  434. 426 0024 2A83 std Y+2,r18
  435. 427 0026 4181 ldd r20,Z+1
  436. 428 0028 242B or r18,r20
  437. 429 002a 3B83 std Y+3,r19
  438. 430 002c 2A83 std Y+2,r18
  439. 431 002e FC01 movw r30,r24
  440. 432 0030 3296 adiw r30,2
  441. 433 0032 E00F add r30,r16
  442. 434 0034 F11F adc r31,r17
  443. 435 0036 2081 ld r18,Z
  444. 436 0038 30E0 ldi r19,0
  445. 437 003a 322F mov r19,r18
  446. 438 003c 2227 clr r18
  447. 439 003e 3D83 std Y+5,r19
  448. 440 0040 2C83 std Y+4,r18
  449. 441 0042 4181 ldd r20,Z+1
  450. 442 0044 242B or r18,r20
  451. 443 0046 3D83 std Y+5,r19
  452. 444 0048 2C83 std Y+4,r18
  453. 445 004a 0496 adiw r24,4
  454. 446 /* epilogue start */
  455. 447 004c DF91 pop r29
  456. 448 004e CF91 pop r28
  457. 449 0050 1F91 pop r17
  458. 450 0052 0F91 pop r16
  459. 451 0054 0895 ret
  460. 452 .size DecodeDnsQuestion, .-DecodeDnsQuestion
  461. 453 .section .text.DecodeDnsResource,"ax",@progbits
  462. 454 .type DecodeDnsResource, @function
  463. 455 DecodeDnsResource:
  464. 456 0000 CF92 push r12
  465. GAS LISTING /tmp/ccUyxdR2.s page 9
  466. 457 0002 DF92 push r13
  467. 458 0004 EF92 push r14
  468. 459 0006 FF92 push r15
  469. 460 0008 0F93 push r16
  470. 461 000a 1F93 push r17
  471. 462 000c CF93 push r28
  472. 463 000e DF93 push r29
  473. 464 /* prologue: function */
  474. 465 /* frame size = 0 */
  475. 466 /* stack size = 8 */
  476. 467 .L__stack_usage = 8
  477. 468 0010 EC01 movw r28,r24
  478. 469 0012 8B01 movw r16,r22
  479. 470 0014 BC01 movw r22,r24
  480. 471 0016 C801 movw r24,r16
  481. 472 0018 0E94 0000 call ScanName
  482. 473 001c F801 movw r30,r16
  483. 474 001e E80F add r30,r24
  484. 475 0020 F91F adc r31,r25
  485. 476 0022 2081 ld r18,Z
  486. 477 0024 30E0 ldi r19,0
  487. 478 0026 322F mov r19,r18
  488. 479 0028 2227 clr r18
  489. 480 002a 3B83 std Y+3,r19
  490. 481 002c 2A83 std Y+2,r18
  491. 482 002e 4181 ldd r20,Z+1
  492. 483 0030 242B or r18,r20
  493. 484 0032 3B83 std Y+3,r19
  494. 485 0034 2A83 std Y+2,r18
  495. 486 0036 FC01 movw r30,r24
  496. 487 0038 3296 adiw r30,2
  497. 488 003a E00F add r30,r16
  498. 489 003c F11F adc r31,r17
  499. 490 003e 2081 ld r18,Z
  500. 491 0040 30E0 ldi r19,0
  501. 492 0042 322F mov r19,r18
  502. 493 0044 2227 clr r18
  503. 494 0046 3D83 std Y+5,r19
  504. 495 0048 2C83 std Y+4,r18
  505. 496 004a 4181 ldd r20,Z+1
  506. 497 004c 242B or r18,r20
  507. 498 004e 3D83 std Y+5,r19
  508. 499 0050 2C83 std Y+4,r18
  509. 500 0052 FC01 movw r30,r24
  510. 501 0054 3496 adiw r30,4
  511. 502 0056 E00F add r30,r16
  512. 503 0058 F11F adc r31,r17
  513. 504 005a 4081 ld r20,Z
  514. 505 005c 50E0 ldi r21,0
  515. 506 005e 60E0 ldi r22,0
  516. 507 0060 70E0 ldi r23,0
  517. 508 0062 762F mov r23,r22
  518. 509 0064 652F mov r22,r21
  519. 510 0066 542F mov r21,r20
  520. 511 0068 4427 clr r20
  521. 512 006a 4E83 std Y+6,r20
  522. 513 006c 5F83 std Y+7,r21
  523. GAS LISTING /tmp/ccUyxdR2.s page 10
  524. 514 006e 6887 std Y+8,r22
  525. 515 0070 7987 std Y+9,r23
  526. 516 0072 2181 ldd r18,Z+1
  527. 517 0074 422B or r20,r18
  528. 518 0076 762F mov r23,r22
  529. 519 0078 652F mov r22,r21
  530. 520 007a 542F mov r21,r20
  531. 521 007c 4427 clr r20
  532. 522 007e 4E83 std Y+6,r20
  533. 523 0080 5F83 std Y+7,r21
  534. 524 0082 6887 std Y+8,r22
  535. 525 0084 7987 std Y+9,r23
  536. 526 0086 2281 ldd r18,Z+2
  537. 527 0088 422B or r20,r18
  538. 528 008a 762F mov r23,r22
  539. 529 008c 652F mov r22,r21
  540. 530 008e 542F mov r21,r20
  541. 531 0090 4427 clr r20
  542. 532 0092 4E83 std Y+6,r20
  543. 533 0094 5F83 std Y+7,r21
  544. 534 0096 6887 std Y+8,r22
  545. 535 0098 7987 std Y+9,r23
  546. 536 009a 2381 ldd r18,Z+3
  547. 537 009c 422B or r20,r18
  548. 538 009e 4E83 std Y+6,r20
  549. 539 00a0 5F83 std Y+7,r21
  550. 540 00a2 6887 std Y+8,r22
  551. 541 00a4 7987 std Y+9,r23
  552. 542 00a6 FC01 movw r30,r24
  553. 543 00a8 3896 adiw r30,8
  554. 544 00aa E00F add r30,r16
  555. 545 00ac F11F adc r31,r17
  556. 546 00ae E080 ld r14,Z
  557. 547 00b0 F12C mov r15,__zero_reg__
  558. 548 00b2 FE2C mov r15,r14
  559. 549 00b4 EE24 clr r14
  560. 550 00b6 FB86 std Y+11,r15
  561. 551 00b8 EA86 std Y+10,r14
  562. 552 00ba 2181 ldd r18,Z+1
  563. 553 00bc E22A or r14,r18
  564. 554 00be FB86 std Y+11,r15
  565. 555 00c0 EA86 std Y+10,r14
  566. 556 00c2 6C01 movw r12,r24
  567. 557 00c4 2AE0 ldi r18,10
  568. 558 00c6 C20E add r12,r18
  569. 559 00c8 D11C adc r13,__zero_reg__
  570. 560 00ca 0C0D add r16,r12
  571. 561 00cc 1D1D adc r17,r13
  572. 562 00ce 8C85 ldd r24,Y+12
  573. 563 00d0 9D85 ldd r25,Y+13
  574. 564 00d2 0097 sbiw r24,0
  575. 565 00d4 01F0 breq .L53
  576. 566 00d6 0E94 0000 call free
  577. 567 .L53:
  578. 568 00da C701 movw r24,r14
  579. 569 00dc 0E94 0000 call malloc
  580. 570 00e0 9D87 std Y+13,r25
  581. GAS LISTING /tmp/ccUyxdR2.s page 11
  582. 571 00e2 8C87 std Y+12,r24
  583. 572 00e4 A701 movw r20,r14
  584. 573 00e6 B801 movw r22,r16
  585. 574 00e8 0E94 0000 call memcpy
  586. 575 00ec C601 movw r24,r12
  587. 576 00ee 8E0D add r24,r14
  588. 577 00f0 9F1D adc r25,r15
  589. 578 /* epilogue start */
  590. 579 00f2 DF91 pop r29
  591. 580 00f4 CF91 pop r28
  592. 581 00f6 1F91 pop r17
  593. 582 00f8 0F91 pop r16
  594. 583 00fa FF90 pop r15
  595. 584 00fc EF90 pop r14
  596. 585 00fe DF90 pop r13
  597. 586 0100 CF90 pop r12
  598. 587 0102 0895 ret
  599. 588 .size DecodeDnsResource, .-DecodeDnsResource
  600. 589 .section .text.NutDnsConfig,"ax",@progbits
  601. 590 .global NutDnsConfig
  602. 591 .type NutDnsConfig, @function
  603. 592 NutDnsConfig:
  604. 593 0000 EF92 push r14
  605. 594 0002 FF92 push r15
  606. 595 0004 0F93 push r16
  607. 596 0006 1F93 push r17
  608. 597 /* prologue: function */
  609. 598 /* frame size = 0 */
  610. 599 /* stack size = 4 */
  611. 600 .L__stack_usage = 4
  612. 601 0008 E12C mov r14,__zero_reg__
  613. 602 000a F12C mov r15,__zero_reg__
  614. 603 000c 8701 movw r16,r14
  615. 604 000e 0E94 0000 call NutDnsConfig2
  616. 605 /* epilogue start */
  617. 606 0012 1F91 pop r17
  618. 607 0014 0F91 pop r16
  619. 608 0016 FF90 pop r15
  620. 609 0018 EF90 pop r14
  621. 610 001a 0895 ret
  622. 611 .size NutDnsConfig, .-NutDnsConfig
  623. 612 .section .text.NutDnsGetConfig2,"ax",@progbits
  624. 613 .global NutDnsGetConfig2
  625. 614 .type NutDnsGetConfig2, @function
  626. 615 NutDnsGetConfig2:
  627. 616 /* prologue: function */
  628. 617 /* frame size = 0 */
  629. 618 /* stack size = 0 */
  630. 619 .L__stack_usage = 0
  631. 620 0000 0097 sbiw r24,0
  632. 621 0002 01F0 breq .L59
  633. 622 0004 E091 0000 lds r30,confdns
  634. 623 0008 F091 0000 lds r31,confdns+1
  635. 624 000c DC01 movw r26,r24
  636. 625 000e ED93 st X+,r30
  637. 626 0010 FC93 st X,r31
  638. 627 .L59:
  639. GAS LISTING /tmp/ccUyxdR2.s page 12
  640. 628 0012 6115 cp r22,__zero_reg__
  641. 629 0014 7105 cpc r23,__zero_reg__
  642. 630 0016 01F0 breq .L60
  643. 631 0018 8091 0000 lds r24,confdns+2
  644. 632 001c 9091 0000 lds r25,confdns+2+1
  645. 633 0020 FB01 movw r30,r22
  646. 634 0022 9183 std Z+1,r25
  647. 635 0024 8083 st Z,r24
  648. 636 .L60:
  649. 637 0026 4115 cp r20,__zero_reg__
  650. 638 0028 5105 cpc r21,__zero_reg__
  651. 639 002a 01F0 breq .L61
  652. 640 002c 8091 0000 lds r24,confdns+4
  653. 641 0030 9091 0000 lds r25,confdns+4+1
  654. 642 0034 A091 0000 lds r26,confdns+4+2
  655. 643 0038 B091 0000 lds r27,confdns+4+3
  656. 644 003c FA01 movw r30,r20
  657. 645 003e 8083 st Z,r24
  658. 646 0040 9183 std Z+1,r25
  659. 647 0042 A283 std Z+2,r26
  660. 648 0044 B383 std Z+3,r27
  661. 649 .L61:
  662. 650 0046 2115 cp r18,__zero_reg__
  663. 651 0048 3105 cpc r19,__zero_reg__
  664. 652 004a 01F0 breq .L58
  665. 653 004c 8091 0000 lds r24,confdns+8
  666. 654 0050 9091 0000 lds r25,confdns+8+1
  667. 655 0054 A091 0000 lds r26,confdns+8+2
  668. 656 0058 B091 0000 lds r27,confdns+8+3
  669. 657 005c F901 movw r30,r18
  670. 658 005e 8083 st Z,r24
  671. 659 0060 9183 std Z+1,r25
  672. 660 0062 A283 std Z+2,r26
  673. 661 0064 B383 std Z+3,r27
  674. 662 .L58:
  675. 663 0066 0895 ret
  676. 664 .size NutDnsGetConfig2, .-NutDnsGetConfig2
  677. 665 .section .text.NutDnsGetResource,"ax",@progbits
  678. 666 .global NutDnsGetResource
  679. 667 .type NutDnsGetResource, @function
  680. 668 NutDnsGetResource:
  681. 669 0000 2F92 push r2
  682. 670 0002 3F92 push r3
  683. 671 0004 4F92 push r4
  684. 672 0006 5F92 push r5
  685. 673 0008 6F92 push r6
  686. 674 000a 7F92 push r7
  687. 675 000c 8F92 push r8
  688. 676 000e 9F92 push r9
  689. 677 0010 AF92 push r10
  690. 678 0012 BF92 push r11
  691. 679 0014 CF92 push r12
  692. 680 0016 DF92 push r13
  693. 681 0018 EF92 push r14
  694. 682 001a FF92 push r15
  695. 683 001c 0F93 push r16
  696. 684 001e 1F93 push r17
  697. GAS LISTING /tmp/ccUyxdR2.s page 13
  698. 685 0020 CF93 push r28
  699. 686 0022 DF93 push r29
  700. 687 0024 CDB7 in r28,__SP_L__
  701. 688 0026 DEB7 in r29,__SP_H__
  702. 689 0028 2E97 sbiw r28,14
  703. 690 002a 0FB6 in __tmp_reg__,__SREG__
  704. 691 002c F894 cli
  705. 692 002e DEBF out __SP_H__,r29
  706. 693 0030 0FBE out __SREG__,__tmp_reg__
  707. 694 0032 CDBF out __SP_L__,r28
  708. 695 /* prologue: function */
  709. 696 /* frame size = 14 */
  710. 697 /* stack size = 32 */
  711. 698 .L__stack_usage = 32
  712. 699 0034 9A87 std Y+10,r25
  713. 700 0036 8987 std Y+9,r24
  714. 701 0038 7C87 std Y+12,r23
  715. 702 003a 6B87 std Y+11,r22
  716. 703 003c 8091 0000 lds r24,confdns+4
  717. 704 0040 9091 0000 lds r25,confdns+4+1
  718. 705 0044 A091 0000 lds r26,confdns+4+2
  719. 706 0048 B091 0000 lds r27,confdns+4+3
  720. 707 004c 892B or r24,r25
  721. 708 004e 8A2B or r24,r26
  722. 709 0050 8B2B or r24,r27
  723. 710 0052 01F4 brne .L76
  724. 711 0054 8091 0000 lds r24,confdns+8
  725. 712 0058 9091 0000 lds r25,confdns+8+1
  726. 713 005c A091 0000 lds r26,confdns+8+2
  727. 714 0060 B091 0000 lds r27,confdns+8+3
  728. 715 0064 892B or r24,r25
  729. 716 0066 8A2B or r24,r26
  730. 717 0068 8B2B or r24,r27
  731. 718 006a 01F4 brne .L76
  732. 719 .L78:
  733. 720 006c 60E0 ldi r22,0
  734. 721 006e 70E0 ldi r23,0
  735. 722 0070 80E0 ldi r24,0
  736. 723 0072 90E0 ldi r25,0
  737. 724 0074 00C0 rjmp .L77
  738. 725 .L76:
  739. 726 0076 80E0 ldi r24,0
  740. 727 0078 90E0 ldi r25,0
  741. 728 007a 0E94 0000 call NutUdpCreateSocket
  742. 729 007e 2C01 movw r4,r24
  743. 730 0080 892B or r24,r25
  744. 731 0082 01F0 breq .L78
  745. 732 0084 80E0 ldi r24,0
  746. 733 0086 92E0 ldi r25,lo8(2)
  747. 734 0088 0E94 0000 call malloc
  748. 735 008c 4C01 movw r8,r24
  749. 736 008e 212C mov r2,__zero_reg__
  750. 737 0090 312C mov r3,__zero_reg__
  751. 738 0092 1886 std Y+8,__zero_reg__
  752. 739 0094 1F82 std Y+7,__zero_reg__
  753. 740 0096 A12C mov r10,__zero_reg__
  754. 741 0098 B12C mov r11,__zero_reg__
  755. GAS LISTING /tmp/ccUyxdR2.s page 14
  756. 742 009a 612C mov r6,__zero_reg__
  757. 743 009c 712C mov r7,__zero_reg__
  758. 744 009e 0C96 adiw r24,12
  759. 745 00a0 9E87 std Y+14,r25
  760. 746 00a2 8D87 std Y+13,r24
  761. 747 .L92:
  762. 748 00a4 162D mov r17,r6
  763. 749 00a6 9FEF ldi r25,-1
  764. 750 00a8 691A sub r6,r25
  765. 751 00aa 790A sbc r7,r25
  766. 752 00ac A114 cp r10,__zero_reg__
  767. 753 00ae B104 cpc r11,__zero_reg__
  768. 754 00b0 01F4 brne .L79
  769. 755 00b2 6CE0 ldi r22,lo8(12)
  770. 756 00b4 70E0 ldi r23,0
  771. 757 00b6 81E0 ldi r24,lo8(1)
  772. 758 00b8 90E0 ldi r25,0
  773. 759 00ba 0E94 0000 call calloc
  774. 760 00be 5C01 movw r10,r24
  775. 761 00c0 892B or r24,r25
  776. 762 00c2 01F0 breq .L80
  777. 763 .L79:
  778. 764 00c4 D501 movw r26,r10
  779. 765 00c6 1196 adiw r26,1
  780. 766 00c8 7C92 st X,r7
  781. 767 00ca 6E92 st -X,r6
  782. 768 00cc E0E0 ldi r30,0
  783. 769 00ce F1E0 ldi r31,lo8(1)
  784. 770 00d0 1396 adiw r26,2+1
  785. 771 00d2 FC93 st X,r31
  786. 772 00d4 EE93 st -X,r30
  787. 773 00d6 1297 sbiw r26,2
  788. 774 00d8 81E0 ldi r24,lo8(1)
  789. 775 00da 90E0 ldi r25,0
  790. 776 00dc 1596 adiw r26,4+1
  791. 777 00de 9C93 st X,r25
  792. 778 00e0 8E93 st -X,r24
  793. 779 00e2 1497 sbiw r26,4
  794. 780 .L80:
  795. 781 00e4 4B85 ldd r20,Y+11
  796. 782 00e6 5C85 ldd r21,Y+12
  797. 783 00e8 6985 ldd r22,Y+9
  798. 784 00ea 7A85 ldd r23,Y+10
  799. 785 00ec 8F81 ldd r24,Y+7
  800. 786 00ee 9885 ldd r25,Y+8
  801. 787 00f0 0E94 0000 call CreateDnsQuestion
  802. 788 00f4 9887 std Y+8,r25
  803. 789 00f6 8F83 std Y+7,r24
  804. 790 00f8 D501 movw r26,r10
  805. 791 00fa 8C91 ld r24,X
  806. 792 00fc 1196 adiw r26,1
  807. 793 00fe 9C91 ld r25,X
  808. 794 0100 1197 sbiw r26,1
  809. 795 0102 F401 movw r30,r8
  810. 796 0104 9083 st Z,r25
  811. 797 0106 8183 std Z+1,r24
  812. 798 0108 1296 adiw r26,2
  813. GAS LISTING /tmp/ccUyxdR2.s page 15
  814. 799 010a 8C91 ld r24,X
  815. 800 010c 1297 sbiw r26,2
  816. 801 010e 1396 adiw r26,3
  817. 802 0110 9C91 ld r25,X
  818. 803 0112 1397 sbiw r26,3
  819. 804 0114 9283 std Z+2,r25
  820. 805 0116 8383 std Z+3,r24
  821. 806 0118 1496 adiw r26,4
  822. 807 011a 8C91 ld r24,X
  823. 808 011c 1497 sbiw r26,4
  824. 809 011e 1596 adiw r26,5
  825. 810 0120 9C91 ld r25,X
  826. 811 0122 1597 sbiw r26,5
  827. 812 0124 9483 std Z+4,r25
  828. 813 0126 8583 std Z+5,r24
  829. 814 0128 1696 adiw r26,6
  830. 815 012a 8C91 ld r24,X
  831. 816 012c 1697 sbiw r26,6
  832. 817 012e 1796 adiw r26,7
  833. 818 0130 9C91 ld r25,X
  834. 819 0132 1797 sbiw r26,7
  835. 820 0134 9683 std Z+6,r25
  836. 821 0136 8783 std Z+7,r24
  837. 822 0138 1896 adiw r26,8
  838. 823 013a 8C91 ld r24,X
  839. 824 013c 1897 sbiw r26,8
  840. 825 013e 1996 adiw r26,9
  841. 826 0140 9C91 ld r25,X
  842. 827 0142 1997 sbiw r26,9
  843. 828 0144 9087 std Z+8,r25
  844. 829 0146 8187 std Z+9,r24
  845. 830 0148 1A96 adiw r26,10
  846. 831 014a 8C91 ld r24,X
  847. 832 014c 1A97 sbiw r26,10
  848. 833 014e 1B96 adiw r26,11
  849. 834 0150 9C91 ld r25,X
  850. 835 0152 9287 std Z+10,r25
  851. 836 0154 8387 std Z+11,r24
  852. 837 0156 6F81 ldd r22,Y+7
  853. 838 0158 7885 ldd r23,Y+8
  854. 839 015a 8D85 ldd r24,Y+13
  855. 840 015c 9E85 ldd r25,Y+14
  856. 841 015e 0E94 0000 call EncodeDnsQuestion
  857. 842 0162 0C96 adiw r24,12
  858. 843 0164 7C01 movw r14,r24
  859. 844 0166 10FF sbrs r17,0
  860. 845 0168 00C0 rjmp .L81
  861. 846 016a 4091 0000 lds r20,confdns+8
  862. 847 016e 5091 0000 lds r21,confdns+8+1
  863. 848 0172 6091 0000 lds r22,confdns+8+2
  864. 849 0176 7091 0000 lds r23,confdns+8+3
  865. 850 017a 4115 cp r20,__zero_reg__
  866. 851 017c 5105 cpc r21,__zero_reg__
  867. 852 017e 6105 cpc r22,__zero_reg__
  868. 853 0180 7105 cpc r23,__zero_reg__
  869. 854 0182 01F4 brne .L82
  870. 855 .L81:
  871. GAS LISTING /tmp/ccUyxdR2.s page 16
  872. 856 0184 4091 0000 lds r20,confdns+4
  873. 857 0188 5091 0000 lds r21,confdns+4+1
  874. 858 018c 6091 0000 lds r22,confdns+4+2
  875. 859 0190 7091 0000 lds r23,confdns+4+3
  876. 860 .L82:
  877. 861 0194 8401 movw r16,r8
  878. 862 0196 25E3 ldi r18,lo8(53)
  879. 863 0198 30E0 ldi r19,0
  880. 864 019a C201 movw r24,r4
  881. 865 019c 0E94 0000 call NutUdpSendTo
  882. 866 01a0 97FD sbrc r25,7
  883. 867 01a2 00C0 rjmp .L96
  884. 868 .L87:
  885. 869 01a4 58EE ldi r21,lo8(-24)
  886. 870 01a6 C52E mov r12,r21
  887. 871 01a8 53E0 ldi r21,lo8(3)
  888. 872 01aa D52E mov r13,r21
  889. 873 01ac E12C mov r14,__zero_reg__
  890. 874 01ae F12C mov r15,__zero_reg__
  891. 875 01b0 00E0 ldi r16,0
  892. 876 01b2 12E0 ldi r17,lo8(2)
  893. 877 01b4 9401 movw r18,r8
  894. 878 01b6 AE01 movw r20,r28
  895. 879 01b8 4B5F subi r20,-5
  896. 880 01ba 5F4F sbci r21,-1
  897. 881 01bc BE01 movw r22,r28
  898. 882 01be 6F5F subi r22,-1
  899. 883 01c0 7F4F sbci r23,-1
  900. 884 01c2 C201 movw r24,r4
  901. 885 01c4 0E94 0000 call NutUdpReceiveFrom
  902. 886 01c8 1816 cp __zero_reg__,r24
  903. 887 01ca 1906 cpc __zero_reg__,r25
  904. 888 01cc 04F0 brlt .+2
  905. 889 01ce 00C0 rjmp .L86
  906. 890 01d0 0D97 sbiw r24,13
  907. 891 01d2 04F0 brlt .L87
  908. 892 01d4 B401 movw r22,r8
  909. 893 01d6 C501 movw r24,r10
  910. 894 01d8 0E94 0000 call DecodeDnsHeader
  911. 895 01dc 7C01 movw r14,r24
  912. 896 01de D501 movw r26,r10
  913. 897 01e0 8D91 ld r24,X+
  914. 898 01e2 9C91 ld r25,X
  915. 899 01e4 1197 sbiw r26,1
  916. 900 01e6 6816 cp r6,r24
  917. 901 01e8 7906 cpc r7,r25
  918. 902 01ea 01F4 brne .L87
  919. 903 01ec E114 cp r14,__zero_reg__
  920. 904 01ee F104 cpc r15,__zero_reg__
  921. 905 01f0 01F4 brne .+2
  922. 906 01f2 00C0 rjmp .L86
  923. 907 01f4 1496 adiw r26,4
  924. 908 01f6 8D91 ld r24,X+
  925. 909 01f8 9C91 ld r25,X
  926. 910 01fa 1597 sbiw r26,4+1
  927. 911 01fc 0197 sbiw r24,1
  928. 912 01fe 01F0 breq .+2
  929. GAS LISTING /tmp/ccUyxdR2.s page 17
  930. 913 0200 00C0 rjmp .L86
  931. 914 0202 B401 movw r22,r8
  932. 915 0204 6E0D add r22,r14
  933. 916 0206 7F1D adc r23,r15
  934. 917 0208 8F81 ldd r24,Y+7
  935. 918 020a 9885 ldd r25,Y+8
  936. 919 020c 0E94 0000 call DecodeDnsQuestion
  937. 920 0210 E80E add r14,r24
  938. 921 0212 F91E adc r15,r25
  939. 922 0214 F501 movw r30,r10
  940. 923 0216 8681 ldd r24,Z+6
  941. 924 0218 9781 ldd r25,Z+7
  942. 925 021a 892B or r24,r25
  943. 926 021c 01F4 brne .+2
  944. 927 021e 00C0 rjmp .L96
  945. 928 0220 01E0 ldi r16,lo8(1)
  946. 929 0222 10E0 ldi r17,0
  947. 930 .L88:
  948. 931 0224 F501 movw r30,r10
  949. 932 0226 8681 ldd r24,Z+6
  950. 933 0228 9781 ldd r25,Z+7
  951. 934 022a 8017 cp r24,r16
  952. 935 022c 9107 cpc r25,r17
  953. 936 022e 04F0 brlt .L90
  954. 937 0230 2114 cp r2,__zero_reg__
  955. 938 0232 3104 cpc r3,__zero_reg__
  956. 939 0234 01F4 brne .L89
  957. 940 0236 6EE0 ldi r22,lo8(14)
  958. 941 0238 70E0 ldi r23,0
  959. 942 023a 81E0 ldi r24,lo8(1)
  960. 943 023c 90E0 ldi r25,0
  961. 944 023e 0E94 0000 call calloc
  962. 945 0242 1C01 movw r2,r24
  963. 946 .L89:
  964. 947 0244 B401 movw r22,r8
  965. 948 0246 6E0D add r22,r14
  966. 949 0248 7F1D adc r23,r15
  967. 950 024a C101 movw r24,r2
  968. 951 024c 0E94 0000 call DecodeDnsResource
  969. 952 0250 E80E add r14,r24
  970. 953 0252 F91E adc r15,r25
  971. 954 0254 D101 movw r26,r2
  972. 955 0256 1296 adiw r26,2
  973. 956 0258 8D91 ld r24,X+
  974. 957 025a 9C91 ld r25,X
  975. 958 025c 1397 sbiw r26,2+1
  976. 959 025e 0197 sbiw r24,1
  977. 960 0260 01F0 breq .L90
  978. 961 0262 0F5F subi r16,-1
  979. 962 0264 1F4F sbci r17,-1
  980. 963 0266 00C0 rjmp .L88
  981. 964 .L90:
  982. 965 0268 D101 movw r26,r2
  983. 966 026a 1A96 adiw r26,10
  984. 967 026c 8D91 ld r24,X+
  985. 968 026e 9C91 ld r25,X
  986. 969 0270 1B97 sbiw r26,10+1
  987. GAS LISTING /tmp/ccUyxdR2.s page 18
  988. 970 0272 0497 sbiw r24,4
  989. 971 0274 01F4 brne .L86
  990. 972 0276 1C96 adiw r26,12
  991. 973 0278 ED91 ld r30,X+
  992. 974 027a FC91 ld r31,X
  993. 975 027c 1D97 sbiw r26,12+1
  994. 976 027e 2081 ld r18,Z
  995. 977 0280 C180 ldd r12,Z+1
  996. 978 0282 D12C mov r13,__zero_reg__
  997. 979 0284 E12C mov r14,__zero_reg__
  998. 980 0286 F12C mov r15,__zero_reg__
  999. 981 0288 FE2C mov r15,r14
  1000. 982 028a ED2C mov r14,r13
  1001. 983 028c DC2C mov r13,r12
  1002. 984 028e CC24 clr r12
  1003. 985 0290 9281 ldd r25,Z+2
  1004. 986 0292 892F mov r24,r25
  1005. 987 0294 90E0 ldi r25,0
  1006. 988 0296 A0E0 ldi r26,0
  1007. 989 0298 B0E0 ldi r27,0
  1008. 990 029a DC01 movw r26,r24
  1009. 991 029c 9927 clr r25
  1010. 992 029e 8827 clr r24
  1011. 993 02a0 C80E add r12,r24
  1012. 994 02a2 D91E adc r13,r25
  1013. 995 02a4 EA1E adc r14,r26
  1014. 996 02a6 FB1E adc r15,r27
  1015. 997 02a8 D701 movw r26,r14
  1016. 998 02aa C601 movw r24,r12
  1017. 999 02ac 820F add r24,r18
  1018. 1000 02ae 911D adc r25,__zero_reg__
  1019. 1001 02b0 A11D adc r26,__zero_reg__
  1020. 1002 02b2 B11D adc r27,__zero_reg__
  1021. 1003 02b4 C380 ldd r12,Z+3
  1022. 1004 02b6 D12C mov r13,__zero_reg__
  1023. 1005 02b8 E12C mov r14,__zero_reg__
  1024. 1006 02ba F12C mov r15,__zero_reg__
  1025. 1007 02bc FC2C mov r15,r12
  1026. 1008 02be EE24 clr r14
  1027. 1009 02c0 DD24 clr r13
  1028. 1010 02c2 CC24 clr r12
  1029. 1011 02c4 C80E add r12,r24
  1030. 1012 02c6 D91E adc r13,r25
  1031. 1013 02c8 EA1E adc r14,r26
  1032. 1014 02ca FB1E adc r15,r27
  1033. 1015 02cc 00C0 rjmp .L83
  1034. 1016 .L86:
  1035. 1017 02ce B6E0 ldi r27,6
  1036. 1018 02d0 6B16 cp r6,r27
  1037. 1019 02d2 7104 cpc r7,__zero_reg__
  1038. 1020 02d4 01F0 breq .+2
  1039. 1021 02d6 00C0 rjmp .L92
  1040. 1022 .L96:
  1041. 1023 02d8 C12C mov r12,__zero_reg__
  1042. 1024 02da D12C mov r13,__zero_reg__
  1043. 1025 02dc 7601 movw r14,r12
  1044. 1026 .L83:
  1045. GAS LISTING /tmp/ccUyxdR2.s page 19
  1046. 1027 02de A114 cp r10,__zero_reg__
  1047. 1028 02e0 B104 cpc r11,__zero_reg__
  1048. 1029 02e2 01F0 breq .L93
  1049. 1030 02e4 C501 movw r24,r10
  1050. 1031 02e6 0E94 0000 call free
  1051. 1032 .L93:
  1052. 1033 02ea 8F81 ldd r24,Y+7
  1053. 1034 02ec 9885 ldd r25,Y+8
  1054. 1035 02ee 0E94 0000 call ReleaseDnsQuestion
  1055. 1036 02f2 C101 movw r24,r2
  1056. 1037 02f4 0E94 0000 call ReleaseDnsResource
  1057. 1038 02f8 C401 movw r24,r8
  1058. 1039 02fa 0E94 0000 call free
  1059. 1040 02fe C201 movw r24,r4
  1060. 1041 0300 0E94 0000 call NutUdpDestroySocket
  1061. 1042 0304 B601 movw r22,r12
  1062. 1043 0306 C701 movw r24,r14
  1063. 1044 .L77:
  1064. 1045 /* epilogue start */
  1065. 1046 0308 2E96 adiw r28,14
  1066. 1047 030a 0FB6 in __tmp_reg__,__SREG__
  1067. 1048 030c F894 cli
  1068. 1049 030e DEBF out __SP_H__,r29
  1069. 1050 0310 0FBE out __SREG__,__tmp_reg__
  1070. 1051 0312 CDBF out __SP_L__,r28
  1071. 1052 0314 DF91 pop r29
  1072. 1053 0316 CF91 pop r28
  1073. 1054 0318 1F91 pop r17
  1074. 1055 031a 0F91 pop r16
  1075. 1056 031c FF90 pop r15
  1076. 1057 031e EF90 pop r14
  1077. 1058 0320 DF90 pop r13
  1078. 1059 0322 CF90 pop r12
  1079. 1060 0324 BF90 pop r11
  1080. 1061 0326 AF90 pop r10
  1081. 1062 0328 9F90 pop r9
  1082. 1063 032a 8F90 pop r8
  1083. 1064 032c 7F90 pop r7
  1084. 1065 032e 6F90 pop r6
  1085. 1066 0330 5F90 pop r5
  1086. 1067 0332 4F90 pop r4
  1087. 1068 0334 3F90 pop r3
  1088. 1069 0336 2F90 pop r2
  1089. 1070 0338 0895 ret
  1090. 1071 .size NutDnsGetResource, .-NutDnsGetResource
  1091. 1072 .section .text.NutDnsGetHostByName,"ax",@progbits
  1092. 1073 .global NutDnsGetHostByName
  1093. 1074 .type NutDnsGetHostByName, @function
  1094. 1075 NutDnsGetHostByName:
  1095. 1076 /* prologue: function */
  1096. 1077 /* frame size = 0 */
  1097. 1078 /* stack size = 0 */
  1098. 1079 .L__stack_usage = 0
  1099. 1080 0000 61E0 ldi r22,lo8(1)
  1100. 1081 0002 70E0 ldi r23,0
  1101. 1082 0004 0C94 0000 jmp NutDnsGetResource
  1102. 1083 .size NutDnsGetHostByName, .-NutDnsGetHostByName
  1103. GAS LISTING /tmp/ccUyxdR2.s page 20
  1104. 1084 .section .text.NutDnsGetMxByDomain,"ax",@progbits
  1105. 1085 .global NutDnsGetMxByDomain
  1106. 1086 .type NutDnsGetMxByDomain, @function
  1107. 1087 NutDnsGetMxByDomain:
  1108. 1088 /* prologue: function */
  1109. 1089 /* frame size = 0 */
  1110. 1090 /* stack size = 0 */
  1111. 1091 .L__stack_usage = 0
  1112. 1092 0000 6FE0 ldi r22,lo8(15)
  1113. 1093 0002 70E0 ldi r23,0
  1114. 1094 0004 0C94 0000 jmp NutDnsGetResource
  1115. 1095 .size NutDnsGetMxByDomain, .-NutDnsGetMxByDomain
  1116. 1096 .section .text.NutDnsGetResourceAll,"ax",@progbits
  1117. 1097 .global NutDnsGetResourceAll
  1118. 1098 .type NutDnsGetResourceAll, @function
  1119. 1099 NutDnsGetResourceAll:
  1120. 1100 0000 2F92 push r2
  1121. 1101 0002 3F92 push r3
  1122. 1102 0004 4F92 push r4
  1123. 1103 0006 5F92 push r5
  1124. 1104 0008 6F92 push r6
  1125. 1105 000a 7F92 push r7
  1126. 1106 000c 8F92 push r8
  1127. 1107 000e 9F92 push r9
  1128. 1108 0010 AF92 push r10
  1129. 1109 0012 BF92 push r11
  1130. 1110 0014 CF92 push r12
  1131. 1111 0016 DF92 push r13
  1132. 1112 0018 EF92 push r14
  1133. 1113 001a FF92 push r15
  1134. 1114 001c 0F93 push r16
  1135. 1115 001e 1F93 push r17
  1136. 1116 0020 CF93 push r28
  1137. 1117 0022 DF93 push r29
  1138. 1118 0024 CDB7 in r28,__SP_L__
  1139. 1119 0026 DEB7 in r29,__SP_H__
  1140. 1120 0028 6597 sbiw r28,21
  1141. 1121 002a 0FB6 in __tmp_reg__,__SREG__
  1142. 1122 002c F894 cli
  1143. 1123 002e DEBF out __SP_H__,r29
  1144. 1124 0030 0FBE out __SREG__,__tmp_reg__
  1145. 1125 0032 CDBF out __SP_L__,r28
  1146. 1126 /* prologue: function */
  1147. 1127 /* frame size = 21 */
  1148. 1128 /* stack size = 39 */
  1149. 1129 .L__stack_usage = 39
  1150. 1130 0034 9F87 std Y+15,r25
  1151. 1131 0036 8E87 std Y+14,r24
  1152. 1132 0038 798B std Y+17,r23
  1153. 1133 003a 688B std Y+16,r22
  1154. 1134 003c 5D87 std Y+13,r21
  1155. 1135 003e 4C87 std Y+12,r20
  1156. 1136 0040 FA01 movw r30,r20
  1157. 1137 0042 CA01 movw r24,r20
  1158. 1138 0044 8096 adiw r24,32
  1159. 1139 .L121:
  1160. 1140 0046 1192 st Z+,__zero_reg__
  1161. GAS LISTING /tmp/ccUyxdR2.s page 21
  1162. 1141 0048 1192 st Z+,__zero_reg__
  1163. 1142 004a 1192 st Z+,__zero_reg__
  1164. 1143 004c 1192 st Z+,__zero_reg__
  1165. 1144 004e 8E17 cp r24,r30
  1166. 1145 0050 9F07 cpc r25,r31
  1167. 1146 0052 01F4 brne .L121
  1168. 1147 0054 8091 0000 lds r24,confdns+4
  1169. 1148 0058 9091 0000 lds r25,confdns+4+1
  1170. 1149 005c A091 0000 lds r26,confdns+4+2
  1171. 1150 0060 B091 0000 lds r27,confdns+4+3
  1172. 1151 0064 892B or r24,r25
  1173. 1152 0066 8A2B or r24,r26
  1174. 1153 0068 8B2B or r24,r27
  1175. 1154 006a 01F4 brne .L122
  1176. 1155 006c 8091 0000 lds r24,confdns+8
  1177. 1156 0070 9091 0000 lds r25,confdns+8+1
  1178. 1157 0074 A091 0000 lds r26,confdns+8+2
  1179. 1158 0078 B091 0000 lds r27,confdns+8+3
  1180. 1159 007c 892B or r24,r25
  1181. 1160 007e 8A2B or r24,r26
  1182. 1161 0080 8B2B or r24,r27
  1183. 1162 0082 01F4 brne .L122
  1184. 1163 .L124:
  1185. 1164 0084 80E0 ldi r24,0
  1186. 1165 0086 00C0 rjmp .L123
  1187. 1166 .L122:
  1188. 1167 0088 80E0 ldi r24,0
  1189. 1168 008a 90E0 ldi r25,0
  1190. 1169 008c 0E94 0000 call NutUdpCreateSocket
  1191. 1170 0090 2C01 movw r4,r24
  1192. 1171 0092 892B or r24,r25
  1193. 1172 0094 01F0 breq .L124
  1194. 1173 0096 60E0 ldi r22,0
  1195. 1174 0098 72E0 ldi r23,lo8(2)
  1196. 1175 009a 80E0 ldi r24,lo8(heapFreeList)
  1197. 1176 009c 90E0 ldi r25,hi8(heapFreeList)
  1198. 1177 009e 0E94 0000 call NutHeapRootAlloc
  1199. 1178 00a2 4C01 movw r8,r24
  1200. 1179 00a4 212C mov r2,__zero_reg__
  1201. 1180 00a6 312C mov r3,__zero_reg__
  1202. 1181 00a8 1986 std Y+9,__zero_reg__
  1203. 1182 00aa 1886 std Y+8,__zero_reg__
  1204. 1183 00ac A12C mov r10,__zero_reg__
  1205. 1184 00ae B12C mov r11,__zero_reg__
  1206. 1185 00b0 612C mov r6,__zero_reg__
  1207. 1186 00b2 712C mov r7,__zero_reg__
  1208. 1187 00b4 28E0 ldi r18,lo8(8)
  1209. 1188 00b6 2F83 std Y+7,r18
  1210. 1189 00b8 0C96 adiw r24,12
  1211. 1190 00ba 9B8B std Y+19,r25
  1212. 1191 00bc 8A8B std Y+18,r24
  1213. 1192 .L138:
  1214. 1193 00be 162D mov r17,r6
  1215. 1194 00c0 9FEF ldi r25,-1
  1216. 1195 00c2 691A sub r6,r25
  1217. 1196 00c4 790A sbc r7,r25
  1218. 1197 00c6 A114 cp r10,__zero_reg__
  1219. GAS LISTING /tmp/ccUyxdR2.s page 22
  1220. 1198 00c8 B104 cpc r11,__zero_reg__
  1221. 1199 00ca 01F4 brne .L125
  1222. 1200 00cc 6CE0 ldi r22,lo8(12)
  1223. 1201 00ce 70E0 ldi r23,0
  1224. 1202 00d0 81E0 ldi r24,lo8(1)
  1225. 1203 00d2 90E0 ldi r25,0
  1226. 1204 00d4 0E94 0000 call calloc
  1227. 1205 00d8 5C01 movw r10,r24
  1228. 1206 00da 892B or r24,r25
  1229. 1207 00dc 01F0 breq .L126
  1230. 1208 .L125:
  1231. 1209 00de F501 movw r30,r10
  1232. 1210 00e0 7182 std Z+1,r7
  1233. 1211 00e2 6082 st Z,r6
  1234. 1212 00e4 C12C mov r12,__zero_reg__
  1235. 1213 00e6 DD24 clr r13
  1236. 1214 00e8 D394 inc r13
  1237. 1215 00ea D382 std Z+3,r13
  1238. 1216 00ec C282 std Z+2,r12
  1239. 1217 00ee EE24 clr r14
  1240. 1218 00f0 E394 inc r14
  1241. 1219 00f2 F12C mov r15,__zero_reg__
  1242. 1220 00f4 F582 std Z+5,r15
  1243. 1221 00f6 E482 std Z+4,r14
  1244. 1222 .L126:
  1245. 1223 00f8 4889 ldd r20,Y+16
  1246. 1224 00fa 5989 ldd r21,Y+17
  1247. 1225 00fc 6E85 ldd r22,Y+14
  1248. 1226 00fe 7F85 ldd r23,Y+15
  1249. 1227 0100 8885 ldd r24,Y+8
  1250. 1228 0102 9985 ldd r25,Y+9
  1251. 1229 0104 0E94 0000 call CreateDnsQuestion
  1252. 1230 0108 9987 std Y+9,r25
  1253. 1231 010a 8887 std Y+8,r24
  1254. 1232 010c F501 movw r30,r10
  1255. 1233 010e 8081 ld r24,Z
  1256. 1234 0110 9181 ldd r25,Z+1
  1257. 1235 0112 F401 movw r30,r8
  1258. 1236 0114 9083 st Z,r25
  1259. 1237 0116 8183 std Z+1,r24
  1260. 1238 0118 F501 movw r30,r10
  1261. 1239 011a 8281 ldd r24,Z+2
  1262. 1240 011c 9381 ldd r25,Z+3
  1263. 1241 011e F401 movw r30,r8
  1264. 1242 0120 9283 std Z+2,r25
  1265. 1243 0122 8383 std Z+3,r24
  1266. 1244 0124 F501 movw r30,r10
  1267. 1245 0126 8481 ldd r24,Z+4
  1268. 1246 0128 9581 ldd r25,Z+5
  1269. 1247 012a F401 movw r30,r8
  1270. 1248 012c 9483 std Z+4,r25
  1271. 1249 012e 8583 std Z+5,r24
  1272. 1250 0130 F501 movw r30,r10
  1273. 1251 0132 8681 ldd r24,Z+6
  1274. 1252 0134 9781 ldd r25,Z+7
  1275. 1253 0136 F401 movw r30,r8
  1276. 1254 0138 9683 std Z+6,r25
  1277. GAS LISTING /tmp/ccUyxdR2.s page 23
  1278. 1255 013a 8783 std Z+7,r24
  1279. 1256 013c F501 movw r30,r10
  1280. 1257 013e 8085 ldd r24,Z+8
  1281. 1258 0140 9185 ldd r25,Z+9
  1282. 1259 0142 F401 movw r30,r8
  1283. 1260 0144 9087 std Z+8,r25
  1284. 1261 0146 8187 std Z+9,r24
  1285. 1262 0148 F501 movw r30,r10
  1286. 1263 014a 8285 ldd r24,Z+10
  1287. 1264 014c 9385 ldd r25,Z+11
  1288. 1265 014e F401 movw r30,r8
  1289. 1266 0150 9287 std Z+10,r25
  1290. 1267 0152 8387 std Z+11,r24
  1291. 1268 0154 6885 ldd r22,Y+8
  1292. 1269 0156 7985 ldd r23,Y+9
  1293. 1270 0158 8A89 ldd r24,Y+18
  1294. 1271 015a 9B89 ldd r25,Y+19
  1295. 1272 015c 0E94 0000 call EncodeDnsQuestion
  1296. 1273 0160 0C96 adiw r24,12
  1297. 1274 0162 7C01 movw r14,r24
  1298. 1275 0164 10FF sbrs r17,0
  1299. 1276 0166 00C0 rjmp .L127
  1300. 1277 0168 4091 0000 lds r20,confdns+8
  1301. 1278 016c 5091 0000 lds r21,confdns+8+1
  1302. 1279 0170 6091 0000 lds r22,confdns+8+2
  1303. 1280 0174 7091 0000 lds r23,confdns+8+3
  1304. 1281 0178 4115 cp r20,__zero_reg__
  1305. 1282 017a 5105 cpc r21,__zero_reg__
  1306. 1283 017c 6105 cpc r22,__zero_reg__
  1307. 1284 017e 7105 cpc r23,__zero_reg__
  1308. 1285 0180 01F4 brne .L128
  1309. 1286 .L127:
  1310. 1287 0182 4091 0000 lds r20,confdns+4
  1311. 1288 0186 5091 0000 lds r21,confdns+4+1
  1312. 1289 018a 6091 0000 lds r22,confdns+4+2
  1313. 1290 018e 7091 0000 lds r23,confdns+4+3
  1314. 1291 .L128:
  1315. 1292 0192 8401 movw r16,r8
  1316. 1293 0194 25E3 ldi r18,lo8(53)
  1317. 1294 0196 30E0 ldi r19,0
  1318. 1295 0198 C201 movw r24,r4
  1319. 1296 019a 0E94 0000 call NutUdpSendTo
  1320. 1297 019e 97FD sbrc r25,7
  1321. 1298 01a0 00C0 rjmp .L129
  1322. 1299 .L133:
  1323. 1300 01a2 38EE ldi r19,lo8(-24)
  1324. 1301 01a4 C32E mov r12,r19
  1325. 1302 01a6 33E0 ldi r19,lo8(3)
  1326. 1303 01a8 D32E mov r13,r19
  1327. 1304 01aa E12C mov r14,__zero_reg__
  1328. 1305 01ac F12C mov r15,__zero_reg__
  1329. 1306 01ae 00E0 ldi r16,0
  1330. 1307 01b0 12E0 ldi r17,lo8(2)
  1331. 1308 01b2 9401 movw r18,r8
  1332. 1309 01b4 AE01 movw r20,r28
  1333. 1310 01b6 4B5F subi r20,-5
  1334. 1311 01b8 5F4F sbci r21,-1
  1335. GAS LISTING /tmp/ccUyxdR2.s page 24
  1336. 1312 01ba BE01 movw r22,r28
  1337. 1313 01bc 6F5F subi r22,-1
  1338. 1314 01be 7F4F sbci r23,-1
  1339. 1315 01c0 C201 movw r24,r4
  1340. 1316 01c2 0E94 0000 call NutUdpReceiveFrom
  1341. 1317 01c6 1816 cp __zero_reg__,r24
  1342. 1318 01c8 1906 cpc __zero_reg__,r25
  1343. 1319 01ca 04F0 brlt .+2
  1344. 1320 01cc 00C0 rjmp .L132
  1345. 1321 01ce 0D97 sbiw r24,13
  1346. 1322 01d0 04F0 brlt .L133
  1347. 1323 01d2 B401 movw r22,r8
  1348. 1324 01d4 C501 movw r24,r10
  1349. 1325 01d6 0E94 0000 call DecodeDnsHeader
  1350. 1326 01da 8C01 movw r16,r24
  1351. 1327 01dc F501 movw r30,r10
  1352. 1328 01de 8081 ld r24,Z
  1353. 1329 01e0 9181 ldd r25,Z+1
  1354. 1330 01e2 6816 cp r6,r24
  1355. 1331 01e4 7906 cpc r7,r25
  1356. 1332 01e6 01F4 brne .L133
  1357. 1333 01e8 0115 cp r16,__zero_reg__
  1358. 1334 01ea 1105 cpc r17,__zero_reg__
  1359. 1335 01ec 01F4 brne .+2
  1360. 1336 01ee 00C0 rjmp .L132
  1361. 1337 01f0 8481 ldd r24,Z+4
  1362. 1338 01f2 9581 ldd r25,Z+5
  1363. 1339 01f4 0197 sbiw r24,1
  1364. 1340 01f6 01F0 breq .+2
  1365. 1341 01f8 00C0 rjmp .L132
  1366. 1342 01fa B401 movw r22,r8
  1367. 1343 01fc 600F add r22,r16
  1368. 1344 01fe 711F adc r23,r17
  1369. 1345 0200 8885 ldd r24,Y+8
  1370. 1346 0202 9985 ldd r25,Y+9
  1371. 1347 0204 0E94 0000 call DecodeDnsQuestion
  1372. 1348 0208 080F add r16,r24
  1373. 1349 020a 191F adc r17,r25
  1374. 1350 020c F501 movw r30,r10
  1375. 1351 020e 8681 ldd r24,Z+6
  1376. 1352 0210 9781 ldd r25,Z+7
  1377. 1353 0212 892B or r24,r25
  1378. 1354 0214 01F4 brne .+2
  1379. 1355 0216 00C0 rjmp .L129
  1380. 1356 0218 21E0 ldi r18,lo8(1)
  1381. 1357 021a 30E0 ldi r19,0
  1382. 1358 021c 3B87 std Y+11,r19
  1383. 1359 021e 2A87 std Y+10,r18
  1384. 1360 0220 1F82 std Y+7,__zero_reg__
  1385. 1361 .L134:
  1386. 1362 0222 F501 movw r30,r10
  1387. 1363 0224 8681 ldd r24,Z+6
  1388. 1364 0226 9781 ldd r25,Z+7
  1389. 1365 0228 CA84 ldd r12,Y+10
  1390. 1366 022a DB84 ldd r13,Y+11
  1391. 1367 022c 8C15 cp r24,r12
  1392. 1368 022e 9D05 cpc r25,r13
  1393. GAS LISTING /tmp/ccUyxdR2.s page 25
  1394. 1369 0230 04F4 brge .+2
  1395. 1370 0232 00C0 rjmp .L132
  1396. 1371 0234 2114 cp r2,__zero_reg__
  1397. 1372 0236 3104 cpc r3,__zero_reg__
  1398. 1373 0238 01F4 brne .L135
  1399. 1374 023a 6EE0 ldi r22,lo8(14)
  1400. 1375 023c 70E0 ldi r23,0
  1401. 1376 023e 81E0 ldi r24,lo8(1)
  1402. 1377 0240 90E0 ldi r25,0
  1403. 1378 0242 0E94 0000 call calloc
  1404. 1379 0246 1C01 movw r2,r24
  1405. 1380 .L135:
  1406. 1381 0248 B401 movw r22,r8
  1407. 1382 024a 600F add r22,r16
  1408. 1383 024c 711F adc r23,r17
  1409. 1384 024e C101 movw r24,r2
  1410. 1385 0250 0E94 0000 call DecodeDnsResource
  1411. 1386 0254 080F add r16,r24
  1412. 1387 0256 191F adc r17,r25
  1413. 1388 0258 F101 movw r30,r2
  1414. 1389 025a 8281 ldd r24,Z+2
  1415. 1390 025c 9381 ldd r25,Z+3
  1416. 1391 025e 0197 sbiw r24,1
  1417. 1392 0260 01F0 breq .+2
  1418. 1393 0262 00C0 rjmp .L136
  1419. 1394 0264 8285 ldd r24,Z+10
  1420. 1395 0266 9385 ldd r25,Z+11
  1421. 1396 0268 0497 sbiw r24,4
  1422. 1397 026a 01F0 breq .+2
  1423. 1398 026c 00C0 rjmp .L136
  1424. 1399 026e CC84 ldd r12,Y+12
  1425. 1400 0270 DD84 ldd r13,Y+13
  1426. 1401 0272 3F81 ldd r19,Y+7
  1427. 1402 0274 24E0 ldi r18,lo8(4)
  1428. 1403 0276 329F mul r19,r18
  1429. 1404 0278 C00C add r12,r0
  1430. 1405 027a D11C adc r13,r1
  1431. 1406 027c 1124 clr __zero_reg__
  1432. 1407 027e DD8A std Y+21,r13
  1433. 1408 0280 CC8A std Y+20,r12
  1434. 1409 0282 A485 ldd r26,Z+12
  1435. 1410 0284 B585 ldd r27,Z+13
  1436. 1411 0286 2C91 ld r18,X
  1437. 1412 0288 C22E mov r12,r18
  1438. 1413 028a D12C mov r13,__zero_reg__
  1439. 1414 028c E12C mov r14,__zero_reg__
  1440. 1415 028e F12C mov r15,__zero_reg__
  1441. 1416 0290 EC89 ldd r30,Y+20
  1442. 1417 0292 FD89 ldd r31,Y+21
  1443. 1418 0294 C082 st Z,r12
  1444. 1419 0296 D182 std Z+1,r13
  1445. 1420 0298 E282 std Z+2,r14
  1446. 1421 029a F382 std Z+3,r15
  1447. 1422 029c 1196 adiw r26,1
  1448. 1423 029e 4C91 ld r20,X
  1449. 1424 02a0 1197 sbiw r26,1
  1450. 1425 02a2 50E0 ldi r21,0
  1451. GAS LISTING /tmp/ccUyxdR2.s page 26
  1452. 1426 02a4 60E0 ldi r22,0
  1453. 1427 02a6 70E0 ldi r23,0
  1454. 1428 02a8 762F mov r23,r22
  1455. 1429 02aa 652F mov r22,r21
  1456. 1430 02ac 542F mov r21,r20
  1457. 1431 02ae 4427 clr r20
  1458. 1432 02b0 9A01 movw r18,r20
  1459. 1433 02b2 AB01 movw r20,r22
  1460. 1434 02b4 2C0D add r18,r12
  1461. 1435 02b6 3D1D adc r19,r13
  1462. 1436 02b8 4E1D adc r20,r14
  1463. 1437 02ba 5F1D adc r21,r15
  1464. 1438 02bc 2083 st Z,r18
  1465. 1439 02be 3183 std Z+1,r19
  1466. 1440 02c0 4283 std Z+2,r20
  1467. 1441 02c2 5383 std Z+3,r21
  1468. 1442 02c4 1296 adiw r26,2
  1469. 1443 02c6 6C91 ld r22,X
  1470. 1444 02c8 1297 sbiw r26,2
  1471. 1445 02ca 70E0 ldi r23,0
  1472. 1446 02cc 80E0 ldi r24,0
  1473. 1447 02ce 90E0 ldi r25,0
  1474. 1448 02d0 CB01 movw r24,r22
  1475. 1449 02d2 7727 clr r23
  1476. 1450 02d4 6627 clr r22
  1477. 1451 02d6 6B01 movw r12,r22
  1478. 1452 02d8 7C01 movw r14,r24
  1479. 1453 02da C20E add r12,r18
  1480. 1454 02dc D31E adc r13,r19
  1481. 1455 02de E41E adc r14,r20
  1482. 1456 02e0 F51E adc r15,r21
  1483. 1457 02e2 B701 movw r22,r14
  1484. 1458 02e4 A601 movw r20,r12
  1485. 1459 02e6 C082 st Z,r12
  1486. 1460 02e8 D182 std Z+1,r13
  1487. 1461 02ea E282 std Z+2,r14
  1488. 1462 02ec F382 std Z+3,r15
  1489. 1463 02ee 1396 adiw r26,3
  1490. 1464 02f0 8C91 ld r24,X
  1491. 1465 02f2 90E0 ldi r25,0
  1492. 1466 02f4 A0E0 ldi r26,0
  1493. 1467 02f6 B0E0 ldi r27,0
  1494. 1468 02f8 B82F mov r27,r24
  1495. 1469 02fa AA27 clr r26
  1496. 1470 02fc 9927 clr r25
  1497. 1471 02fe 8827 clr r24
  1498. 1472 0300 480F add r20,r24
  1499. 1473 0302 591F adc r21,r25
  1500. 1474 0304 6A1F adc r22,r26
  1501. 1475 0306 7B1F adc r23,r27
  1502. 1476 0308 4083 st Z,r20
  1503. 1477 030a 5183 std Z+1,r21
  1504. 1478 030c 6283 std Z+2,r22
  1505. 1479 030e 7383 std Z+3,r23
  1506. 1480 0310 FF81 ldd r31,Y+7
  1507. 1481 0312 FF5F subi r31,lo8(-(1))
  1508. 1482 0314 FF83 std Y+7,r31
  1509. GAS LISTING /tmp/ccUyxdR2.s page 27
  1510. 1483 .L136:
  1511. 1484 0316 2A85 ldd r18,Y+10
  1512. 1485 0318 3B85 ldd r19,Y+11
  1513. 1486 031a 2F5F subi r18,-1
  1514. 1487 031c 3F4F sbci r19,-1
  1515. 1488 031e 3B87 std Y+11,r19
  1516. 1489 0320 2A87 std Y+10,r18
  1517. 1490 0322 00C0 rjmp .L134
  1518. 1491 .L132:
  1519. 1492 0324 26E0 ldi r18,6
  1520. 1493 0326 6216 cp r6,r18
  1521. 1494 0328 7104 cpc r7,__zero_reg__
  1522. 1495 032a 01F0 breq .+2
  1523. 1496 032c 00C0 rjmp .L138
  1524. 1497 .L129:
  1525. 1498 032e A114 cp r10,__zero_reg__
  1526. 1499 0330 B104 cpc r11,__zero_reg__
  1527. 1500 0332 01F0 breq .L139
  1528. 1501 0334 C501 movw r24,r10
  1529. 1502 0336 0E94 0000 call free
  1530. 1503 .L139:
  1531. 1504 033a 8885 ldd r24,Y+8
  1532. 1505 033c 9985 ldd r25,Y+9
  1533. 1506 033e 0E94 0000 call ReleaseDnsQuestion
  1534. 1507 0342 C101 movw r24,r2
  1535. 1508 0344 0E94 0000 call ReleaseDnsResource
  1536. 1509 0348 B401 movw r22,r8
  1537. 1510 034a 80E0 ldi r24,lo8(heapFreeList)
  1538. 1511 034c 90E0 ldi r25,hi8(heapFreeList)
  1539. 1512 034e 0E94 0000 call NutHeapRootFree
  1540. 1513 0352 C201 movw r24,r4
  1541. 1514 0354 0E94 0000 call NutUdpDestroySocket
  1542. 1515 0358 8F81 ldd r24,Y+7
  1543. 1516 .L123:
  1544. 1517 /* epilogue start */
  1545. 1518 035a 6596 adiw r28,21
  1546. 1519 035c 0FB6 in __tmp_reg__,__SREG__
  1547. 1520 035e F894 cli
  1548. 1521 0360 DEBF out __SP_H__,r29
  1549. 1522 0362 0FBE out __SREG__,__tmp_reg__
  1550. 1523 0364 CDBF out __SP_L__,r28
  1551. 1524 0366 DF91 pop r29
  1552. 1525 0368 CF91 pop r28
  1553. 1526 036a 1F91 pop r17
  1554. 1527 036c 0F91 pop r16
  1555. 1528 036e FF90 pop r15
  1556. 1529 0370 EF90 pop r14
  1557. 1530 0372 DF90 pop r13
  1558. 1531 0374 CF90 pop r12
  1559. 1532 0376 BF90 pop r11
  1560. 1533 0378 AF90 pop r10
  1561. 1534 037a 9F90 pop r9
  1562. 1535 037c 8F90 pop r8
  1563. 1536 037e 7F90 pop r7
  1564. 1537 0380 6F90 pop r6
  1565. 1538 0382 5F90 pop r5
  1566. 1539 0384 4F90 pop r4
  1567. GAS LISTING /tmp/ccUyxdR2.s page 28
  1568. 1540 0386 3F90 pop r3
  1569. 1541 0388 2F90 pop r2
  1570. 1542 038a 0895 ret
  1571. 1543 .size NutDnsGetResourceAll, .-NutDnsGetResourceAll
  1572. 1544 .section .text.NutDnsGetHostsByName,"ax",@progbits
  1573. 1545 .global NutDnsGetHostsByName
  1574. 1546 .type NutDnsGetHostsByName, @function
  1575. 1547 NutDnsGetHostsByName:
  1576. 1548 /* prologue: function */
  1577. 1549 /* frame size = 0 */
  1578. 1550 /* stack size = 0 */
  1579. 1551 .L__stack_usage = 0
  1580. 1552 0000 AB01 movw r20,r22
  1581. 1553 0002 61E0 ldi r22,lo8(1)
  1582. 1554 0004 70E0 ldi r23,0
  1583. 1555 0006 0C94 0000 jmp NutDnsGetResourceAll
  1584. 1556 .size NutDnsGetHostsByName, .-NutDnsGetHostsByName
  1585. 1557 .ident "GCC: (GNU) 5.3.0"
  1586. GAS LISTING /tmp/ccUyxdR2.s page 29
  1587. DEFINED SYMBOLS
  1588. *ABS*:0000000000000000 resolv.c
  1589. /tmp/ccUyxdR2.s:2 *ABS*:000000000000003e __SP_H__
  1590. /tmp/ccUyxdR2.s:3 *ABS*:000000000000003d __SP_L__
  1591. /tmp/ccUyxdR2.s:4 *ABS*:000000000000003f __SREG__
  1592. /tmp/ccUyxdR2.s:5 *ABS*:000000000000003b __RAMPZ__
  1593. /tmp/ccUyxdR2.s:6 *ABS*:0000000000000000 __tmp_reg__
  1594. /tmp/ccUyxdR2.s:7 *ABS*:0000000000000001 __zero_reg__
  1595. /tmp/ccUyxdR2.s:10 .text.DecodeDnsHeader:0000000000000000 DecodeDnsHeader
  1596. /tmp/ccUyxdR2.s:104 .text.ReleaseDnsQuestion:0000000000000000 ReleaseDnsQuestion
  1597. /tmp/ccUyxdR2.s:133 .text.ReleaseDnsResource:0000000000000000 ReleaseDnsResource
  1598. /tmp/ccUyxdR2.s:168 .text.CreateDnsQuestion:0000000000000000 CreateDnsQuestion
  1599. /tmp/ccUyxdR2.s:222 .text.EncodeDnsQuestion:0000000000000000 EncodeDnsQuestion
  1600. /tmp/ccUyxdR2.s:306 .text.ScanName:0000000000000000 ScanName
  1601. /tmp/ccUyxdR2.s:404 .text.DecodeDnsQuestion:0000000000000000 DecodeDnsQuestion
  1602. /tmp/ccUyxdR2.s:455 .text.DecodeDnsResource:0000000000000000 DecodeDnsResource
  1603. /tmp/ccUyxdR2.s:592 .text.NutDnsConfig:0000000000000000 NutDnsConfig
  1604. /tmp/ccUyxdR2.s:615 .text.NutDnsGetConfig2:0000000000000000 NutDnsGetConfig2
  1605. /tmp/ccUyxdR2.s:668 .text.NutDnsGetResource:0000000000000000 NutDnsGetResource
  1606. /tmp/ccUyxdR2.s:1075 .text.NutDnsGetHostByName:0000000000000000 NutDnsGetHostByName
  1607. /tmp/ccUyxdR2.s:1087 .text.NutDnsGetMxByDomain:0000000000000000 NutDnsGetMxByDomain
  1608. /tmp/ccUyxdR2.s:1099 .text.NutDnsGetResourceAll:0000000000000000 NutDnsGetResourceAll
  1609. /tmp/ccUyxdR2.s:1547 .text.NutDnsGetHostsByName:0000000000000000 NutDnsGetHostsByName
  1610. UNDEFINED SYMBOLS
  1611. free
  1612. calloc
  1613. strdup
  1614. malloc
  1615. memcpy
  1616. NutDnsConfig2
  1617. confdns
  1618. NutUdpCreateSocket
  1619. NutUdpSendTo
  1620. NutUdpReceiveFrom
  1621. NutUdpDestroySocket
  1622. heapFreeList
  1623. NutHeapRootAlloc
  1624. NutHeapRootFree