freopen.lst 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. GAS LISTING /tmp/cc1aEi8R.s page 1
  2. 1 .file "freopen.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.freopen,"ax",@progbits
  10. 9 .global freopen
  11. 10 .type freopen, @function
  12. 11 freopen:
  13. 12 0000 9F92 push r9
  14. 13 0002 AF92 push r10
  15. 14 0004 BF92 push r11
  16. 15 0006 CF92 push r12
  17. 16 0008 DF92 push r13
  18. 17 000a EF92 push r14
  19. 18 000c FF92 push r15
  20. 19 000e 0F93 push r16
  21. 20 0010 1F93 push r17
  22. 21 0012 CF93 push r28
  23. 22 0014 DF93 push r29
  24. 23 /* prologue: function */
  25. 24 /* frame size = 0 */
  26. 25 /* stack size = 11 */
  27. 26 .L__stack_usage = 11
  28. 27 0016 5C01 movw r10,r24
  29. 28 0018 CB01 movw r24,r22
  30. 29 001a 8A01 movw r16,r20
  31. 30 001c 0E94 0000 call _fmode
  32. 31 0020 7C01 movw r14,r24
  33. 32 0022 0196 adiw r24,1
  34. 33 0024 01F0 breq .L13
  35. 34 0026 E0E0 ldi r30,lo8(__iob)
  36. 35 0028 F0E0 ldi r31,hi8(__iob)
  37. 36 002a C0E0 ldi r28,0
  38. 37 002c D0E0 ldi r29,0
  39. 38 .L4:
  40. 39 002e 8191 ld r24,Z+
  41. 40 0030 9191 ld r25,Z+
  42. 41 0032 8017 cp r24,r16
  43. 42 0034 9107 cpc r25,r17
  44. 43 0036 01F0 breq .L15
  45. 44 0038 2196 adiw r28,1
  46. 45 003a C830 cpi r28,8
  47. 46 003c D105 cpc r29,__zero_reg__
  48. 47 003e 01F4 brne .L4
  49. 48 0040 89E0 ldi r24,lo8(9)
  50. 49 0042 90E0 ldi r25,0
  51. 50 0044 9093 0000 sts errno+1,r25
  52. 51 0048 8093 0000 sts errno,r24
  53. 52 .L13:
  54. 53 004c E0E0 ldi r30,0
  55. 54 004e F0E0 ldi r31,0
  56. 55 0050 00C0 rjmp .L3
  57. 56 .L15:
  58. 57 0052 87E0 ldi r24,lo8(7)
  59. GAS LISTING /tmp/cc1aEi8R.s page 2
  60. 58 0054 90E0 ldi r25,0
  61. 59 0056 0E94 0000 call malloc
  62. 60 005a 6C01 movw r12,r24
  63. 61 005c 8E01 movw r16,r28
  64. 62 005e 000F lsl r16
  65. 63 0060 111F rol r17
  66. 64 0062 0050 subi r16,lo8(-(__iob))
  67. 65 0064 1040 sbci r17,hi8(-(__iob))
  68. 66 0066 F801 movw r30,r16
  69. 67 0068 D182 std Z+1,r13
  70. 68 006a C082 st Z,r12
  71. 69 006c C114 cp r12,__zero_reg__
  72. 70 006e D104 cpc r13,__zero_reg__
  73. 71 0070 01F0 breq .L13
  74. 72 0072 B701 movw r22,r14
  75. 73 0074 C501 movw r24,r10
  76. 74 0076 0E94 0000 call _open
  77. 75 007a 9C01 movw r18,r24
  78. 76 007c F601 movw r30,r12
  79. 77 007e 9183 std Z+1,r25
  80. 78 0080 8083 st Z,r24
  81. 79 0082 F801 movw r30,r16
  82. 80 0084 8081 ld r24,Z
  83. 81 0086 9181 ldd r25,Z+1
  84. 82 0088 2F3F cpi r18,-1
  85. 83 008a 3F4F sbci r19,-1
  86. 84 008c 01F4 brne .L7
  87. 85 008e 0E94 0000 call free
  88. 86 0092 42E0 ldi r20,lo8(2)
  89. 87 0094 4C17 cp r20,r28
  90. 88 0096 00F0 brlo .L8
  91. 89 0098 2196 adiw r28,1
  92. 90 009a F801 movw r30,r16
  93. 91 009c D183 std Z+1,r29
  94. 92 009e C083 st Z,r28
  95. 93 00a0 00C0 rjmp .L13
  96. 94 .L8:
  97. 95 00a2 F801 movw r30,r16
  98. 96 00a4 1182 std Z+1,__zero_reg__
  99. 97 00a6 1082 st Z,__zero_reg__
  100. 98 00a8 00C0 rjmp .L13
  101. 99 .L7:
  102. 100 00aa FC01 movw r30,r24
  103. 101 00ac F382 std Z+3,r15
  104. 102 00ae E282 std Z+2,r14
  105. 103 00b0 1482 std Z+4,__zero_reg__
  106. 104 00b2 1682 std Z+6,__zero_reg__
  107. 105 00b4 1582 std Z+5,__zero_reg__
  108. 106 .L3:
  109. 107 00b6 CF01 movw r24,r30
  110. 108 /* epilogue start */
  111. 109 00b8 DF91 pop r29
  112. 110 00ba CF91 pop r28
  113. 111 00bc 1F91 pop r17
  114. 112 00be 0F91 pop r16
  115. 113 00c0 FF90 pop r15
  116. 114 00c2 EF90 pop r14
  117. GAS LISTING /tmp/cc1aEi8R.s page 3
  118. 115 00c4 DF90 pop r13
  119. 116 00c6 CF90 pop r12
  120. 117 00c8 BF90 pop r11
  121. 118 00ca AF90 pop r10
  122. 119 00cc 9F90 pop r9
  123. 120 00ce 0895 ret
  124. 121 .size freopen, .-freopen
  125. 122 .ident "GCC: (GNU) 5.3.0"
  126. GAS LISTING /tmp/cc1aEi8R.s page 4
  127. DEFINED SYMBOLS
  128. *ABS*:0000000000000000 freopen.c
  129. /tmp/cc1aEi8R.s:2 *ABS*:000000000000003e __SP_H__
  130. /tmp/cc1aEi8R.s:3 *ABS*:000000000000003d __SP_L__
  131. /tmp/cc1aEi8R.s:4 *ABS*:000000000000003f __SREG__
  132. /tmp/cc1aEi8R.s:5 *ABS*:000000000000003b __RAMPZ__
  133. /tmp/cc1aEi8R.s:6 *ABS*:0000000000000000 __tmp_reg__
  134. /tmp/cc1aEi8R.s:7 *ABS*:0000000000000001 __zero_reg__
  135. /tmp/cc1aEi8R.s:11 .text.freopen:0000000000000000 freopen
  136. UNDEFINED SYMBOLS
  137. _fmode
  138. __iob
  139. errno
  140. malloc
  141. _open
  142. free