phat16.lst 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460
  1. GAS LISTING /tmp/ccaJcdNi.s page 1
  2. 1 .file "phat16.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.Phat16GetClusterLink,"ax",@progbits
  10. 9 .global Phat16GetClusterLink
  11. 10 .type Phat16GetClusterLink, @function
  12. 11 Phat16GetClusterLink:
  13. 12 0000 8F92 push r8
  14. 13 0002 9F92 push r9
  15. 14 0004 AF92 push r10
  16. 15 0006 BF92 push r11
  17. 16 0008 CF92 push r12
  18. 17 000a DF92 push r13
  19. 18 000c EF92 push r14
  20. 19 000e FF92 push r15
  21. 20 0010 0F93 push r16
  22. 21 0012 1F93 push r17
  23. 22 0014 CF93 push r28
  24. 23 0016 DF93 push r29
  25. 24 /* prologue: function */
  26. 25 /* frame size = 0 */
  27. 26 /* stack size = 12 */
  28. 27 .L__stack_usage = 12
  29. 28 0018 EC01 movw r28,r24
  30. 29 001a 8901 movw r16,r18
  31. 30 001c E988 ldd r14,Y+17
  32. 31 001e FA88 ldd r15,Y+18
  33. 32 0020 483F cpi r20,-8
  34. 33 0022 8FEF ldi r24,-1
  35. 34 0024 5807 cpc r21,r24
  36. 35 0026 6105 cpc r22,__zero_reg__
  37. 36 0028 7105 cpc r23,__zero_reg__
  38. 37 002a 00F0 brlo .L2
  39. 38 .L4:
  40. 39 002c 8FEF ldi r24,lo8(-1)
  41. 40 002e 9FEF ldi r25,lo8(-1)
  42. 41 0030 00C0 rjmp .L3
  43. 42 .L2:
  44. 43 0032 CB01 movw r24,r22
  45. 44 0034 BA01 movw r22,r20
  46. 45 0036 660F lsl r22
  47. 46 0038 771F rol r23
  48. 47 003a 881F rol r24
  49. 48 003c 991F rol r25
  50. 49 003e D701 movw r26,r14
  51. 50 0040 5896 adiw r26,24
  52. 51 0042 2D91 ld r18,X+
  53. 52 0044 3C91 ld r19,X
  54. 53 0046 5997 sbiw r26,24+1
  55. 54 0048 40E0 ldi r20,0
  56. 55 004a 50E0 ldi r21,0
  57. 56 004c 0E94 0000 call __udivmodsi4
  58. 57 0050 4B01 movw r8,r22
  59. GAS LISTING /tmp/ccaJcdNi.s page 2
  60. 58 0052 5C01 movw r10,r24
  61. 59 0054 F701 movw r30,r14
  62. 60 0056 80A1 ldd r24,Z+32
  63. 61 0058 91A1 ldd r25,Z+33
  64. 62 005a A2A1 ldd r26,Z+34
  65. 63 005c B3A1 ldd r27,Z+35
  66. 64 005e BA01 movw r22,r20
  67. 65 0060 A901 movw r20,r18
  68. 66 0062 480F add r20,r24
  69. 67 0064 591F adc r21,r25
  70. 68 0066 6A1F adc r22,r26
  71. 69 0068 7B1F adc r23,r27
  72. 70 006a CE01 movw r24,r28
  73. 71 006c 0E94 0000 call PhatSectorLoad
  74. 72 0070 97FD sbrc r25,7
  75. 73 0072 00C0 rjmp .L4
  76. 74 0074 AC01 movw r20,r24
  77. 75 0076 4F5F subi r20,-1
  78. 76 0078 5F4F sbci r21,-1
  79. 77 007a 6AE0 ldi r22,lo8(10)
  80. 78 007c 649F mul r22,r20
  81. 79 007e 9001 movw r18,r0
  82. 80 0080 659F mul r22,r21
  83. 81 0082 300D add r19,r0
  84. 82 0084 1124 clr __zero_reg__
  85. 83 0086 F701 movw r30,r14
  86. 84 0088 E20F add r30,r18
  87. 85 008a F31F adc r31,r19
  88. 86 008c 2081 ld r18,Z
  89. 87 008e 3181 ldd r19,Z+1
  90. 88 0090 F901 movw r30,r18
  91. 89 0092 E80D add r30,r8
  92. 90 0094 F91D adc r31,r9
  93. 91 0096 4081 ld r20,Z
  94. 92 0098 50E0 ldi r21,0
  95. 93 009a 60E0 ldi r22,0
  96. 94 009c 70E0 ldi r23,0
  97. 95 009e D801 movw r26,r16
  98. 96 00a0 4D93 st X+,r20
  99. 97 00a2 5D93 st X+,r21
  100. 98 00a4 6D93 st X+,r22
  101. 99 00a6 7C93 st X,r23
  102. 100 00a8 1397 sbiw r26,3
  103. 101 00aa C180 ldd r12,Z+1
  104. 102 00ac D12C mov r13,__zero_reg__
  105. 103 00ae E12C mov r14,__zero_reg__
  106. 104 00b0 F12C mov r15,__zero_reg__
  107. 105 00b2 FE2C mov r15,r14
  108. 106 00b4 ED2C mov r14,r13
  109. 107 00b6 DC2C mov r13,r12
  110. 108 00b8 CC24 clr r12
  111. 109 00ba 4C0D add r20,r12
  112. 110 00bc 5D1D adc r21,r13
  113. 111 00be 6E1D adc r22,r14
  114. 112 00c0 7F1D adc r23,r15
  115. 113 00c2 F801 movw r30,r16
  116. 114 00c4 4083 st Z,r20
  117. GAS LISTING /tmp/ccaJcdNi.s page 3
  118. 115 00c6 5183 std Z+1,r21
  119. 116 00c8 6283 std Z+2,r22
  120. 117 00ca 7383 std Z+3,r23
  121. 118 00cc BC01 movw r22,r24
  122. 119 00ce CE01 movw r24,r28
  123. 120 00d0 0E94 0000 call PhatSectorBufferRelease
  124. 121 00d4 80E0 ldi r24,0
  125. 122 00d6 90E0 ldi r25,0
  126. 123 .L3:
  127. 124 /* epilogue start */
  128. 125 00d8 DF91 pop r29
  129. 126 00da CF91 pop r28
  130. 127 00dc 1F91 pop r17
  131. 128 00de 0F91 pop r16
  132. 129 00e0 FF90 pop r15
  133. 130 00e2 EF90 pop r14
  134. 131 00e4 DF90 pop r13
  135. 132 00e6 CF90 pop r12
  136. 133 00e8 BF90 pop r11
  137. 134 00ea AF90 pop r10
  138. 135 00ec 9F90 pop r9
  139. 136 00ee 8F90 pop r8
  140. 137 00f0 0895 ret
  141. 138 .size Phat16GetClusterLink, .-Phat16GetClusterLink
  142. 139 .section .text.Phat16SetClusterLink,"ax",@progbits
  143. 140 .global Phat16SetClusterLink
  144. 141 .type Phat16SetClusterLink, @function
  145. 142 Phat16SetClusterLink:
  146. 143 0000 2F92 push r2
  147. 144 0002 3F92 push r3
  148. 145 0004 4F92 push r4
  149. 146 0006 5F92 push r5
  150. 147 0008 6F92 push r6
  151. 148 000a 7F92 push r7
  152. 149 000c 8F92 push r8
  153. 150 000e 9F92 push r9
  154. 151 0010 AF92 push r10
  155. 152 0012 BF92 push r11
  156. 153 0014 CF92 push r12
  157. 154 0016 DF92 push r13
  158. 155 0018 EF92 push r14
  159. 156 001a FF92 push r15
  160. 157 001c 0F93 push r16
  161. 158 001e 1F93 push r17
  162. 159 0020 CF93 push r28
  163. 160 0022 DF93 push r29
  164. 161 0024 CDB7 in r28,__SP_L__
  165. 162 0026 DEB7 in r29,__SP_H__
  166. 163 0028 2797 sbiw r28,7
  167. 164 002a 0FB6 in __tmp_reg__,__SREG__
  168. 165 002c F894 cli
  169. 166 002e DEBF out __SP_H__,r29
  170. 167 0030 0FBE out __SREG__,__tmp_reg__
  171. 168 0032 CDBF out __SP_L__,r28
  172. 169 /* prologue: function */
  173. 170 /* frame size = 7 */
  174. 171 /* stack size = 25 */
  175. GAS LISTING /tmp/ccaJcdNi.s page 4
  176. 172 .L__stack_usage = 25
  177. 173 0034 5C01 movw r10,r24
  178. 174 0036 DC01 movw r26,r24
  179. 175 0038 5196 adiw r26,17
  180. 176 003a 0D90 ld __tmp_reg__,X+
  181. 177 003c BC91 ld r27,X
  182. 178 003e A02D mov r26,__tmp_reg__
  183. 179 0040 BF83 std Y+7,r27
  184. 180 0042 AE83 std Y+6,r26
  185. 181 0044 DB01 movw r26,r22
  186. 182 0046 CA01 movw r24,r20
  187. 183 0048 880F lsl r24
  188. 184 004a 991F rol r25
  189. 185 004c AA1F rol r26
  190. 186 004e BB1F rol r27
  191. 187 0050 8A83 std Y+2,r24
  192. 188 0052 9B83 std Y+3,r25
  193. 189 0054 AC83 std Y+4,r26
  194. 190 0056 BD83 std Y+5,r27
  195. 191 0058 1983 std Y+1,r17
  196. 192 005a 8E80 ldd r8,Y+6
  197. 193 005c 9F80 ldd r9,Y+7
  198. 194 005e 90E2 ldi r25,32
  199. 195 0060 890E add r8,r25
  200. 196 0062 911C adc r9,__zero_reg__
  201. 197 0064 2E80 ldd r2,Y+6
  202. 198 0066 3F80 ldd r3,Y+7
  203. 199 0068 A8E2 ldi r26,40
  204. 200 006a 2A0E add r2,r26
  205. 201 006c 311C adc r3,__zero_reg__
  206. 202 006e 1AE0 ldi r17,lo8(10)
  207. 203 .L7:
  208. 204 0070 F401 movw r30,r8
  209. 205 0072 4190 ld r4,Z+
  210. 206 0074 5190 ld r5,Z+
  211. 207 0076 6190 ld r6,Z+
  212. 208 0078 7190 ld r7,Z+
  213. 209 007a 4F01 movw r8,r30
  214. 210 007c 4114 cp r4,__zero_reg__
  215. 211 007e 5104 cpc r5,__zero_reg__
  216. 212 0080 6104 cpc r6,__zero_reg__
  217. 213 0082 7104 cpc r7,__zero_reg__
  218. 214 0084 01F0 breq .L10
  219. 215 0086 EE81 ldd r30,Y+6
  220. 216 0088 FF81 ldd r31,Y+7
  221. 217 008a 208D ldd r18,Z+24
  222. 218 008c 318D ldd r19,Z+25
  223. 219 008e 40E0 ldi r20,0
  224. 220 0090 50E0 ldi r21,0
  225. 221 0092 6A81 ldd r22,Y+2
  226. 222 0094 7B81 ldd r23,Y+3
  227. 223 0096 8C81 ldd r24,Y+4
  228. 224 0098 9D81 ldd r25,Y+5
  229. 225 009a 0E94 0000 call __udivmodsi4
  230. 226 009e 6B01 movw r12,r22
  231. 227 00a0 7C01 movw r14,r24
  232. 228 00a2 BA01 movw r22,r20
  233. GAS LISTING /tmp/ccaJcdNi.s page 5
  234. 229 00a4 A901 movw r20,r18
  235. 230 00a6 440D add r20,r4
  236. 231 00a8 551D adc r21,r5
  237. 232 00aa 661D adc r22,r6
  238. 233 00ac 771D adc r23,r7
  239. 234 00ae C501 movw r24,r10
  240. 235 00b0 0E94 0000 call PhatSectorLoad
  241. 236 00b4 97FD sbrc r25,7
  242. 237 00b6 00C0 rjmp .L11
  243. 238 00b8 189F mul r17,r24
  244. 239 00ba F001 movw r30,r0
  245. 240 00bc 199F mul r17,r25
  246. 241 00be F00D add r31,r0
  247. 242 00c0 1124 clr __zero_reg__
  248. 243 00c2 2E81 ldd r18,Y+6
  249. 244 00c4 3F81 ldd r19,Y+7
  250. 245 00c6 E20F add r30,r18
  251. 246 00c8 F31F adc r31,r19
  252. 247 00ca A285 ldd r26,Z+10
  253. 248 00cc B385 ldd r27,Z+11
  254. 249 00ce AC0D add r26,r12
  255. 250 00d0 BD1D adc r27,r13
  256. 251 00d2 0C93 st X,r16
  257. 252 00d4 2285 ldd r18,Z+10
  258. 253 00d6 3385 ldd r19,Z+11
  259. 254 00d8 C20E add r12,r18
  260. 255 00da D31E adc r13,r19
  261. 256 00dc 2981 ldd r18,Y+1
  262. 257 00de D601 movw r26,r12
  263. 258 00e0 1196 adiw r26,1
  264. 259 00e2 2C93 st X,r18
  265. 260 00e4 A1E0 ldi r26,lo8(1)
  266. 261 00e6 B0E0 ldi r27,0
  267. 262 00e8 B18B std Z+17,r27
  268. 263 00ea A08B std Z+16,r26
  269. 264 00ec BC01 movw r22,r24
  270. 265 00ee C501 movw r24,r10
  271. 266 00f0 0E94 0000 call PhatSectorBufferRelease
  272. 267 00f4 8214 cp r8,r2
  273. 268 00f6 9304 cpc r9,r3
  274. 269 00f8 01F0 breq .+2
  275. 270 00fa 00C0 rjmp .L7
  276. 271 .L10:
  277. 272 00fc 80E0 ldi r24,0
  278. 273 00fe 90E0 ldi r25,0
  279. 274 0100 00C0 rjmp .L8
  280. 275 .L11:
  281. 276 0102 8FEF ldi r24,lo8(-1)
  282. 277 0104 9FEF ldi r25,lo8(-1)
  283. 278 .L8:
  284. 279 /* epilogue start */
  285. 280 0106 2796 adiw r28,7
  286. 281 0108 0FB6 in __tmp_reg__,__SREG__
  287. 282 010a F894 cli
  288. 283 010c DEBF out __SP_H__,r29
  289. 284 010e 0FBE out __SREG__,__tmp_reg__
  290. 285 0110 CDBF out __SP_L__,r28
  291. GAS LISTING /tmp/ccaJcdNi.s page 6
  292. 286 0112 DF91 pop r29
  293. 287 0114 CF91 pop r28
  294. 288 0116 1F91 pop r17
  295. 289 0118 0F91 pop r16
  296. 290 011a FF90 pop r15
  297. 291 011c EF90 pop r14
  298. 292 011e DF90 pop r13
  299. 293 0120 CF90 pop r12
  300. 294 0122 BF90 pop r11
  301. 295 0124 AF90 pop r10
  302. 296 0126 9F90 pop r9
  303. 297 0128 8F90 pop r8
  304. 298 012a 7F90 pop r7
  305. 299 012c 6F90 pop r6
  306. 300 012e 5F90 pop r5
  307. 301 0130 4F90 pop r4
  308. 302 0132 3F90 pop r3
  309. 303 0134 2F90 pop r2
  310. 304 0136 0895 ret
  311. 305 .size Phat16SetClusterLink, .-Phat16SetClusterLink
  312. 306 .section .text.Phat16ReleaseChain,"ax",@progbits
  313. 307 .global Phat16ReleaseChain
  314. 308 .type Phat16ReleaseChain, @function
  315. 309 Phat16ReleaseChain:
  316. 310 0000 8F92 push r8
  317. 311 0002 9F92 push r9
  318. 312 0004 AF92 push r10
  319. 313 0006 BF92 push r11
  320. 314 0008 CF92 push r12
  321. 315 000a DF92 push r13
  322. 316 000c EF92 push r14
  323. 317 000e FF92 push r15
  324. 318 0010 0F93 push r16
  325. 319 0012 1F93 push r17
  326. 320 0014 CF93 push r28
  327. 321 0016 DF93 push r29
  328. 322 0018 00D0 rcall .
  329. 323 001a 1F92 push __zero_reg__
  330. 324 001c CDB7 in r28,__SP_L__
  331. 325 001e DEB7 in r29,__SP_H__
  332. 326 /* prologue: function */
  333. 327 /* frame size = 4 */
  334. 328 /* stack size = 16 */
  335. 329 .L__stack_usage = 16
  336. 330 0020 5C01 movw r10,r24
  337. 331 0022 6A01 movw r12,r20
  338. 332 0024 7B01 movw r14,r22
  339. 333 0026 FC01 movw r30,r24
  340. 334 0028 8188 ldd r8,Z+17
  341. 335 002a 9288 ldd r9,Z+18
  342. 336 .L14:
  343. 337 002c F8EF ldi r31,-8
  344. 338 002e CF16 cp r12,r31
  345. 339 0030 FFEF ldi r31,-1
  346. 340 0032 DF06 cpc r13,r31
  347. 341 0034 E104 cpc r14,__zero_reg__
  348. 342 0036 F104 cpc r15,__zero_reg__
  349. GAS LISTING /tmp/ccaJcdNi.s page 7
  350. 343 0038 00F4 brsh .L20
  351. 344 003a 9E01 movw r18,r28
  352. 345 003c 2F5F subi r18,-1
  353. 346 003e 3F4F sbci r19,-1
  354. 347 0040 B701 movw r22,r14
  355. 348 0042 A601 movw r20,r12
  356. 349 0044 C501 movw r24,r10
  357. 350 0046 0E94 0000 call Phat16GetClusterLink
  358. 351 004a 892B or r24,r25
  359. 352 004c 01F0 breq .L15
  360. 353 .L18:
  361. 354 004e 8FEF ldi r24,lo8(-1)
  362. 355 0050 9FEF ldi r25,lo8(-1)
  363. 356 0052 00C0 rjmp .L16
  364. 357 .L15:
  365. 358 0054 8981 ldd r24,Y+1
  366. 359 0056 9A81 ldd r25,Y+2
  367. 360 0058 AB81 ldd r26,Y+3
  368. 361 005a BC81 ldd r27,Y+4
  369. 362 005c 0297 sbiw r24,2
  370. 363 005e A105 cpc r26,__zero_reg__
  371. 364 0060 B105 cpc r27,__zero_reg__
  372. 365 0062 00F4 brsh .L17
  373. 366 .L20:
  374. 367 0064 80E0 ldi r24,0
  375. 368 0066 90E0 ldi r25,0
  376. 369 0068 00C0 rjmp .L16
  377. 370 .L17:
  378. 371 006a 00E0 ldi r16,0
  379. 372 006c 10E0 ldi r17,0
  380. 373 006e 9801 movw r18,r16
  381. 374 0070 B701 movw r22,r14
  382. 375 0072 A601 movw r20,r12
  383. 376 0074 C501 movw r24,r10
  384. 377 0076 0E94 0000 call Phat16SetClusterLink
  385. 378 007a 892B or r24,r25
  386. 379 007c 01F4 brne .L18
  387. 380 007e F401 movw r30,r8
  388. 381 0080 8281 ldd r24,Z+2
  389. 382 0082 9381 ldd r25,Z+3
  390. 383 0084 A481 ldd r26,Z+4
  391. 384 0086 B581 ldd r27,Z+5
  392. 385 0088 0196 adiw r24,1
  393. 386 008a A11D adc r26,__zero_reg__
  394. 387 008c B11D adc r27,__zero_reg__
  395. 388 008e 8283 std Z+2,r24
  396. 389 0090 9383 std Z+3,r25
  397. 390 0092 A483 std Z+4,r26
  398. 391 0094 B583 std Z+5,r27
  399. 392 0096 C980 ldd r12,Y+1
  400. 393 0098 DA80 ldd r13,Y+2
  401. 394 009a EB80 ldd r14,Y+3
  402. 395 009c FC80 ldd r15,Y+4
  403. 396 009e 00C0 rjmp .L14
  404. 397 .L16:
  405. 398 /* epilogue start */
  406. 399 00a0 0F90 pop __tmp_reg__
  407. GAS LISTING /tmp/ccaJcdNi.s page 8
  408. 400 00a2 0F90 pop __tmp_reg__
  409. 401 00a4 0F90 pop __tmp_reg__
  410. 402 00a6 0F90 pop __tmp_reg__
  411. 403 00a8 DF91 pop r29
  412. 404 00aa CF91 pop r28
  413. 405 00ac 1F91 pop r17
  414. 406 00ae 0F91 pop r16
  415. 407 00b0 FF90 pop r15
  416. 408 00b2 EF90 pop r14
  417. 409 00b4 DF90 pop r13
  418. 410 00b6 CF90 pop r12
  419. 411 00b8 BF90 pop r11
  420. 412 00ba AF90 pop r10
  421. 413 00bc 9F90 pop r9
  422. 414 00be 8F90 pop r8
  423. 415 00c0 0895 ret
  424. 416 .size Phat16ReleaseChain, .-Phat16ReleaseChain
  425. 417 .ident "GCC: (GNU) 5.3.0"
  426. GAS LISTING /tmp/ccaJcdNi.s page 9
  427. DEFINED SYMBOLS
  428. *ABS*:0000000000000000 phat16.c
  429. /tmp/ccaJcdNi.s:2 *ABS*:000000000000003e __SP_H__
  430. /tmp/ccaJcdNi.s:3 *ABS*:000000000000003d __SP_L__
  431. /tmp/ccaJcdNi.s:4 *ABS*:000000000000003f __SREG__
  432. /tmp/ccaJcdNi.s:5 *ABS*:000000000000003b __RAMPZ__
  433. /tmp/ccaJcdNi.s:6 *ABS*:0000000000000000 __tmp_reg__
  434. /tmp/ccaJcdNi.s:7 *ABS*:0000000000000001 __zero_reg__
  435. /tmp/ccaJcdNi.s:11 .text.Phat16GetClusterLink:0000000000000000 Phat16GetClusterLink
  436. /tmp/ccaJcdNi.s:142 .text.Phat16SetClusterLink:0000000000000000 Phat16SetClusterLink
  437. /tmp/ccaJcdNi.s:309 .text.Phat16ReleaseChain:0000000000000000 Phat16ReleaseChain
  438. UNDEFINED SYMBOLS
  439. __udivmodsi4
  440. PhatSectorLoad
  441. PhatSectorBufferRelease