GAS LISTING /tmp/ccYUpga6.s page 1 1 .file "route.c" 2 __SP_H__ = 0x3e 3 __SP_L__ = 0x3d 4 __SREG__ = 0x3f 5 __RAMPZ__ = 0x3b 6 __tmp_reg__ = 0 7 __zero_reg__ = 1 8 .section .text.NutIpRouteAdd,"ax",@progbits 9 .global NutIpRouteAdd 10 .type NutIpRouteAdd, @function 11 NutIpRouteAdd: 12 0000 4F92 push r4 13 0002 5F92 push r5 14 0004 6F92 push r6 15 0006 7F92 push r7 16 0008 8F92 push r8 17 000a 9F92 push r9 18 000c AF92 push r10 19 000e BF92 push r11 20 0010 CF92 push r12 21 0012 DF92 push r13 22 0014 EF92 push r14 23 0016 FF92 push r15 24 0018 0F93 push r16 25 001a 1F93 push r17 26 001c CF93 push r28 27 001e DF93 push r29 28 0020 00D0 rcall . 29 0022 1F92 push __zero_reg__ 30 0024 CDB7 in r28,__SP_L__ 31 0026 DEB7 in r29,__SP_H__ 32 /* prologue: function */ 33 /* frame size = 4 */ 34 /* stack size = 20 */ 35 .L__stack_usage = 20 36 0028 4B01 movw r8,r22 37 002a 5C01 movw r10,r24 38 002c 2701 movw r4,r14 39 002e 3801 movw r6,r16 40 0030 E090 0000 lds r14,rteList 41 0034 F090 0000 lds r15,rteList+1 42 0038 00E0 ldi r16,lo8(rteList) 43 003a 10E0 ldi r17,hi8(rteList) 44 .L2: 45 003c E114 cp r14,__zero_reg__ 46 003e F104 cpc r15,__zero_reg__ 47 0040 01F0 breq .L3 48 0042 F701 movw r30,r14 49 0044 8681 ldd r24,Z+6 50 0046 9781 ldd r25,Z+7 51 0048 A085 ldd r26,Z+8 52 004a B185 ldd r27,Z+9 53 004c 2817 cp r18,r24 54 004e 3907 cpc r19,r25 55 0050 4A07 cpc r20,r26 56 0052 5B07 cpc r21,r27 57 0054 00F4 brsh .L3 GAS LISTING /tmp/ccYUpga6.s page 2 58 0056 8701 movw r16,r14 59 0058 D701 movw r26,r14 60 005a ED90 ld r14,X+ 61 005c FC90 ld r15,X 62 005e 00C0 rjmp .L2 63 .L3: 64 0060 80E1 ldi r24,lo8(16) 65 0062 90E0 ldi r25,0 66 0064 2983 std Y+1,r18 67 0066 3A83 std Y+2,r19 68 0068 4B83 std Y+3,r20 69 006a 5C83 std Y+4,r21 70 006c 0E94 0000 call malloc 71 0070 FC01 movw r30,r24 72 0072 2981 ldd r18,Y+1 73 0074 3A81 ldd r19,Y+2 74 0076 4B81 ldd r20,Y+3 75 0078 5C81 ldd r21,Y+4 76 007a 0097 sbiw r24,0 77 007c 01F0 breq .L6 78 007e 8222 and r8,r18 79 0080 9322 and r9,r19 80 0082 A422 and r10,r20 81 0084 B522 and r11,r21 82 0086 8282 std Z+2,r8 83 0088 9382 std Z+3,r9 84 008a A482 std Z+4,r10 85 008c B582 std Z+5,r11 86 008e 2683 std Z+6,r18 87 0090 3783 std Z+7,r19 88 0092 4087 std Z+8,r20 89 0094 5187 std Z+9,r21 90 0096 4286 std Z+10,r4 91 0098 5386 std Z+11,r5 92 009a 6486 std Z+12,r6 93 009c 7586 std Z+13,r7 94 009e D786 std Z+15,r13 95 00a0 C686 std Z+14,r12 96 00a2 F182 std Z+1,r15 97 00a4 E082 st Z,r14 98 00a6 D801 movw r26,r16 99 00a8 8D93 st X+,r24 100 00aa 9C93 st X,r25 101 00ac 80E0 ldi r24,0 102 00ae 90E0 ldi r25,0 103 00b0 00C0 rjmp .L5 104 .L6: 105 00b2 8FEF ldi r24,lo8(-1) 106 00b4 9FEF ldi r25,lo8(-1) 107 .L5: 108 /* epilogue start */ 109 00b6 0F90 pop __tmp_reg__ 110 00b8 0F90 pop __tmp_reg__ 111 00ba 0F90 pop __tmp_reg__ 112 00bc 0F90 pop __tmp_reg__ 113 00be DF91 pop r29 114 00c0 CF91 pop r28 GAS LISTING /tmp/ccYUpga6.s page 3 115 00c2 1F91 pop r17 116 00c4 0F91 pop r16 117 00c6 FF90 pop r15 118 00c8 EF90 pop r14 119 00ca DF90 pop r13 120 00cc CF90 pop r12 121 00ce BF90 pop r11 122 00d0 AF90 pop r10 123 00d2 9F90 pop r9 124 00d4 8F90 pop r8 125 00d6 7F90 pop r7 126 00d8 6F90 pop r6 127 00da 5F90 pop r5 128 00dc 4F90 pop r4 129 00de 0895 ret 130 .size NutIpRouteAdd, .-NutIpRouteAdd 131 .section .text.NutIpRouteDelAll,"ax",@progbits 132 .global NutIpRouteDelAll 133 .type NutIpRouteDelAll, @function 134 NutIpRouteDelAll: 135 0000 CF93 push r28 136 0002 DF93 push r29 137 /* prologue: function */ 138 /* frame size = 0 */ 139 /* stack size = 2 */ 140 .L__stack_usage = 2 141 0004 EC01 movw r28,r24 142 .L12: 143 0006 8091 0000 lds r24,rteList 144 000a 9091 0000 lds r25,rteList+1 145 000e 0097 sbiw r24,0 146 0010 01F0 breq .L17 147 0012 FC01 movw r30,r24 148 0014 4685 ldd r20,Z+14 149 0016 5785 ldd r21,Z+15 150 0018 2081 ld r18,Z 151 001a 3181 ldd r19,Z+1 152 001c 3093 0000 sts rteList+1,r19 153 0020 2093 0000 sts rteList,r18 154 0024 4C17 cp r20,r28 155 0026 5D07 cpc r21,r29 156 0028 01F0 breq .L13 157 002a 2097 sbiw r28,0 158 002c 01F4 brne .L12 159 .L13: 160 002e 0E94 0000 call free 161 0032 00C0 rjmp .L12 162 .L17: 163 0034 80E0 ldi r24,0 164 0036 90E0 ldi r25,0 165 /* epilogue start */ 166 0038 DF91 pop r29 167 003a CF91 pop r28 168 003c 0895 ret 169 .size NutIpRouteDelAll, .-NutIpRouteDelAll 170 .section .text.NutIpRouteDel,"ax",@progbits 171 .global NutIpRouteDel GAS LISTING /tmp/ccYUpga6.s page 4 172 .type NutIpRouteDel, @function 173 NutIpRouteDel: 174 0000 4F92 push r4 175 0002 5F92 push r5 176 0004 6F92 push r6 177 0006 7F92 push r7 178 0008 8F92 push r8 179 000a 9F92 push r9 180 000c AF92 push r10 181 000e BF92 push r11 182 0010 CF92 push r12 183 0012 DF92 push r13 184 0014 EF92 push r14 185 0016 FF92 push r15 186 0018 0F93 push r16 187 001a 1F93 push r17 188 001c CF93 push r28 189 001e DF93 push r29 190 0020 00D0 rcall . 191 0022 1F92 push __zero_reg__ 192 0024 CDB7 in r28,__SP_L__ 193 0026 DEB7 in r29,__SP_H__ 194 /* prologue: function */ 195 /* frame size = 4 */ 196 /* stack size = 20 */ 197 .L__stack_usage = 20 198 0028 4B01 movw r8,r22 199 002a 5C01 movw r10,r24 200 002c 2701 movw r4,r14 201 002e 3801 movw r6,r16 202 0030 6FEF ldi r22,lo8(-1) 203 0032 7FEF ldi r23,lo8(-1) 204 .L19: 205 0034 E091 0000 lds r30,rteList 206 0038 F091 0000 lds r31,rteList+1 207 003c 3097 sbiw r30,0 208 003e 01F0 breq .L22 209 0040 8281 ldd r24,Z+2 210 0042 9381 ldd r25,Z+3 211 0044 A481 ldd r26,Z+4 212 0046 B581 ldd r27,Z+5 213 0048 8815 cp r24,r8 214 004a 9905 cpc r25,r9 215 004c AA05 cpc r26,r10 216 004e BB05 cpc r27,r11 217 0050 01F4 brne .L20 218 0052 8681 ldd r24,Z+6 219 0054 9781 ldd r25,Z+7 220 0056 A085 ldd r26,Z+8 221 0058 B185 ldd r27,Z+9 222 005a 8217 cp r24,r18 223 005c 9307 cpc r25,r19 224 005e A407 cpc r26,r20 225 0060 B507 cpc r27,r21 226 0062 01F4 brne .L20 227 0064 8285 ldd r24,Z+10 228 0066 9385 ldd r25,Z+11 GAS LISTING /tmp/ccYUpga6.s page 5 229 0068 A485 ldd r26,Z+12 230 006a B585 ldd r27,Z+13 231 006c 8415 cp r24,r4 232 006e 9505 cpc r25,r5 233 0070 A605 cpc r26,r6 234 0072 B705 cpc r27,r7 235 0074 01F4 brne .L20 236 0076 8685 ldd r24,Z+14 237 0078 9785 ldd r25,Z+15 238 007a 8C15 cp r24,r12 239 007c 9D05 cpc r25,r13 240 007e 01F4 brne .L20 241 0080 8081 ld r24,Z 242 0082 9181 ldd r25,Z+1 243 0084 9093 0000 sts rteList+1,r25 244 0088 8093 0000 sts rteList,r24 245 008c CF01 movw r24,r30 246 008e 2983 std Y+1,r18 247 0090 3A83 std Y+2,r19 248 0092 4B83 std Y+3,r20 249 0094 5C83 std Y+4,r21 250 0096 0E94 0000 call free 251 009a 60E0 ldi r22,0 252 009c 70E0 ldi r23,0 253 009e 5C81 ldd r21,Y+4 254 00a0 4B81 ldd r20,Y+3 255 00a2 3A81 ldd r19,Y+2 256 00a4 2981 ldd r18,Y+1 257 .L20: 258 00a6 E091 0000 lds r30,rteList 259 00aa F091 0000 lds r31,rteList+1 260 00ae 8081 ld r24,Z 261 00b0 9181 ldd r25,Z+1 262 00b2 9093 0000 sts rteList+1,r25 263 00b6 8093 0000 sts rteList,r24 264 00ba 00C0 rjmp .L19 265 .L22: 266 00bc CB01 movw r24,r22 267 /* epilogue start */ 268 00be 0F90 pop __tmp_reg__ 269 00c0 0F90 pop __tmp_reg__ 270 00c2 0F90 pop __tmp_reg__ 271 00c4 0F90 pop __tmp_reg__ 272 00c6 DF91 pop r29 273 00c8 CF91 pop r28 274 00ca 1F91 pop r17 275 00cc 0F91 pop r16 276 00ce FF90 pop r15 277 00d0 EF90 pop r14 278 00d2 DF90 pop r13 279 00d4 CF90 pop r12 280 00d6 BF90 pop r11 281 00d8 AF90 pop r10 282 00da 9F90 pop r9 283 00dc 8F90 pop r8 284 00de 7F90 pop r7 285 00e0 6F90 pop r6 GAS LISTING /tmp/ccYUpga6.s page 6 286 00e2 5F90 pop r5 287 00e4 4F90 pop r4 288 00e6 0895 ret 289 .size NutIpRouteDel, .-NutIpRouteDel 290 .section .text.NutIpRouteList,"ax",@progbits 291 .global NutIpRouteList 292 .type NutIpRouteList, @function 293 NutIpRouteList: 294 0000 0F93 push r16 295 0002 1F93 push r17 296 0004 CF93 push r28 297 0006 DF93 push r29 298 /* prologue: function */ 299 /* frame size = 0 */ 300 /* stack size = 4 */ 301 .L__stack_usage = 4 302 0008 8C01 movw r16,r24 303 000a DC01 movw r26,r24 304 000c 1D92 st X+,__zero_reg__ 305 000e 1C92 st X,__zero_reg__ 306 0010 C091 0000 lds r28,rteList 307 0014 D091 0000 lds r29,rteList+1 308 0018 FE01 movw r30,r28 309 .L24: 310 001a D801 movw r26,r16 311 001c 8D91 ld r24,X+ 312 001e 9C91 ld r25,X 313 0020 3097 sbiw r30,0 314 0022 01F0 breq .L30 315 0024 0196 adiw r24,1 316 0026 D801 movw r26,r16 317 0028 8D93 st X+,r24 318 002a 9C93 st X,r25 319 002c 0190 ld __tmp_reg__,Z+ 320 002e F081 ld r31,Z 321 0030 E02D mov r30,__tmp_reg__ 322 0032 00C0 rjmp .L24 323 .L30: 324 0034 24E0 ldi r18,4 325 1: 326 0036 880F lsl r24 327 0038 991F rol r25 328 003a 2A95 dec r18 329 003c 01F4 brne 1b 330 003e 0E94 0000 call malloc 331 0042 0097 sbiw r24,0 332 0044 01F0 breq .L26 333 0046 9C01 movw r18,r24 334 .L27: 335 0048 2097 sbiw r28,0 336 004a 01F0 breq .L29 337 004c 40E1 ldi r20,lo8(16) 338 004e FE01 movw r30,r28 339 0050 D901 movw r26,r18 340 0: 341 0052 0190 ld r0,Z+ 342 0054 0D92 st X+,r0 GAS LISTING /tmp/ccYUpga6.s page 7 343 0056 4A95 dec r20 344 0058 01F4 brne 0b 345 005a 0990 ld __tmp_reg__,Y+ 346 005c D881 ld r29,Y 347 005e C02D mov r28,__tmp_reg__ 348 0060 205F subi r18,-16 349 0062 3F4F sbci r19,-1 350 0064 00C0 rjmp .L27 351 .L26: 352 0066 F801 movw r30,r16 353 0068 1182 std Z+1,__zero_reg__ 354 006a 1082 st Z,__zero_reg__ 355 .L29: 356 /* epilogue start */ 357 006c DF91 pop r29 358 006e CF91 pop r28 359 0070 1F91 pop r17 360 0072 0F91 pop r16 361 0074 0895 ret 362 .size NutIpRouteList, .-NutIpRouteList 363 .section .text.NutIpRouteQuery,"ax",@progbits 364 .global NutIpRouteQuery 365 .type NutIpRouteQuery, @function 366 NutIpRouteQuery: 367 0000 8F92 push r8 368 0002 9F92 push r9 369 0004 AF92 push r10 370 0006 BF92 push r11 371 0008 CF92 push r12 372 000a DF92 push r13 373 000c EF92 push r14 374 000e FF92 push r15 375 0010 0F93 push r16 376 0012 1F93 push r17 377 /* prologue: function */ 378 /* frame size = 0 */ 379 /* stack size = 10 */ 380 .L__stack_usage = 10 381 0014 8B01 movw r16,r22 382 0016 9C01 movw r18,r24 383 0018 4115 cp r20,__zero_reg__ 384 001a 5105 cpc r21,__zero_reg__ 385 001c 01F0 breq .L32 386 001e DA01 movw r26,r20 387 0020 1D92 st X+,__zero_reg__ 388 0022 1D92 st X+,__zero_reg__ 389 0024 1D92 st X+,__zero_reg__ 390 0026 1C92 st X,__zero_reg__ 391 0028 1397 sbiw r26,3 392 .L32: 393 002a 6091 0000 lds r22,rteList 394 002e 7091 0000 lds r23,rteList+1 395 0032 0F3F cpi r16,-1 396 0034 BFEF ldi r27,-1 397 0036 1B07 cpc r17,r27 398 0038 2B07 cpc r18,r27 399 003a 3B07 cpc r19,r27 GAS LISTING /tmp/ccYUpga6.s page 8 400 003c 01F0 breq .L33 401 003e D901 movw r26,r18 402 0040 C801 movw r24,r16 403 /* #APP */ 404 ; 319 "../../nut/include/sys/types.h" 1 405 0042 082E mov __tmp_reg__, r24 406 0044 8B2F mov r24, r27 407 0046 B02D mov r27, __tmp_reg__ 408 0048 092E mov __tmp_reg__, r25 409 004a 9A2F mov r25, r26 410 004c A02D mov r26, __tmp_reg__ 411 412 ; 0 "" 2 413 /* #NOAPP */ 414 004e 8827 clr r24 415 0050 9927 clr r25 416 0052 AA27 clr r26 417 0054 B07F andi r27,240 418 0056 0097 sbiw r24,0 419 0058 A105 cpc r26,__zero_reg__ 420 005a B04E sbci r27,-32 421 005c 01F4 brne .L34 422 .L33: 423 005e FB01 movw r30,r22 424 0060 3097 sbiw r30,0 425 0062 01F4 brne .L35 426 0064 00C0 rjmp .L36 427 .L34: 428 0066 84E0 ldi r24,lo8(4) 429 .L42: 430 0068 FB01 movw r30,r22 431 .L37: 432 006a 3097 sbiw r30,0 433 006c 01F0 breq .L36 434 006e C680 ldd r12,Z+6 435 0070 D780 ldd r13,Z+7 436 0072 E084 ldd r14,Z+8 437 0074 F184 ldd r15,Z+9 438 0076 C022 and r12,r16 439 0078 D122 and r13,r17 440 007a E222 and r14,r18 441 007c F322 and r15,r19 442 007e 8280 ldd r8,Z+2 443 0080 9380 ldd r9,Z+3 444 0082 A480 ldd r10,Z+4 445 0084 B580 ldd r11,Z+5 446 0086 C814 cp r12,r8 447 0088 D904 cpc r13,r9 448 008a EA04 cpc r14,r10 449 008c FB04 cpc r15,r11 450 008e 01F0 breq .L38 451 0090 0190 ld __tmp_reg__,Z+ 452 0092 F081 ld r31,Z 453 0094 E02D mov r30,__tmp_reg__ 454 0096 00C0 rjmp .L37 455 .L38: 456 0098 4115 cp r20,__zero_reg__ GAS LISTING /tmp/ccYUpga6.s page 9 457 009a 5105 cpc r21,__zero_reg__ 458 009c 01F0 breq .L41 459 009e 0285 ldd r16,Z+10 460 00a0 1385 ldd r17,Z+11 461 00a2 2485 ldd r18,Z+12 462 00a4 3585 ldd r19,Z+13 463 00a6 0115 cp r16,__zero_reg__ 464 00a8 1105 cpc r17,__zero_reg__ 465 00aa 2105 cpc r18,__zero_reg__ 466 00ac 3105 cpc r19,__zero_reg__ 467 00ae 01F0 breq .L41 468 00b0 DA01 movw r26,r20 469 00b2 0D93 st X+,r16 470 00b4 1D93 st X+,r17 471 00b6 2D93 st X+,r18 472 00b8 3C93 st X,r19 473 00ba 1397 sbiw r26,3 474 .L41: 475 00bc 2685 ldd r18,Z+14 476 00be 3785 ldd r19,Z+15 477 00c0 232B or r18,r19 478 00c2 01F0 breq .L56 479 .L35: 480 00c4 8685 ldd r24,Z+14 481 00c6 9785 ldd r25,Z+15 482 00c8 00C0 rjmp .L55 483 .L56: 484 00ca 0285 ldd r16,Z+10 485 00cc 1385 ldd r17,Z+11 486 00ce 2485 ldd r18,Z+12 487 00d0 3585 ldd r19,Z+13 488 00d2 8150 subi r24,lo8(-(-1)) 489 00d4 01F4 brne .L42 490 .L36: 491 00d6 80E0 ldi r24,0 492 00d8 90E0 ldi r25,0 493 .L55: 494 /* epilogue start */ 495 00da 1F91 pop r17 496 00dc 0F91 pop r16 497 00de FF90 pop r15 498 00e0 EF90 pop r14 499 00e2 DF90 pop r13 500 00e4 CF90 pop r12 501 00e6 BF90 pop r11 502 00e8 AF90 pop r10 503 00ea 9F90 pop r9 504 00ec 8F90 pop r8 505 00ee 0895 ret 506 .size NutIpRouteQuery, .-NutIpRouteQuery 507 .comm rteList,2,1 508 .ident "GCC: (GNU) 5.3.0" 509 .global __do_clear_bss GAS LISTING /tmp/ccYUpga6.s page 10 DEFINED SYMBOLS *ABS*:0000000000000000 route.c /tmp/ccYUpga6.s:2 *ABS*:000000000000003e __SP_H__ /tmp/ccYUpga6.s:3 *ABS*:000000000000003d __SP_L__ /tmp/ccYUpga6.s:4 *ABS*:000000000000003f __SREG__ /tmp/ccYUpga6.s:5 *ABS*:000000000000003b __RAMPZ__ /tmp/ccYUpga6.s:6 *ABS*:0000000000000000 __tmp_reg__ /tmp/ccYUpga6.s:7 *ABS*:0000000000000001 __zero_reg__ /tmp/ccYUpga6.s:11 .text.NutIpRouteAdd:0000000000000000 NutIpRouteAdd *COM*:0000000000000002 rteList /tmp/ccYUpga6.s:134 .text.NutIpRouteDelAll:0000000000000000 NutIpRouteDelAll /tmp/ccYUpga6.s:173 .text.NutIpRouteDel:0000000000000000 NutIpRouteDel /tmp/ccYUpga6.s:293 .text.NutIpRouteList:0000000000000000 NutIpRouteList /tmp/ccYUpga6.s:366 .text.NutIpRouteQuery:0000000000000000 NutIpRouteQuery UNDEFINED SYMBOLS malloc free __do_clear_bss