fclose.lst 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. GAS LISTING /tmp/ccHyBYRt.s page 1
  2. 1 .file "fclose.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.fclose,"ax",@progbits
  10. 9 .global fclose
  11. 10 .type fclose, @function
  12. 11 fclose:
  13. 12 0000 EF92 push r14
  14. 13 0002 FF92 push r15
  15. 14 0004 0F93 push r16
  16. 15 0006 1F93 push r17
  17. 16 0008 CF93 push r28
  18. 17 000a DF93 push r29
  19. 18 /* prologue: function */
  20. 19 /* frame size = 0 */
  21. 20 /* stack size = 6 */
  22. 21 .L__stack_usage = 6
  23. 22 000c 7C01 movw r14,r24
  24. 23 000e 892B or r24,r25
  25. 24 0010 01F4 brne .L2
  26. 25 .L4:
  27. 26 0012 89E0 ldi r24,lo8(9)
  28. 27 0014 90E0 ldi r25,0
  29. 28 0016 9093 0000 sts errno+1,r25
  30. 29 001a 8093 0000 sts errno,r24
  31. 30 001e 0FEF ldi r16,lo8(-1)
  32. 31 0020 1FEF ldi r17,lo8(-1)
  33. 32 0022 00C0 rjmp .L3
  34. 33 .L2:
  35. 34 0024 E0E0 ldi r30,lo8(__iob)
  36. 35 0026 F0E0 ldi r31,hi8(__iob)
  37. 36 0028 C0E0 ldi r28,0
  38. 37 002a D0E0 ldi r29,0
  39. 38 .L5:
  40. 39 002c 8191 ld r24,Z+
  41. 40 002e 9191 ld r25,Z+
  42. 41 0030 E816 cp r14,r24
  43. 42 0032 F906 cpc r15,r25
  44. 43 0034 01F0 breq .L12
  45. 44 0036 2196 adiw r28,1
  46. 45 0038 C830 cpi r28,8
  47. 46 003a D105 cpc r29,__zero_reg__
  48. 47 003c 01F4 brne .L5
  49. 48 003e 00C0 rjmp .L4
  50. 49 .L12:
  51. 50 0040 F701 movw r30,r14
  52. 51 0042 8081 ld r24,Z
  53. 52 0044 9181 ldd r25,Z+1
  54. 53 0046 0E94 0000 call _close
  55. 54 004a 01E0 ldi r16,lo8(1)
  56. 55 004c 10E0 ldi r17,0
  57. 56 004e 892B or r24,r25
  58. 57 0050 01F4 brne .L7
  59. GAS LISTING /tmp/ccHyBYRt.s page 2
  60. 58 0052 00E0 ldi r16,0
  61. 59 0054 10E0 ldi r17,0
  62. 60 .L7:
  63. 61 0056 1195 neg r17
  64. 62 0058 0195 neg r16
  65. 63 005a 1109 sbc r17,__zero_reg__
  66. 64 005c C701 movw r24,r14
  67. 65 005e 0E94 0000 call free
  68. 66 0062 CC0F lsl r28
  69. 67 0064 DD1F rol r29
  70. 68 0066 C050 subi r28,lo8(-(__iob))
  71. 69 0068 D040 sbci r29,hi8(-(__iob))
  72. 70 006a 1982 std Y+1,__zero_reg__
  73. 71 006c 1882 st Y,__zero_reg__
  74. 72 .L3:
  75. 73 006e C801 movw r24,r16
  76. 74 /* epilogue start */
  77. 75 0070 DF91 pop r29
  78. 76 0072 CF91 pop r28
  79. 77 0074 1F91 pop r17
  80. 78 0076 0F91 pop r16
  81. 79 0078 FF90 pop r15
  82. 80 007a EF90 pop r14
  83. 81 007c 0895 ret
  84. 82 .size fclose, .-fclose
  85. 83 .ident "GCC: (GNU) 5.3.0"
  86. GAS LISTING /tmp/ccHyBYRt.s page 3
  87. DEFINED SYMBOLS
  88. *ABS*:0000000000000000 fclose.c
  89. /tmp/ccHyBYRt.s:2 *ABS*:000000000000003e __SP_H__
  90. /tmp/ccHyBYRt.s:3 *ABS*:000000000000003d __SP_L__
  91. /tmp/ccHyBYRt.s:4 *ABS*:000000000000003f __SREG__
  92. /tmp/ccHyBYRt.s:5 *ABS*:000000000000003b __RAMPZ__
  93. /tmp/ccHyBYRt.s:6 *ABS*:0000000000000000 __tmp_reg__
  94. /tmp/ccHyBYRt.s:7 *ABS*:0000000000000001 __zero_reg__
  95. /tmp/ccHyBYRt.s:11 .text.fclose:0000000000000000 fclose
  96. UNDEFINED SYMBOLS
  97. errno
  98. __iob
  99. _close
  100. free