vsscanf_p.lst 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  1. GAS LISTING /tmp/ccMlOXMJ.s page 1
  2. 1 .file "vsscanf_p.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._sgetb,"ax",@progbits
  10. 9 .type _sgetb, @function
  11. 10 _sgetb:
  12. 11 0000 CF93 push r28
  13. 12 0002 DF93 push r29
  14. 13 /* prologue: function */
  15. 14 /* frame size = 0 */
  16. 15 /* stack size = 2 */
  17. 16 .L__stack_usage = 2
  18. 17 0004 FB01 movw r30,r22
  19. 18 0006 20E0 ldi r18,0
  20. 19 0008 30E0 ldi r19,0
  21. 20 .L2:
  22. 21 000a 2417 cp r18,r20
  23. 22 000c 3507 cpc r19,r21
  24. 23 000e 01F0 breq .L6
  25. 24 0010 EC01 movw r28,r24
  26. 25 0012 A881 ld r26,Y
  27. 26 0014 B981 ldd r27,Y+1
  28. 27 0016 6C91 ld r22,X
  29. 28 0018 6623 tst r22
  30. 29 001a 01F0 breq .L8
  31. 30 001c BD01 movw r22,r26
  32. 31 001e 6F5F subi r22,-1
  33. 32 0020 7F4F sbci r23,-1
  34. 33 0022 EC01 movw r28,r24
  35. 34 0024 7983 std Y+1,r23
  36. 35 0026 6883 st Y,r22
  37. 36 0028 6C91 ld r22,X
  38. 37 002a 6193 st Z+,r22
  39. 38 002c 2F5F subi r18,-1
  40. 39 002e 3F4F sbci r19,-1
  41. 40 0030 00C0 rjmp .L2
  42. 41 .L8:
  43. 42 0032 A901 movw r20,r18
  44. 43 .L6:
  45. 44 0034 CA01 movw r24,r20
  46. 45 /* epilogue start */
  47. 46 0036 DF91 pop r29
  48. 47 0038 CF91 pop r28
  49. 48 003a 0895 ret
  50. 49 .size _sgetb, .-_sgetb
  51. 50 .section .text.vsscanf_P,"ax",@progbits
  52. 51 .global vsscanf_P
  53. 52 .type vsscanf_P, @function
  54. 53 vsscanf_P:
  55. 54 0000 AF92 push r10
  56. 55 0002 BF92 push r11
  57. 56 0004 CF92 push r12
  58. 57 0006 DF92 push r13
  59. GAS LISTING /tmp/ccMlOXMJ.s page 2
  60. 58 0008 EF92 push r14
  61. 59 000a FF92 push r15
  62. 60 000c 0F93 push r16
  63. 61 000e 1F93 push r17
  64. 62 0010 CF93 push r28
  65. 63 0012 DF93 push r29
  66. 64 0014 1F92 push __zero_reg__
  67. 65 0016 1F92 push __zero_reg__
  68. 66 0018 CDB7 in r28,__SP_L__
  69. 67 001a DEB7 in r29,__SP_H__
  70. 68 /* prologue: function */
  71. 69 /* frame size = 2 */
  72. 70 /* stack size = 12 */
  73. 71 .L__stack_usage = 12
  74. 72 001c 8B01 movw r16,r22
  75. 73 001e 5A01 movw r10,r20
  76. 74 0020 9A83 std Y+2,r25
  77. 75 0022 8983 std Y+1,r24
  78. 76 0024 CB01 movw r24,r22
  79. 77 0026 0E94 0000 call __strlen_P
  80. 78 002a 0196 adiw r24,1
  81. 79 002c 6C01 movw r12,r24
  82. 80 002e BC01 movw r22,r24
  83. 81 0030 80E0 ldi r24,lo8(heapFreeList)
  84. 82 0032 90E0 ldi r25,hi8(heapFreeList)
  85. 83 0034 0E94 0000 call NutHeapRootAlloc
  86. 84 0038 7C01 movw r14,r24
  87. 85 003a 0097 sbiw r24,0
  88. 86 003c 01F0 breq .L11
  89. 87 003e A601 movw r20,r12
  90. 88 0040 B801 movw r22,r16
  91. 89 0042 0E94 0000 call memcpy_P
  92. 90 0046 9501 movw r18,r10
  93. 91 0048 A701 movw r20,r14
  94. 92 004a BE01 movw r22,r28
  95. 93 004c 6F5F subi r22,-1
  96. 94 004e 7F4F sbci r23,-1
  97. 95 0050 80E0 ldi r24,lo8(gs(_sgetb))
  98. 96 0052 90E0 ldi r25,hi8(gs(_sgetb))
  99. 97 0054 0E94 0000 call _getf
  100. 98 0058 8C01 movw r16,r24
  101. 99 005a B701 movw r22,r14
  102. 100 005c 80E0 ldi r24,lo8(heapFreeList)
  103. 101 005e 90E0 ldi r25,hi8(heapFreeList)
  104. 102 0060 0E94 0000 call NutHeapRootFree
  105. 103 0064 C801 movw r24,r16
  106. 104 0066 00C0 rjmp .L10
  107. 105 .L11:
  108. 106 0068 8FEF ldi r24,lo8(-1)
  109. 107 006a 9FEF ldi r25,lo8(-1)
  110. 108 .L10:
  111. 109 /* epilogue start */
  112. 110 006c 0F90 pop __tmp_reg__
  113. 111 006e 0F90 pop __tmp_reg__
  114. 112 0070 DF91 pop r29
  115. 113 0072 CF91 pop r28
  116. 114 0074 1F91 pop r17
  117. GAS LISTING /tmp/ccMlOXMJ.s page 3
  118. 115 0076 0F91 pop r16
  119. 116 0078 FF90 pop r15
  120. 117 007a EF90 pop r14
  121. 118 007c DF90 pop r13
  122. 119 007e CF90 pop r12
  123. 120 0080 BF90 pop r11
  124. 121 0082 AF90 pop r10
  125. 122 0084 0895 ret
  126. 123 .size vsscanf_P, .-vsscanf_P
  127. 124 .ident "GCC: (GNU) 5.3.0"
  128. GAS LISTING /tmp/ccMlOXMJ.s page 4
  129. DEFINED SYMBOLS
  130. *ABS*:0000000000000000 vsscanf_p.c
  131. /tmp/ccMlOXMJ.s:2 *ABS*:000000000000003e __SP_H__
  132. /tmp/ccMlOXMJ.s:3 *ABS*:000000000000003d __SP_L__
  133. /tmp/ccMlOXMJ.s:4 *ABS*:000000000000003f __SREG__
  134. /tmp/ccMlOXMJ.s:5 *ABS*:000000000000003b __RAMPZ__
  135. /tmp/ccMlOXMJ.s:6 *ABS*:0000000000000000 __tmp_reg__
  136. /tmp/ccMlOXMJ.s:7 *ABS*:0000000000000001 __zero_reg__
  137. /tmp/ccMlOXMJ.s:10 .text._sgetb:0000000000000000 _sgetb
  138. /tmp/ccMlOXMJ.s:53 .text.vsscanf_P:0000000000000000 vsscanf_P
  139. UNDEFINED SYMBOLS
  140. __strlen_P
  141. heapFreeList
  142. NutHeapRootAlloc
  143. memcpy_P
  144. _getf
  145. NutHeapRootFree