dirent.lst 9.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296
  1. GAS LISTING /tmp/ccCHcmOk.s page 1
  2. 1 .file "dirent.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.opendir,"ax",@progbits
  10. 9 .global opendir
  11. 10 .type opendir, @function
  12. 11 opendir:
  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 5C01 movw r10,r24
  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 7F01 movw r14,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/ccCHcmOk.s page 2
  60. 58 0050 0E94 0000 call NutDeviceLookup
  61. 59 0054 6C01 movw r12,r24
  62. 60 0056 892B or r24,r25
  63. 61 0058 01F4 brne .L5
  64. 62 005a 83E1 ldi r24,lo8(19)
  65. 63 005c 90E0 ldi r25,0
  66. 64 005e 00C0 rjmp .L20
  67. 65 .L5:
  68. 66 0060 86E0 ldi r24,lo8(6)
  69. 67 0062 90E0 ldi r25,0
  70. 68 0064 0E94 0000 call malloc
  71. 69 0068 8C01 movw r16,r24
  72. 70 006a 892B or r24,r25
  73. 71 006c 01F0 breq .L21
  74. 72 006e 86E0 ldi r24,lo8(6)
  75. 73 0070 D801 movw r26,r16
  76. 74 0:
  77. 75 0072 1D92 st X+,__zero_reg__
  78. 76 0074 8A95 dec r24
  79. 77 0076 01F4 brne 0b
  80. 78 0078 D501 movw r26,r10
  81. 79 007a 1196 adiw r26,1
  82. 80 007c FD01 movw r30,r26
  83. 81 0:
  84. 82 007e 0190 ld __tmp_reg__,Z+
  85. 83 0080 0020 tst __tmp_reg__
  86. 84 0082 01F4 brne 0b
  87. 85 0084 3197 sbiw r30,1
  88. 86 0086 EA1B sub r30,r26
  89. 87 0088 FB0B sbc r31,r27
  90. 88 008a E830 cpi r30,8
  91. 89 008c B1E0 ldi r27,1
  92. 90 008e FB07 cpc r31,r27
  93. 91 0090 00F0 brlo .L8
  94. 92 0092 D801 movw r26,r16
  95. 93 0094 1596 adiw r26,4+1
  96. 94 0096 FC93 st X,r31
  97. 95 0098 EE93 st -X,r30
  98. 96 009a 1497 sbiw r26,4
  99. 97 009c 00C0 rjmp .L9
  100. 98 .L8:
  101. 99 009e 88E0 ldi r24,lo8(8)
  102. 100 00a0 91E0 ldi r25,lo8(1)
  103. 101 00a2 F801 movw r30,r16
  104. 102 00a4 9583 std Z+5,r25
  105. 103 00a6 8483 std Z+4,r24
  106. 104 .L9:
  107. 105 00a8 D801 movw r26,r16
  108. 106 00aa 1496 adiw r26,4
  109. 107 00ac 8D91 ld r24,X+
  110. 108 00ae 9C91 ld r25,X
  111. 109 00b0 1597 sbiw r26,4+1
  112. 110 00b2 0E94 0000 call malloc
  113. 111 00b6 F801 movw r30,r16
  114. 112 00b8 9383 std Z+3,r25
  115. 113 00ba 8283 std Z+2,r24
  116. 114 00bc 0097 sbiw r24,0
  117. GAS LISTING /tmp/ccCHcmOk.s page 3
  118. 115 00be 01F4 brne .L10
  119. 116 00c0 C801 movw r24,r16
  120. 117 00c2 0E94 0000 call free
  121. 118 .L21:
  122. 119 00c6 8CE0 ldi r24,lo8(12)
  123. 120 00c8 90E0 ldi r25,0
  124. 121 .L20:
  125. 122 00ca 9093 0000 sts errno+1,r25
  126. 123 00ce 8093 0000 sts errno,r24
  127. 124 00d2 00C0 rjmp .L19
  128. 125 .L10:
  129. 126 00d4 D701 movw r26,r14
  130. 127 00d6 2C91 ld r18,X
  131. 128 00d8 2A33 cpi r18,lo8(58)
  132. 129 00da 01F4 brne .L11
  133. 130 00dc BFEF ldi r27,-1
  134. 131 00de EB1A sub r14,r27
  135. 132 00e0 FB0A sbc r15,r27
  136. 133 .L11:
  137. 134 00e2 B701 movw r22,r14
  138. 135 00e4 0E94 0000 call strcpy
  139. 136 00e8 D601 movw r26,r12
  140. 137 00ea 5596 adiw r26,21
  141. 138 00ec ED91 ld r30,X+
  142. 139 00ee FC91 ld r31,X
  143. 140 00f0 5697 sbiw r26,21+1
  144. 141 00f2 A801 movw r20,r16
  145. 142 00f4 63E1 ldi r22,lo8(19)
  146. 143 00f6 71E1 ldi r23,lo8(17)
  147. 144 00f8 C601 movw r24,r12
  148. 145 00fa 1995 eicall
  149. 146 00fc 892B or r24,r25
  150. 147 00fe 01F0 breq .L12
  151. 148 0100 F801 movw r30,r16
  152. 149 0102 8281 ldd r24,Z+2
  153. 150 0104 9381 ldd r25,Z+3
  154. 151 0106 0E94 0000 call free
  155. 152 010a C801 movw r24,r16
  156. 153 010c 0E94 0000 call free
  157. 154 .L19:
  158. 155 0110 80E0 ldi r24,0
  159. 156 0112 90E0 ldi r25,0
  160. 157 0114 00C0 rjmp .L6
  161. 158 .L12:
  162. 159 0116 C801 movw r24,r16
  163. 160 .L6:
  164. 161 /* epilogue start */
  165. 162 0118 2996 adiw r28,9
  166. 163 011a 0FB6 in __tmp_reg__,__SREG__
  167. 164 011c F894 cli
  168. 165 011e DEBF out __SP_H__,r29
  169. 166 0120 0FBE out __SREG__,__tmp_reg__
  170. 167 0122 CDBF out __SP_L__,r28
  171. 168 0124 DF91 pop r29
  172. 169 0126 CF91 pop r28
  173. 170 0128 1F91 pop r17
  174. 171 012a 0F91 pop r16
  175. GAS LISTING /tmp/ccCHcmOk.s page 4
  176. 172 012c FF90 pop r15
  177. 173 012e EF90 pop r14
  178. 174 0130 DF90 pop r13
  179. 175 0132 CF90 pop r12
  180. 176 0134 BF90 pop r11
  181. 177 0136 AF90 pop r10
  182. 178 0138 0895 ret
  183. 179 .size opendir, .-opendir
  184. 180 .section .text.closedir,"ax",@progbits
  185. 181 .global closedir
  186. 182 .type closedir, @function
  187. 183 closedir:
  188. 184 0000 CF93 push r28
  189. 185 0002 DF93 push r29
  190. 186 /* prologue: function */
  191. 187 /* frame size = 0 */
  192. 188 /* stack size = 2 */
  193. 189 .L__stack_usage = 2
  194. 190 0004 EC01 movw r28,r24
  195. 191 0006 892B or r24,r25
  196. 192 0008 01F0 breq .L24
  197. 193 000a E881 ld r30,Y
  198. 194 000c F981 ldd r31,Y+1
  199. 195 000e 8081 ld r24,Z
  200. 196 0010 9181 ldd r25,Z+1
  201. 197 0012 DC01 movw r26,r24
  202. 198 0014 5596 adiw r26,21
  203. 199 0016 ED91 ld r30,X+
  204. 200 0018 FC91 ld r31,X
  205. 201 001a 5697 sbiw r26,21+1
  206. 202 001c AE01 movw r20,r28
  207. 203 001e 64E1 ldi r22,lo8(20)
  208. 204 0020 71E1 ldi r23,lo8(17)
  209. 205 0022 1995 eicall
  210. 206 0024 8A81 ldd r24,Y+2
  211. 207 0026 9B81 ldd r25,Y+3
  212. 208 0028 0097 sbiw r24,0
  213. 209 002a 01F0 breq .L25
  214. 210 002c 0E94 0000 call free
  215. 211 .L25:
  216. 212 0030 CE01 movw r24,r28
  217. 213 0032 0E94 0000 call free
  218. 214 .L24:
  219. 215 0036 80E0 ldi r24,0
  220. 216 0038 90E0 ldi r25,0
  221. 217 /* epilogue start */
  222. 218 003a DF91 pop r29
  223. 219 003c CF91 pop r28
  224. 220 003e 0895 ret
  225. 221 .size closedir, .-closedir
  226. 222 .section .text.readdir,"ax",@progbits
  227. 223 .global readdir
  228. 224 .type readdir, @function
  229. 225 readdir:
  230. 226 0000 CF93 push r28
  231. 227 0002 DF93 push r29
  232. 228 /* prologue: function */
  233. GAS LISTING /tmp/ccCHcmOk.s page 5
  234. 229 /* frame size = 0 */
  235. 230 /* stack size = 2 */
  236. 231 .L__stack_usage = 2
  237. 232 0004 EC01 movw r28,r24
  238. 233 0006 E881 ld r30,Y
  239. 234 0008 F981 ldd r31,Y+1
  240. 235 000a 8081 ld r24,Z
  241. 236 000c 9181 ldd r25,Z+1
  242. 237 000e DC01 movw r26,r24
  243. 238 0010 5596 adiw r26,21
  244. 239 0012 ED91 ld r30,X+
  245. 240 0014 FC91 ld r31,X
  246. 241 0016 5697 sbiw r26,21+1
  247. 242 0018 AE01 movw r20,r28
  248. 243 001a 65E1 ldi r22,lo8(21)
  249. 244 001c 71E1 ldi r23,lo8(17)
  250. 245 001e 1995 eicall
  251. 246 0020 892B or r24,r25
  252. 247 0022 01F4 brne .L34
  253. 248 0024 8A81 ldd r24,Y+2
  254. 249 0026 9B81 ldd r25,Y+3
  255. 250 0028 00C0 rjmp .L33
  256. 251 .L34:
  257. 252 002a 80E0 ldi r24,0
  258. 253 002c 90E0 ldi r25,0
  259. 254 .L33:
  260. 255 /* epilogue start */
  261. 256 002e DF91 pop r29
  262. 257 0030 CF91 pop r28
  263. 258 0032 0895 ret
  264. 259 .size readdir, .-readdir
  265. 260 .ident "GCC: (GNU) 5.3.0"
  266. GAS LISTING /tmp/ccCHcmOk.s page 6
  267. DEFINED SYMBOLS
  268. *ABS*:0000000000000000 dirent.c
  269. /tmp/ccCHcmOk.s:2 *ABS*:000000000000003e __SP_H__
  270. /tmp/ccCHcmOk.s:3 *ABS*:000000000000003d __SP_L__
  271. /tmp/ccCHcmOk.s:4 *ABS*:000000000000003f __SREG__
  272. /tmp/ccCHcmOk.s:5 *ABS*:000000000000003b __RAMPZ__
  273. /tmp/ccCHcmOk.s:6 *ABS*:0000000000000000 __tmp_reg__
  274. /tmp/ccCHcmOk.s:7 *ABS*:0000000000000001 __zero_reg__
  275. /tmp/ccCHcmOk.s:11 .text.opendir:0000000000000000 opendir
  276. /tmp/ccCHcmOk.s:183 .text.closedir:0000000000000000 closedir
  277. /tmp/ccCHcmOk.s:225 .text.readdir:0000000000000000 readdir
  278. UNDEFINED SYMBOLS
  279. NutDeviceLookup
  280. malloc
  281. free
  282. errno
  283. strcpy