vsprintf_p.lst 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183
  1. GAS LISTING /tmp/cc7VeJlK.s page 1
  2. 1 .file "vsprintf_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._sputb_P,"ax",@progbits
  10. 9 .global _sputb_P
  11. 10 .type _sputb_P, @function
  12. 11 _sputb_P:
  13. 12 0000 0F93 push r16
  14. 13 0002 1F93 push r17
  15. 14 0004 CF93 push r28
  16. 15 0006 DF93 push r29
  17. 16 /* prologue: function */
  18. 17 /* frame size = 0 */
  19. 18 /* stack size = 4 */
  20. 19 .L__stack_usage = 4
  21. 20 0008 8C01 movw r16,r24
  22. 21 000a EA01 movw r28,r20
  23. 22 000c FC01 movw r30,r24
  24. 23 000e 8081 ld r24,Z
  25. 24 0010 9181 ldd r25,Z+1
  26. 25 0012 0E94 0000 call memcpy_P
  27. 26 0016 F801 movw r30,r16
  28. 27 0018 8081 ld r24,Z
  29. 28 001a 9181 ldd r25,Z+1
  30. 29 001c 8C0F add r24,r28
  31. 30 001e 9D1F adc r25,r29
  32. 31 0020 9183 std Z+1,r25
  33. 32 0022 8083 st Z,r24
  34. 33 0024 CE01 movw r24,r28
  35. 34 /* epilogue start */
  36. 35 0026 DF91 pop r29
  37. 36 0028 CF91 pop r28
  38. 37 002a 1F91 pop r17
  39. 38 002c 0F91 pop r16
  40. 39 002e 0895 ret
  41. 40 .size _sputb_P, .-_sputb_P
  42. 41 .section .text._sputb,"ax",@progbits
  43. 42 .type _sputb, @function
  44. 43 _sputb:
  45. 44 0000 0F93 push r16
  46. 45 0002 1F93 push r17
  47. 46 0004 CF93 push r28
  48. 47 0006 DF93 push r29
  49. 48 /* prologue: function */
  50. 49 /* frame size = 0 */
  51. 50 /* stack size = 4 */
  52. 51 .L__stack_usage = 4
  53. 52 0008 8C01 movw r16,r24
  54. 53 000a EA01 movw r28,r20
  55. 54 000c FC01 movw r30,r24
  56. 55 000e 8081 ld r24,Z
  57. 56 0010 9181 ldd r25,Z+1
  58. 57 0012 0E94 0000 call memcpy
  59. GAS LISTING /tmp/cc7VeJlK.s page 2
  60. 58 0016 F801 movw r30,r16
  61. 59 0018 8081 ld r24,Z
  62. 60 001a 9181 ldd r25,Z+1
  63. 61 001c 8C0F add r24,r28
  64. 62 001e 9D1F adc r25,r29
  65. 63 0020 9183 std Z+1,r25
  66. 64 0022 8083 st Z,r24
  67. 65 0024 CE01 movw r24,r28
  68. 66 /* epilogue start */
  69. 67 0026 DF91 pop r29
  70. 68 0028 CF91 pop r28
  71. 69 002a 1F91 pop r17
  72. 70 002c 0F91 pop r16
  73. 71 002e 0895 ret
  74. 72 .size _sputb, .-_sputb
  75. 73 .section .text.vsprintf_P,"ax",@progbits
  76. 74 .global vsprintf_P
  77. 75 .type vsprintf_P, @function
  78. 76 vsprintf_P:
  79. 77 0000 AF92 push r10
  80. 78 0002 BF92 push r11
  81. 79 0004 CF92 push r12
  82. 80 0006 DF92 push r13
  83. 81 0008 EF92 push r14
  84. 82 000a FF92 push r15
  85. 83 000c 0F93 push r16
  86. 84 000e 1F93 push r17
  87. 85 0010 CF93 push r28
  88. 86 0012 DF93 push r29
  89. 87 0014 1F92 push __zero_reg__
  90. 88 0016 1F92 push __zero_reg__
  91. 89 0018 CDB7 in r28,__SP_L__
  92. 90 001a DEB7 in r29,__SP_H__
  93. 91 /* prologue: function */
  94. 92 /* frame size = 2 */
  95. 93 /* stack size = 12 */
  96. 94 .L__stack_usage = 12
  97. 95 001c 9A83 std Y+2,r25
  98. 96 001e 8983 std Y+1,r24
  99. 97 0020 6B01 movw r12,r22
  100. 98 0022 8A01 movw r16,r20
  101. 99 0024 CB01 movw r24,r22
  102. 100 0026 0E94 0000 call __strlen_P
  103. 101 002a 0196 adiw r24,1
  104. 102 002c 5C01 movw r10,r24
  105. 103 002e BC01 movw r22,r24
  106. 104 0030 80E0 ldi r24,lo8(heapFreeList)
  107. 105 0032 90E0 ldi r25,hi8(heapFreeList)
  108. 106 0034 0E94 0000 call NutHeapRootAlloc
  109. 107 0038 7C01 movw r14,r24
  110. 108 003a 0097 sbiw r24,0
  111. 109 003c 01F0 breq .L5
  112. 110 003e A501 movw r20,r10
  113. 111 0040 B601 movw r22,r12
  114. 112 0042 0E94 0000 call memcpy_P
  115. 113 0046 9701 movw r18,r14
  116. 114 0048 AE01 movw r20,r28
  117. GAS LISTING /tmp/cc7VeJlK.s page 3
  118. 115 004a 4F5F subi r20,-1
  119. 116 004c 5F4F sbci r21,-1
  120. 117 004e 60E0 ldi r22,lo8(gs(_sputb_P))
  121. 118 0050 70E0 ldi r23,hi8(gs(_sputb_P))
  122. 119 0052 80E0 ldi r24,lo8(gs(_sputb))
  123. 120 0054 90E0 ldi r25,hi8(gs(_sputb))
  124. 121 0056 0E94 0000 call _putf
  125. 122 005a 8C01 movw r16,r24
  126. 123 005c B701 movw r22,r14
  127. 124 005e 80E0 ldi r24,lo8(heapFreeList)
  128. 125 0060 90E0 ldi r25,hi8(heapFreeList)
  129. 126 0062 0E94 0000 call NutHeapRootFree
  130. 127 0066 E981 ldd r30,Y+1
  131. 128 0068 FA81 ldd r31,Y+2
  132. 129 006a 1082 st Z,__zero_reg__
  133. 130 006c C801 movw r24,r16
  134. 131 006e 00C0 rjmp .L4
  135. 132 .L5:
  136. 133 0070 8FEF ldi r24,lo8(-1)
  137. 134 0072 9FEF ldi r25,lo8(-1)
  138. 135 .L4:
  139. 136 /* epilogue start */
  140. 137 0074 0F90 pop __tmp_reg__
  141. 138 0076 0F90 pop __tmp_reg__
  142. 139 0078 DF91 pop r29
  143. 140 007a CF91 pop r28
  144. 141 007c 1F91 pop r17
  145. 142 007e 0F91 pop r16
  146. 143 0080 FF90 pop r15
  147. 144 0082 EF90 pop r14
  148. 145 0084 DF90 pop r13
  149. 146 0086 CF90 pop r12
  150. 147 0088 BF90 pop r11
  151. 148 008a AF90 pop r10
  152. 149 008c 0895 ret
  153. 150 .size vsprintf_P, .-vsprintf_P
  154. 151 .ident "GCC: (GNU) 5.3.0"
  155. GAS LISTING /tmp/cc7VeJlK.s page 4
  156. DEFINED SYMBOLS
  157. *ABS*:0000000000000000 vsprintf_p.c
  158. /tmp/cc7VeJlK.s:2 *ABS*:000000000000003e __SP_H__
  159. /tmp/cc7VeJlK.s:3 *ABS*:000000000000003d __SP_L__
  160. /tmp/cc7VeJlK.s:4 *ABS*:000000000000003f __SREG__
  161. /tmp/cc7VeJlK.s:5 *ABS*:000000000000003b __RAMPZ__
  162. /tmp/cc7VeJlK.s:6 *ABS*:0000000000000000 __tmp_reg__
  163. /tmp/cc7VeJlK.s:7 *ABS*:0000000000000001 __zero_reg__
  164. /tmp/cc7VeJlK.s:11 .text._sputb_P:0000000000000000 _sputb_P
  165. /tmp/cc7VeJlK.s:43 .text._sputb:0000000000000000 _sputb
  166. /tmp/cc7VeJlK.s:76 .text.vsprintf_P:0000000000000000 vsprintf_P
  167. UNDEFINED SYMBOLS
  168. memcpy_P
  169. memcpy
  170. __strlen_P
  171. heapFreeList
  172. NutHeapRootAlloc
  173. _putf
  174. NutHeapRootFree