fdopen.lst 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. GAS LISTING /tmp/ccrYLilz.s page 1
  2. 1 .file "fdopen.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._fdopen,"ax",@progbits
  10. 9 .global _fdopen
  11. 10 .type _fdopen, @function
  12. 11 _fdopen:
  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 8C01 movw r16,r24
  24. 23 000e CB01 movw r24,r22
  25. 24 0010 0E94 0000 call _fmode
  26. 25 0014 7C01 movw r14,r24
  27. 26 0016 8FEF ldi r24,-1
  28. 27 0018 E816 cp r14,r24
  29. 28 001a F806 cpc r15,r24
  30. 29 001c 01F4 brne .+2
  31. 30 001e 00C0 rjmp .L11
  32. 31 0020 0830 cpi r16,8
  33. 32 0022 1105 cpc r17,__zero_reg__
  34. 33 0024 00F0 brlo .L3
  35. 34 0026 D801 movw r26,r16
  36. 35 0028 8D91 ld r24,X+
  37. 36 002a 9C91 ld r25,X
  38. 37 002c 1197 sbiw r26,1
  39. 38 002e 892B or r24,r25
  40. 39 0030 01F4 brne .L3
  41. 40 0032 1496 adiw r26,4
  42. 41 0034 8C91 ld r24,X
  43. 42 0036 1497 sbiw r26,4
  44. 43 0038 8430 cpi r24,lo8(4)
  45. 44 003a 01F4 brne .L3
  46. 45 003c E0E0 ldi r30,lo8(__fds)
  47. 46 003e F0E0 ldi r31,hi8(__fds)
  48. 47 0040 80E0 ldi r24,0
  49. 48 0042 90E0 ldi r25,0
  50. 49 .L5:
  51. 50 0044 8C01 movw r16,r24
  52. 51 0046 2191 ld r18,Z+
  53. 52 0048 3191 ld r19,Z+
  54. 53 004a 232B or r18,r19
  55. 54 004c 01F0 breq .L16
  56. 55 004e 0196 adiw r24,1
  57. 56 0050 8830 cpi r24,8
  58. 57 0052 9105 cpc r25,__zero_reg__
  59. GAS LISTING /tmp/ccrYLilz.s page 2
  60. 58 0054 01F4 brne .L5
  61. 59 0056 88E1 ldi r24,lo8(24)
  62. 60 0058 90E0 ldi r25,0
  63. 61 005a 00C0 rjmp .L14
  64. 62 .L16:
  65. 63 005c FC01 movw r30,r24
  66. 64 005e EE0F lsl r30
  67. 65 0060 FF1F rol r31
  68. 66 0062 E050 subi r30,lo8(-(__fds))
  69. 67 0064 F040 sbci r31,hi8(-(__fds))
  70. 68 0066 B183 std Z+1,r27
  71. 69 0068 A083 st Z,r26
  72. 70 .L3:
  73. 71 006a E0E0 ldi r30,lo8(__iob)
  74. 72 006c F0E0 ldi r31,hi8(__iob)
  75. 73 006e C0E0 ldi r28,0
  76. 74 0070 D0E0 ldi r29,0
  77. 75 .L7:
  78. 76 0072 8191 ld r24,Z+
  79. 77 0074 9191 ld r25,Z+
  80. 78 0076 892B or r24,r25
  81. 79 0078 01F0 breq .L17
  82. 80 007a 2196 adiw r28,1
  83. 81 007c C830 cpi r28,8
  84. 82 007e D105 cpc r29,__zero_reg__
  85. 83 0080 01F4 brne .L7
  86. 84 0082 87E1 ldi r24,lo8(23)
  87. 85 0084 90E0 ldi r25,0
  88. 86 .L14:
  89. 87 0086 9093 0000 sts errno+1,r25
  90. 88 008a 8093 0000 sts errno,r24
  91. 89 008e 00C0 rjmp .L11
  92. 90 .L17:
  93. 91 0090 87E0 ldi r24,lo8(7)
  94. 92 0092 90E0 ldi r25,0
  95. 93 0094 0E94 0000 call malloc
  96. 94 0098 FC01 movw r30,r24
  97. 95 009a CC0F lsl r28
  98. 96 009c DD1F rol r29
  99. 97 009e C050 subi r28,lo8(-(__iob))
  100. 98 00a0 D040 sbci r29,hi8(-(__iob))
  101. 99 00a2 F983 std Y+1,r31
  102. 100 00a4 E883 st Y,r30
  103. 101 00a6 3097 sbiw r30,0
  104. 102 00a8 01F0 breq .L9
  105. 103 00aa 1183 std Z+1,r17
  106. 104 00ac 0083 st Z,r16
  107. 105 00ae F382 std Z+3,r15
  108. 106 00b0 E282 std Z+2,r14
  109. 107 00b2 1482 std Z+4,__zero_reg__
  110. 108 00b4 1682 std Z+6,__zero_reg__
  111. 109 00b6 1582 std Z+5,__zero_reg__
  112. 110 00b8 00C0 rjmp .L10
  113. 111 .L9:
  114. 112 00ba 8CE0 ldi r24,lo8(12)
  115. 113 00bc 90E0 ldi r25,0
  116. 114 00be 9093 0000 sts errno+1,r25
  117. GAS LISTING /tmp/ccrYLilz.s page 3
  118. 115 00c2 8093 0000 sts errno,r24
  119. 116 .L10:
  120. 117 00c6 CF01 movw r24,r30
  121. 118 00c8 00C0 rjmp .L2
  122. 119 .L11:
  123. 120 00ca 80E0 ldi r24,0
  124. 121 00cc 90E0 ldi r25,0
  125. 122 .L2:
  126. 123 /* epilogue start */
  127. 124 00ce DF91 pop r29
  128. 125 00d0 CF91 pop r28
  129. 126 00d2 1F91 pop r17
  130. 127 00d4 0F91 pop r16
  131. 128 00d6 FF90 pop r15
  132. 129 00d8 EF90 pop r14
  133. 130 00da 0895 ret
  134. 131 .size _fdopen, .-_fdopen
  135. 132 .ident "GCC: (GNU) 5.3.0"
  136. GAS LISTING /tmp/ccrYLilz.s page 4
  137. DEFINED SYMBOLS
  138. *ABS*:0000000000000000 fdopen.c
  139. /tmp/ccrYLilz.s:2 *ABS*:000000000000003e __SP_H__
  140. /tmp/ccrYLilz.s:3 *ABS*:000000000000003d __SP_L__
  141. /tmp/ccrYLilz.s:4 *ABS*:000000000000003f __SREG__
  142. /tmp/ccrYLilz.s:5 *ABS*:000000000000003b __RAMPZ__
  143. /tmp/ccrYLilz.s:6 *ABS*:0000000000000000 __tmp_reg__
  144. /tmp/ccrYLilz.s:7 *ABS*:0000000000000001 __zero_reg__
  145. /tmp/ccrYLilz.s:11 .text._fdopen:0000000000000000 _fdopen
  146. UNDEFINED SYMBOLS
  147. _fmode
  148. __fds
  149. __iob
  150. errno
  151. malloc