open.lst 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193
  1. GAS LISTING /tmp/ccdqneNU.s page 1
  2. 1 .file "open.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._open,"ax",@progbits
  10. 9 .global _open
  11. 10 .type _open, @function
  12. 11 _open:
  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 0014 CDB7 in r28,__SP_L__
  24. 23 0016 DEB7 in r29,__SP_H__
  25. 24 0018 2997 sbiw r28,9
  26. 25 001a 0FB6 in __tmp_reg__,__SREG__
  27. 26 001c F894 cli
  28. 27 001e DEBF out __SP_H__,r29
  29. 28 0020 0FBE out __SREG__,__tmp_reg__
  30. 29 0022 CDBF out __SP_L__,r28
  31. 30 /* prologue: function */
  32. 31 /* frame size = 9 */
  33. 32 /* stack size = 19 */
  34. 33 .L__stack_usage = 19
  35. 34 0024 5B01 movw r10,r22
  36. 35 0026 FC01 movw r30,r24
  37. 36 0028 DE01 movw r26,r28
  38. 37 002a 1196 adiw r26,1
  39. 38 002c 90E0 ldi r25,0
  40. 39 002e AD01 movw r20,r26
  41. 40 .L2:
  42. 41 0030 6F01 movw r12,r30
  43. 42 0032 2191 ld r18,Z+
  44. 43 0034 2223 tst r18
  45. 44 0036 01F0 breq .L3
  46. 45 0038 2A33 cpi r18,lo8(58)
  47. 46 003a 01F0 breq .L3
  48. 47 003c 9830 cpi r25,lo8(8)
  49. 48 003e 01F0 breq .L3
  50. 49 0040 2D93 st X+,r18
  51. 50 0042 9F5F subi r25,lo8(-(1))
  52. 51 0044 00C0 rjmp .L2
  53. 52 .L3:
  54. 53 0046 FA01 movw r30,r20
  55. 54 0048 E90F add r30,r25
  56. 55 004a F11D adc r31,__zero_reg__
  57. 56 004c 1082 st Z,__zero_reg__
  58. 57 004e CA01 movw r24,r20
  59. GAS LISTING /tmp/ccdqneNU.s page 2
  60. 58 0050 0E94 0000 call NutDeviceLookup
  61. 59 0054 0097 sbiw r24,0
  62. 60 0056 01F4 brne .L5
  63. 61 0058 82E0 ldi r24,lo8(2)
  64. 62 005a 90E0 ldi r25,0
  65. 63 005c 00C0 rjmp .L19
  66. 64 .L5:
  67. 65 005e E0E0 ldi r30,lo8(__fds)
  68. 66 0060 F0E0 ldi r31,hi8(__fds)
  69. 67 0062 E12C mov r14,__zero_reg__
  70. 68 0064 F12C mov r15,__zero_reg__
  71. 69 .L7:
  72. 70 0066 2191 ld r18,Z+
  73. 71 0068 3191 ld r19,Z+
  74. 72 006a 232B or r18,r19
  75. 73 006c 01F0 breq .L22
  76. 74 006e 2FEF ldi r18,-1
  77. 75 0070 E21A sub r14,r18
  78. 76 0072 F20A sbc r15,r18
  79. 77 0074 A8E0 ldi r26,8
  80. 78 0076 EA16 cp r14,r26
  81. 79 0078 F104 cpc r15,__zero_reg__
  82. 80 007a 01F4 brne .L7
  83. 81 007c 88E1 ldi r24,lo8(24)
  84. 82 007e 90E0 ldi r25,0
  85. 83 .L19:
  86. 84 0080 9093 0000 sts errno+1,r25
  87. 85 0084 8093 0000 sts errno,r24
  88. 86 .L20:
  89. 87 0088 8FEF ldi r24,lo8(-1)
  90. 88 008a 9FEF ldi r25,lo8(-1)
  91. 89 008c 00C0 rjmp .L6
  92. 90 .L22:
  93. 91 008e 8701 movw r16,r14
  94. 92 0090 000F lsl r16
  95. 93 0092 111F rol r17
  96. 94 0094 F801 movw r30,r16
  97. 95 0096 E050 subi r30,lo8(-(__fds))
  98. 96 0098 F040 sbci r31,hi8(-(__fds))
  99. 97 009a 2FEF ldi r18,lo8(-1)
  100. 98 009c 3FEF ldi r19,lo8(-1)
  101. 99 009e 3183 std Z+1,r19
  102. 100 00a0 2083 st Z,r18
  103. 101 00a2 F601 movw r30,r12
  104. 102 00a4 2081 ld r18,Z
  105. 103 00a6 2A33 cpi r18,lo8(58)
  106. 104 00a8 01F4 brne .L11
  107. 105 00aa B601 movw r22,r12
  108. 106 00ac 6F5F subi r22,-1
  109. 107 00ae 7F4F sbci r23,-1
  110. 108 00b0 00C0 rjmp .L9
  111. 109 .L11:
  112. 110 00b2 60E0 ldi r22,0
  113. 111 00b4 70E0 ldi r23,0
  114. 112 .L9:
  115. 113 00b6 DC01 movw r26,r24
  116. 114 00b8 5D96 adiw r26,29
  117. GAS LISTING /tmp/ccdqneNU.s page 3
  118. 115 00ba ED91 ld r30,X+
  119. 116 00bc FC91 ld r31,X
  120. 117 00be 5E97 sbiw r26,29+1
  121. 118 00c0 20E0 ldi r18,0
  122. 119 00c2 30E0 ldi r19,0
  123. 120 00c4 A501 movw r20,r10
  124. 121 00c6 1995 eicall
  125. 122 00c8 F801 movw r30,r16
  126. 123 00ca E050 subi r30,lo8(-(__fds))
  127. 124 00cc F040 sbci r31,hi8(-(__fds))
  128. 125 00ce 8F3F cpi r24,-1
  129. 126 00d0 BFEF ldi r27,-1
  130. 127 00d2 9B07 cpc r25,r27
  131. 128 00d4 01F4 brne .L10
  132. 129 00d6 1182 std Z+1,__zero_reg__
  133. 130 00d8 1082 st Z,__zero_reg__
  134. 131 00da 00C0 rjmp .L20
  135. 132 .L10:
  136. 133 00dc 9183 std Z+1,r25
  137. 134 00de 8083 st Z,r24
  138. 135 00e0 C701 movw r24,r14
  139. 136 .L6:
  140. 137 /* epilogue start */
  141. 138 00e2 2996 adiw r28,9
  142. 139 00e4 0FB6 in __tmp_reg__,__SREG__
  143. 140 00e6 F894 cli
  144. 141 00e8 DEBF out __SP_H__,r29
  145. 142 00ea 0FBE out __SREG__,__tmp_reg__
  146. 143 00ec CDBF out __SP_L__,r28
  147. 144 00ee DF91 pop r29
  148. 145 00f0 CF91 pop r28
  149. 146 00f2 1F91 pop r17
  150. 147 00f4 0F91 pop r16
  151. 148 00f6 FF90 pop r15
  152. 149 00f8 EF90 pop r14
  153. 150 00fa DF90 pop r13
  154. 151 00fc CF90 pop r12
  155. 152 00fe BF90 pop r11
  156. 153 0100 AF90 pop r10
  157. 154 0102 0895 ret
  158. 155 .size _open, .-_open
  159. 156 .global __fds
  160. 157 .section .bss
  161. 158 .type __fds, @object
  162. 159 .size __fds, 16
  163. 160 __fds:
  164. 161 0000 0000 0000 .zero 16
  165. 161 0000 0000
  166. 161 0000 0000
  167. 161 0000 0000
  168. 162 .ident "GCC: (GNU) 5.3.0"
  169. 163 .global __do_clear_bss
  170. GAS LISTING /tmp/ccdqneNU.s page 4
  171. DEFINED SYMBOLS
  172. *ABS*:0000000000000000 open.c
  173. /tmp/ccdqneNU.s:2 *ABS*:000000000000003e __SP_H__
  174. /tmp/ccdqneNU.s:3 *ABS*:000000000000003d __SP_L__
  175. /tmp/ccdqneNU.s:4 *ABS*:000000000000003f __SREG__
  176. /tmp/ccdqneNU.s:5 *ABS*:000000000000003b __RAMPZ__
  177. /tmp/ccdqneNU.s:6 *ABS*:0000000000000000 __tmp_reg__
  178. /tmp/ccdqneNU.s:7 *ABS*:0000000000000001 __zero_reg__
  179. /tmp/ccdqneNU.s:11 .text._open:0000000000000000 _open
  180. /tmp/ccdqneNU.s:160 .bss:0000000000000000 __fds
  181. UNDEFINED SYMBOLS
  182. NutDeviceLookup
  183. errno
  184. __do_clear_bss