vfprintf_p.lst 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. GAS LISTING /tmp/ccPr5wtd.s page 1
  2. 1 .file "vfprintf_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.vfprintf_P,"ax",@progbits
  10. 9 .global vfprintf_P
  11. 10 .type vfprintf_P, @function
  12. 11 vfprintf_P:
  13. 12 0000 AF92 push r10
  14. 13 0002 BF92 push r11
  15. 14 0004 CF92 push r12
  16. 15 0006 DF92 push r13
  17. 16 0008 EF92 push r14
  18. 17 000a FF92 push r15
  19. 18 000c 0F93 push r16
  20. 19 000e 1F93 push r17
  21. 20 0010 CF93 push r28
  22. 21 0012 DF93 push r29
  23. 22 /* prologue: function */
  24. 23 /* frame size = 0 */
  25. 24 /* stack size = 10 */
  26. 25 .L__stack_usage = 10
  27. 26 0014 5C01 movw r10,r24
  28. 27 0016 EB01 movw r28,r22
  29. 28 0018 8A01 movw r16,r20
  30. 29 001a CB01 movw r24,r22
  31. 30 001c 0E94 0000 call __strlen_P
  32. 31 0020 0196 adiw r24,1
  33. 32 0022 6C01 movw r12,r24
  34. 33 0024 BC01 movw r22,r24
  35. 34 0026 80E0 ldi r24,lo8(heapFreeList)
  36. 35 0028 90E0 ldi r25,hi8(heapFreeList)
  37. 36 002a 0E94 0000 call NutHeapRootAlloc
  38. 37 002e 7C01 movw r14,r24
  39. 38 0030 0097 sbiw r24,0
  40. 39 0032 01F0 breq .L3
  41. 40 0034 A601 movw r20,r12
  42. 41 0036 BE01 movw r22,r28
  43. 42 0038 0E94 0000 call memcpy_P
  44. 43 003c F501 movw r30,r10
  45. 44 003e 4081 ld r20,Z
  46. 45 0040 5181 ldd r21,Z+1
  47. 46 0042 9701 movw r18,r14
  48. 47 0044 60E0 ldi r22,lo8(gs(_write_P))
  49. 48 0046 70E0 ldi r23,hi8(gs(_write_P))
  50. 49 0048 80E0 ldi r24,lo8(gs(_write))
  51. 50 004a 90E0 ldi r25,hi8(gs(_write))
  52. 51 004c 0E94 0000 call _putf
  53. 52 0050 D82F mov r29,r24
  54. 53 0052 C92F mov r28,r25
  55. 54 0054 B701 movw r22,r14
  56. 55 0056 80E0 ldi r24,lo8(heapFreeList)
  57. 56 0058 90E0 ldi r25,hi8(heapFreeList)
  58. 57 005a 0E94 0000 call NutHeapRootFree
  59. GAS LISTING /tmp/ccPr5wtd.s page 2
  60. 58 005e 8D2F mov r24,r29
  61. 59 0060 9C2F mov r25,r28
  62. 60 0062 00C0 rjmp .L2
  63. 61 .L3:
  64. 62 0064 8FEF ldi r24,lo8(-1)
  65. 63 0066 9FEF ldi r25,lo8(-1)
  66. 64 .L2:
  67. 65 /* epilogue start */
  68. 66 0068 DF91 pop r29
  69. 67 006a CF91 pop r28
  70. 68 006c 1F91 pop r17
  71. 69 006e 0F91 pop r16
  72. 70 0070 FF90 pop r15
  73. 71 0072 EF90 pop r14
  74. 72 0074 DF90 pop r13
  75. 73 0076 CF90 pop r12
  76. 74 0078 BF90 pop r11
  77. 75 007a AF90 pop r10
  78. 76 007c 0895 ret
  79. 77 .size vfprintf_P, .-vfprintf_P
  80. 78 .ident "GCC: (GNU) 5.3.0"
  81. GAS LISTING /tmp/ccPr5wtd.s page 3
  82. DEFINED SYMBOLS
  83. *ABS*:0000000000000000 vfprintf_p.c
  84. /tmp/ccPr5wtd.s:2 *ABS*:000000000000003e __SP_H__
  85. /tmp/ccPr5wtd.s:3 *ABS*:000000000000003d __SP_L__
  86. /tmp/ccPr5wtd.s:4 *ABS*:000000000000003f __SREG__
  87. /tmp/ccPr5wtd.s:5 *ABS*:000000000000003b __RAMPZ__
  88. /tmp/ccPr5wtd.s:6 *ABS*:0000000000000000 __tmp_reg__
  89. /tmp/ccPr5wtd.s:7 *ABS*:0000000000000001 __zero_reg__
  90. /tmp/ccPr5wtd.s:11 .text.vfprintf_P:0000000000000000 vfprintf_P
  91. UNDEFINED SYMBOLS
  92. __strlen_P
  93. heapFreeList
  94. NutHeapRootAlloc
  95. memcpy_P
  96. _write_P
  97. _write
  98. _putf
  99. NutHeapRootFree