pathops.lst 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458
  1. GAS LISTING /tmp/ccbVdVj8.s page 1
  2. 1 .file "pathops.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.PathOperation,"ax",@progbits
  10. 9 .type PathOperation, @function
  11. 10 PathOperation:
  12. 11 0000 0F93 push r16
  13. 12 0002 1F93 push r17
  14. 13 0004 CF93 push r28
  15. 14 0006 DF93 push r29
  16. 15 0008 CDB7 in r28,__SP_L__
  17. 16 000a DEB7 in r29,__SP_H__
  18. 17 000c 2B97 sbiw r28,11
  19. 18 000e 0FB6 in __tmp_reg__,__SREG__
  20. 19 0010 F894 cli
  21. 20 0012 DEBF out __SP_H__,r29
  22. 21 0014 0FBE out __SREG__,__tmp_reg__
  23. 22 0016 CDBF out __SP_L__,r28
  24. 23 /* prologue: function */
  25. 24 /* frame size = 11 */
  26. 25 /* stack size = 15 */
  27. 26 .L__stack_usage = 15
  28. 27 0018 FC01 movw r30,r24
  29. 28 001a DE01 movw r26,r28
  30. 29 001c 1196 adiw r26,1
  31. 30 001e 90E0 ldi r25,0
  32. 31 0020 AD01 movw r20,r26
  33. 32 .L2:
  34. 33 0022 8F01 movw r16,r30
  35. 34 0024 2191 ld r18,Z+
  36. 35 0026 2223 tst r18
  37. 36 0028 01F0 breq .L3
  38. 37 002a 2A33 cpi r18,lo8(58)
  39. 38 002c 01F0 breq .L3
  40. 39 002e 9830 cpi r25,lo8(8)
  41. 40 0030 01F0 breq .L3
  42. 41 0032 2D93 st X+,r18
  43. 42 0034 9F5F subi r25,lo8(-(1))
  44. 43 0036 00C0 rjmp .L2
  45. 44 .L3:
  46. 45 0038 FA01 movw r30,r20
  47. 46 003a E90F add r30,r25
  48. 47 003c F11D adc r31,__zero_reg__
  49. 48 003e 1082 st Z,__zero_reg__
  50. 49 0040 0F5F subi r16,-1
  51. 50 0042 1F4F sbci r17,-1
  52. 51 0044 CA01 movw r24,r20
  53. 52 0046 6A87 std Y+10,r22
  54. 53 0048 7B87 std Y+11,r23
  55. 54 004a 0E94 0000 call NutDeviceLookup
  56. 55 004e 6A85 ldd r22,Y+10
  57. 56 0050 7B85 ldd r23,Y+11
  58. 57 0052 0097 sbiw r24,0
  59. GAS LISTING /tmp/ccbVdVj8.s page 2
  60. 58 0054 01F4 brne .L5
  61. 59 0056 82E0 ldi r24,lo8(2)
  62. 60 0058 90E0 ldi r25,0
  63. 61 005a 9093 0000 sts errno+1,r25
  64. 62 005e 8093 0000 sts errno,r24
  65. 63 0062 8FEF ldi r24,lo8(-1)
  66. 64 0064 9FEF ldi r25,lo8(-1)
  67. 65 0066 00C0 rjmp .L6
  68. 66 .L5:
  69. 67 0068 DC01 movw r26,r24
  70. 68 006a 5596 adiw r26,21
  71. 69 006c ED91 ld r30,X+
  72. 70 006e FC91 ld r31,X
  73. 71 0070 5697 sbiw r26,21+1
  74. 72 0072 A801 movw r20,r16
  75. 73 0074 1995 eicall
  76. 74 .L6:
  77. 75 /* epilogue start */
  78. 76 0076 2B96 adiw r28,11
  79. 77 0078 0FB6 in __tmp_reg__,__SREG__
  80. 78 007a F894 cli
  81. 79 007c DEBF out __SP_H__,r29
  82. 80 007e 0FBE out __SREG__,__tmp_reg__
  83. 81 0080 CDBF out __SP_L__,r28
  84. 82 0082 DF91 pop r29
  85. 83 0084 CF91 pop r28
  86. 84 0086 1F91 pop r17
  87. 85 0088 0F91 pop r16
  88. 86 008a 0895 ret
  89. 87 .size PathOperation, .-PathOperation
  90. 88 .section .text.lseek,"ax",@progbits
  91. 89 .global lseek
  92. 90 .type lseek, @function
  93. 91 lseek:
  94. 92 /* prologue: function */
  95. 93 /* frame size = 0 */
  96. 94 /* stack size = 0 */
  97. 95 .L__stack_usage = 0
  98. 96 0000 6FEF ldi r22,lo8(-1)
  99. 97 0002 7FEF ldi r23,lo8(-1)
  100. 98 0004 CB01 movw r24,r22
  101. 99 0006 0895 ret
  102. 100 .size lseek, .-lseek
  103. 101 .section .text.rmdir,"ax",@progbits
  104. 102 .global rmdir
  105. 103 .type rmdir, @function
  106. 104 rmdir:
  107. 105 /* prologue: function */
  108. 106 /* frame size = 0 */
  109. 107 /* stack size = 0 */
  110. 108 .L__stack_usage = 0
  111. 109 0000 62E1 ldi r22,lo8(18)
  112. 110 0002 71E1 ldi r23,lo8(17)
  113. 111 0004 0C94 0000 jmp PathOperation
  114. 112 .size rmdir, .-rmdir
  115. 113 .section .text.unlink,"ax",@progbits
  116. 114 .global unlink
  117. GAS LISTING /tmp/ccbVdVj8.s page 3
  118. 115 .type unlink, @function
  119. 116 unlink:
  120. 117 /* prologue: function */
  121. 118 /* frame size = 0 */
  122. 119 /* stack size = 0 */
  123. 120 .L__stack_usage = 0
  124. 121 0000 62E2 ldi r22,lo8(34)
  125. 122 0002 71E1 ldi r23,lo8(17)
  126. 123 0004 0C94 0000 jmp PathOperation
  127. 124 .size unlink, .-unlink
  128. 125 .section .text.stat,"ax",@progbits
  129. 126 .global stat
  130. 127 .type stat, @function
  131. 128 stat:
  132. 129 0000 EF92 push r14
  133. 130 0002 FF92 push r15
  134. 131 0004 0F93 push r16
  135. 132 0006 1F93 push r17
  136. 133 0008 CF93 push r28
  137. 134 000a DF93 push r29
  138. 135 000c CDB7 in r28,__SP_L__
  139. 136 000e DEB7 in r29,__SP_H__
  140. 137 0010 2D97 sbiw r28,13
  141. 138 0012 0FB6 in __tmp_reg__,__SREG__
  142. 139 0014 F894 cli
  143. 140 0016 DEBF out __SP_H__,r29
  144. 141 0018 0FBE out __SREG__,__tmp_reg__
  145. 142 001a CDBF out __SP_L__,r28
  146. 143 /* prologue: function */
  147. 144 /* frame size = 13 */
  148. 145 /* stack size = 19 */
  149. 146 .L__stack_usage = 19
  150. 147 001c 7B01 movw r14,r22
  151. 148 001e FC01 movw r30,r24
  152. 149 0020 DE01 movw r26,r28
  153. 150 0022 1196 adiw r26,1
  154. 151 0024 90E0 ldi r25,0
  155. 152 0026 AD01 movw r20,r26
  156. 153 .L18:
  157. 154 0028 8F01 movw r16,r30
  158. 155 002a 2191 ld r18,Z+
  159. 156 002c 2223 tst r18
  160. 157 002e 01F0 breq .L19
  161. 158 0030 2A33 cpi r18,lo8(58)
  162. 159 0032 01F0 breq .L19
  163. 160 0034 9830 cpi r25,lo8(8)
  164. 161 0036 01F0 breq .L19
  165. 162 0038 2D93 st X+,r18
  166. 163 003a 9F5F subi r25,lo8(-(1))
  167. 164 003c 00C0 rjmp .L18
  168. 165 .L19:
  169. 166 003e FA01 movw r30,r20
  170. 167 0040 E90F add r30,r25
  171. 168 0042 F11D adc r31,__zero_reg__
  172. 169 0044 1082 st Z,__zero_reg__
  173. 170 0046 CA01 movw r24,r20
  174. 171 0048 0E94 0000 call NutDeviceLookup
  175. GAS LISTING /tmp/ccbVdVj8.s page 4
  176. 172 004c 0097 sbiw r24,0
  177. 173 004e 01F0 breq .L23
  178. 174 0050 D801 movw r26,r16
  179. 175 0052 2C91 ld r18,X
  180. 176 0054 2A33 cpi r18,lo8(58)
  181. 177 0056 01F4 brne .L22
  182. 178 0058 0F5F subi r16,-1
  183. 179 005a 1F4F sbci r17,-1
  184. 180 .L22:
  185. 181 005c 1B87 std Y+11,r17
  186. 182 005e 0A87 std Y+10,r16
  187. 183 0060 FD86 std Y+13,r15
  188. 184 0062 EC86 std Y+12,r14
  189. 185 0064 DC01 movw r26,r24
  190. 186 0066 5596 adiw r26,21
  191. 187 0068 ED91 ld r30,X+
  192. 188 006a FC91 ld r31,X
  193. 189 006c 5697 sbiw r26,21+1
  194. 190 006e AE01 movw r20,r28
  195. 191 0070 465F subi r20,-10
  196. 192 0072 5F4F sbci r21,-1
  197. 193 0074 61E0 ldi r22,lo8(1)
  198. 194 0076 71E1 ldi r23,lo8(17)
  199. 195 0078 1995 eicall
  200. 196 007a 00C0 rjmp .L21
  201. 197 .L23:
  202. 198 007c 8FEF ldi r24,lo8(-1)
  203. 199 007e 9FEF ldi r25,lo8(-1)
  204. 200 .L21:
  205. 201 /* epilogue start */
  206. 202 0080 2D96 adiw r28,13
  207. 203 0082 0FB6 in __tmp_reg__,__SREG__
  208. 204 0084 F894 cli
  209. 205 0086 DEBF out __SP_H__,r29
  210. 206 0088 0FBE out __SREG__,__tmp_reg__
  211. 207 008a CDBF out __SP_L__,r28
  212. 208 008c DF91 pop r29
  213. 209 008e CF91 pop r28
  214. 210 0090 1F91 pop r17
  215. 211 0092 0F91 pop r16
  216. 212 0094 FF90 pop r15
  217. 213 0096 EF90 pop r14
  218. 214 0098 0895 ret
  219. 215 .size stat, .-stat
  220. 216 .section .text.access,"ax",@progbits
  221. 217 .global access
  222. 218 .type access, @function
  223. 219 access:
  224. 220 0000 CF93 push r28
  225. 221 0002 DF93 push r29
  226. 222 0004 CDB7 in r28,__SP_L__
  227. 223 0006 DEB7 in r29,__SP_H__
  228. 224 0008 2D97 sbiw r28,13
  229. 225 000a 0FB6 in __tmp_reg__,__SREG__
  230. 226 000c F894 cli
  231. 227 000e DEBF out __SP_H__,r29
  232. 228 0010 0FBE out __SREG__,__tmp_reg__
  233. GAS LISTING /tmp/ccbVdVj8.s page 5
  234. 229 0012 CDBF out __SP_L__,r28
  235. 230 /* prologue: function */
  236. 231 /* frame size = 13 */
  237. 232 /* stack size = 15 */
  238. 233 .L__stack_usage = 15
  239. 234 0014 BE01 movw r22,r28
  240. 235 0016 6F5F subi r22,-1
  241. 236 0018 7F4F sbci r23,-1
  242. 237 001a 0E94 0000 call stat
  243. 238 001e 21E0 ldi r18,lo8(1)
  244. 239 0020 30E0 ldi r19,0
  245. 240 0022 892B or r24,r25
  246. 241 0024 01F4 brne .L31
  247. 242 0026 20E0 ldi r18,0
  248. 243 0028 30E0 ldi r19,0
  249. 244 .L31:
  250. 245 002a 8827 clr r24
  251. 246 002c 9927 clr r25
  252. 247 002e 821B sub r24,r18
  253. 248 0030 930B sbc r25,r19
  254. 249 /* epilogue start */
  255. 250 0032 2D96 adiw r28,13
  256. 251 0034 0FB6 in __tmp_reg__,__SREG__
  257. 252 0036 F894 cli
  258. 253 0038 DEBF out __SP_H__,r29
  259. 254 003a 0FBE out __SREG__,__tmp_reg__
  260. 255 003c CDBF out __SP_L__,r28
  261. 256 003e DF91 pop r29
  262. 257 0040 CF91 pop r28
  263. 258 0042 0895 ret
  264. 259 .size access, .-access
  265. 260 .section .text.fstat,"ax",@progbits
  266. 261 .global fstat
  267. 262 .type fstat, @function
  268. 263 fstat:
  269. 264 /* prologue: function */
  270. 265 /* frame size = 0 */
  271. 266 /* stack size = 0 */
  272. 267 .L__stack_usage = 0
  273. 268 0000 8FEF ldi r24,lo8(-1)
  274. 269 0002 9FEF ldi r25,lo8(-1)
  275. 270 0004 0895 ret
  276. 271 .size fstat, .-fstat
  277. 272 .section .text.mkdir,"ax",@progbits
  278. 273 .global mkdir
  279. 274 .type mkdir, @function
  280. 275 mkdir:
  281. 276 /* prologue: function */
  282. 277 /* frame size = 0 */
  283. 278 /* stack size = 0 */
  284. 279 .L__stack_usage = 0
  285. 280 0000 61E1 ldi r22,lo8(17)
  286. 281 0002 71E1 ldi r23,lo8(17)
  287. 282 0004 0C94 0000 jmp PathOperation
  288. 283 .size mkdir, .-mkdir
  289. 284 .section .text.rename,"ax",@progbits
  290. 285 .global rename
  291. GAS LISTING /tmp/ccbVdVj8.s page 6
  292. 286 .type rename, @function
  293. 287 rename:
  294. 288 0000 EF92 push r14
  295. 289 0002 FF92 push r15
  296. 290 0004 0F93 push r16
  297. 291 0006 1F93 push r17
  298. 292 0008 CF93 push r28
  299. 293 000a DF93 push r29
  300. 294 000c CDB7 in r28,__SP_L__
  301. 295 000e DEB7 in r29,__SP_H__
  302. 296 0010 6697 sbiw r28,22
  303. 297 0012 0FB6 in __tmp_reg__,__SREG__
  304. 298 0014 F894 cli
  305. 299 0016 DEBF out __SP_H__,r29
  306. 300 0018 0FBE out __SREG__,__tmp_reg__
  307. 301 001a CDBF out __SP_L__,r28
  308. 302 /* prologue: function */
  309. 303 /* frame size = 22 */
  310. 304 /* stack size = 28 */
  311. 305 .L__stack_usage = 28
  312. 306 001c DC01 movw r26,r24
  313. 307 001e FE01 movw r30,r28
  314. 308 0020 3A96 adiw r30,10
  315. 309 0022 20E0 ldi r18,0
  316. 310 0024 8F01 movw r16,r30
  317. 311 .L35:
  318. 312 0026 AD01 movw r20,r26
  319. 313 0028 9D91 ld r25,X+
  320. 314 002a 9923 tst r25
  321. 315 002c 01F0 breq .L36
  322. 316 002e 9A33 cpi r25,lo8(58)
  323. 317 0030 01F0 breq .L36
  324. 318 0032 2830 cpi r18,lo8(8)
  325. 319 0034 01F0 breq .L36
  326. 320 0036 9193 st Z+,r25
  327. 321 0038 2F5F subi r18,lo8(-(1))
  328. 322 003a 00C0 rjmp .L35
  329. 323 .L36:
  330. 324 003c F801 movw r30,r16
  331. 325 003e E20F add r30,r18
  332. 326 0040 F11D adc r31,__zero_reg__
  333. 327 0042 1082 st Z,__zero_reg__
  334. 328 0044 9A01 movw r18,r20
  335. 329 0046 2F5F subi r18,-1
  336. 330 0048 3F4F sbci r19,-1
  337. 331 004a 9A33 cpi r25,lo8(58)
  338. 332 004c 01F4 brne .L57
  339. 333 004e 3C8B std Y+20,r19
  340. 334 0050 2B8B std Y+19,r18
  341. 335 0052 FB01 movw r30,r22
  342. 336 0054 DE01 movw r26,r28
  343. 337 0056 1196 adiw r26,1
  344. 338 0058 20E0 ldi r18,0
  345. 339 005a 7D01 movw r14,r26
  346. 340 .L40:
  347. 341 005c AF01 movw r20,r30
  348. 342 005e 9191 ld r25,Z+
  349. GAS LISTING /tmp/ccbVdVj8.s page 7
  350. 343 0060 9923 tst r25
  351. 344 0062 01F0 breq .L41
  352. 345 0064 9A33 cpi r25,lo8(58)
  353. 346 0066 01F0 breq .L41
  354. 347 0068 2830 cpi r18,lo8(8)
  355. 348 006a 01F0 breq .L41
  356. 349 006c 9D93 st X+,r25
  357. 350 006e 2F5F subi r18,lo8(-(1))
  358. 351 0070 00C0 rjmp .L40
  359. 352 .L41:
  360. 353 0072 F701 movw r30,r14
  361. 354 0074 E20F add r30,r18
  362. 355 0076 F11D adc r31,__zero_reg__
  363. 356 0078 1082 st Z,__zero_reg__
  364. 357 007a 9A01 movw r18,r20
  365. 358 007c 2F5F subi r18,-1
  366. 359 007e 3F4F sbci r19,-1
  367. 360 0080 9A33 cpi r25,lo8(58)
  368. 361 0082 01F4 brne .L57
  369. 362 0084 3E8B std Y+22,r19
  370. 363 0086 2D8B std Y+21,r18
  371. 364 0088 B801 movw r22,r16
  372. 365 008a C701 movw r24,r14
  373. 366 008c 0E94 0000 call strcmp
  374. 367 0090 892B or r24,r25
  375. 368 0092 01F4 brne .L57
  376. 369 0094 C801 movw r24,r16
  377. 370 0096 0E94 0000 call NutDeviceLookup
  378. 371 009a 0097 sbiw r24,0
  379. 372 009c 01F4 brne .L44
  380. 373 009e 82E0 ldi r24,lo8(2)
  381. 374 00a0 90E0 ldi r25,0
  382. 375 00a2 9093 0000 sts errno+1,r25
  383. 376 00a6 8093 0000 sts errno,r24
  384. 377 .L57:
  385. 378 00aa 8FEF ldi r24,lo8(-1)
  386. 379 00ac 9FEF ldi r25,lo8(-1)
  387. 380 00ae 00C0 rjmp .L39
  388. 381 .L44:
  389. 382 00b0 DC01 movw r26,r24
  390. 383 00b2 5596 adiw r26,21
  391. 384 00b4 ED91 ld r30,X+
  392. 385 00b6 FC91 ld r31,X
  393. 386 00b8 5697 sbiw r26,21+1
  394. 387 00ba AE01 movw r20,r28
  395. 388 00bc 4D5E subi r20,-19
  396. 389 00be 5F4F sbci r21,-1
  397. 390 00c0 62E3 ldi r22,lo8(50)
  398. 391 00c2 71E1 ldi r23,lo8(17)
  399. 392 00c4 1995 eicall
  400. 393 .L39:
  401. 394 /* epilogue start */
  402. 395 00c6 6696 adiw r28,22
  403. 396 00c8 0FB6 in __tmp_reg__,__SREG__
  404. 397 00ca F894 cli
  405. 398 00cc DEBF out __SP_H__,r29
  406. 399 00ce 0FBE out __SREG__,__tmp_reg__
  407. GAS LISTING /tmp/ccbVdVj8.s page 8
  408. 400 00d0 CDBF out __SP_L__,r28
  409. 401 00d2 DF91 pop r29
  410. 402 00d4 CF91 pop r28
  411. 403 00d6 1F91 pop r17
  412. 404 00d8 0F91 pop r16
  413. 405 00da FF90 pop r15
  414. 406 00dc EF90 pop r14
  415. 407 00de 0895 ret
  416. 408 .size rename, .-rename
  417. 409 .ident "GCC: (GNU) 5.3.0"
  418. GAS LISTING /tmp/ccbVdVj8.s page 9
  419. DEFINED SYMBOLS
  420. *ABS*:0000000000000000 pathops.c
  421. /tmp/ccbVdVj8.s:2 *ABS*:000000000000003e __SP_H__
  422. /tmp/ccbVdVj8.s:3 *ABS*:000000000000003d __SP_L__
  423. /tmp/ccbVdVj8.s:4 *ABS*:000000000000003f __SREG__
  424. /tmp/ccbVdVj8.s:5 *ABS*:000000000000003b __RAMPZ__
  425. /tmp/ccbVdVj8.s:6 *ABS*:0000000000000000 __tmp_reg__
  426. /tmp/ccbVdVj8.s:7 *ABS*:0000000000000001 __zero_reg__
  427. /tmp/ccbVdVj8.s:10 .text.PathOperation:0000000000000000 PathOperation
  428. /tmp/ccbVdVj8.s:91 .text.lseek:0000000000000000 lseek
  429. /tmp/ccbVdVj8.s:104 .text.rmdir:0000000000000000 rmdir
  430. /tmp/ccbVdVj8.s:116 .text.unlink:0000000000000000 unlink
  431. /tmp/ccbVdVj8.s:128 .text.stat:0000000000000000 stat
  432. /tmp/ccbVdVj8.s:219 .text.access:0000000000000000 access
  433. /tmp/ccbVdVj8.s:263 .text.fstat:0000000000000000 fstat
  434. /tmp/ccbVdVj8.s:275 .text.mkdir:0000000000000000 mkdir
  435. /tmp/ccbVdVj8.s:287 .text.rename:0000000000000000 rename
  436. UNDEFINED SYMBOLS
  437. NutDeviceLookup
  438. errno
  439. strcmp