phat12.lst 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862
  1. GAS LISTING /tmp/ccf3xz9l.s page 1
  2. 1 .file "phat12.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.Phat12GetClusterLink,"ax",@progbits
  10. 9 .global Phat12GetClusterLink
  11. 10 .type Phat12GetClusterLink, @function
  12. 11 Phat12GetClusterLink:
  13. 12 0000 2F92 push r2
  14. 13 0002 3F92 push r3
  15. 14 0004 4F92 push r4
  16. 15 0006 5F92 push r5
  17. 16 0008 6F92 push r6
  18. 17 000a 7F92 push r7
  19. 18 000c 8F92 push r8
  20. 19 000e 9F92 push r9
  21. 20 0010 AF92 push r10
  22. 21 0012 BF92 push r11
  23. 22 0014 CF92 push r12
  24. 23 0016 DF92 push r13
  25. 24 0018 EF92 push r14
  26. 25 001a FF92 push r15
  27. 26 001c 0F93 push r16
  28. 27 001e 1F93 push r17
  29. 28 0020 CF93 push r28
  30. 29 0022 DF93 push r29
  31. 30 /* prologue: function */
  32. 31 /* frame size = 0 */
  33. 32 /* stack size = 18 */
  34. 33 .L__stack_usage = 18
  35. 34 0024 8C01 movw r16,r24
  36. 35 0026 6A01 movw r12,r20
  37. 36 0028 7B01 movw r14,r22
  38. 37 002a E901 movw r28,r18
  39. 38 002c FC01 movw r30,r24
  40. 39 002e 2188 ldd r2,Z+17
  41. 40 0030 3288 ldd r3,Z+18
  42. 41 0032 483F cpi r20,-8
  43. 42 0034 FFE0 ldi r31,15
  44. 43 0036 5F07 cpc r21,r31
  45. 44 0038 6105 cpc r22,__zero_reg__
  46. 45 003a 7105 cpc r23,__zero_reg__
  47. 46 003c 00F0 brlo .L2
  48. 47 .L4:
  49. 48 003e 8FEF ldi r24,lo8(-1)
  50. 49 0040 9FEF ldi r25,lo8(-1)
  51. 50 0042 00C0 rjmp .L3
  52. 51 .L2:
  53. 52 0044 DB01 movw r26,r22
  54. 53 0046 CA01 movw r24,r20
  55. 54 0048 B695 lsr r27
  56. 55 004a A795 ror r26
  57. 56 004c 9795 ror r25
  58. 57 004e 8795 ror r24
  59. GAS LISTING /tmp/ccf3xz9l.s page 2
  60. 58 0050 BC01 movw r22,r24
  61. 59 0052 CD01 movw r24,r26
  62. 60 0054 6C0D add r22,r12
  63. 61 0056 7D1D adc r23,r13
  64. 62 0058 8E1D adc r24,r14
  65. 63 005a 9F1D adc r25,r15
  66. 64 005c F101 movw r30,r2
  67. 65 005e 208D ldd r18,Z+24
  68. 66 0060 318D ldd r19,Z+25
  69. 67 0062 40E0 ldi r20,0
  70. 68 0064 50E0 ldi r21,0
  71. 69 0066 0E94 0000 call __udivmodsi4
  72. 70 006a 4B01 movw r8,r22
  73. 71 006c 5C01 movw r10,r24
  74. 72 006e F101 movw r30,r2
  75. 73 0070 80A1 ldd r24,Z+32
  76. 74 0072 91A1 ldd r25,Z+33
  77. 75 0074 A2A1 ldd r26,Z+34
  78. 76 0076 B3A1 ldd r27,Z+35
  79. 77 0078 2901 movw r4,r18
  80. 78 007a 3A01 movw r6,r20
  81. 79 007c 480E add r4,r24
  82. 80 007e 591E adc r5,r25
  83. 81 0080 6A1E adc r6,r26
  84. 82 0082 7B1E adc r7,r27
  85. 83 0084 B301 movw r22,r6
  86. 84 0086 A201 movw r20,r4
  87. 85 0088 C801 movw r24,r16
  88. 86 008a 0E94 0000 call PhatSectorLoad
  89. 87 008e 97FD sbrc r25,7
  90. 88 0090 00C0 rjmp .L4
  91. 89 0092 B501 movw r22,r10
  92. 90 0094 A401 movw r20,r8
  93. 91 0096 4F5F subi r20,-1
  94. 92 0098 5F4F sbci r21,-1
  95. 93 009a 6F4F sbci r22,-1
  96. 94 009c 7F4F sbci r23,-1
  97. 95 009e 9C01 movw r18,r24
  98. 96 00a0 2F5F subi r18,-1
  99. 97 00a2 3F4F sbci r19,-1
  100. 98 00a4 AAE0 ldi r26,lo8(10)
  101. 99 00a6 A29F mul r26,r18
  102. 100 00a8 F001 movw r30,r0
  103. 101 00aa A39F mul r26,r19
  104. 102 00ac F00D add r31,r0
  105. 103 00ae 1124 clr __zero_reg__
  106. 104 00b0 E20D add r30,r2
  107. 105 00b2 F31D adc r31,r3
  108. 106 00b4 2081 ld r18,Z
  109. 107 00b6 3181 ldd r19,Z+1
  110. 108 00b8 F901 movw r30,r18
  111. 109 00ba E80D add r30,r8
  112. 110 00bc F91D adc r31,r9
  113. 111 00be 8080 ld r8,Z
  114. 112 00c0 912C mov r9,__zero_reg__
  115. 113 00c2 A12C mov r10,__zero_reg__
  116. 114 00c4 B12C mov r11,__zero_reg__
  117. GAS LISTING /tmp/ccf3xz9l.s page 3
  118. 115 00c6 8882 st Y,r8
  119. 116 00c8 9982 std Y+1,r9
  120. 117 00ca AA82 std Y+2,r10
  121. 118 00cc BB82 std Y+3,r11
  122. 119 00ce F101 movw r30,r2
  123. 120 00d0 208D ldd r18,Z+24
  124. 121 00d2 318D ldd r19,Z+25
  125. 122 00d4 4901 movw r8,r18
  126. 123 00d6 A12C mov r10,__zero_reg__
  127. 124 00d8 B12C mov r11,__zero_reg__
  128. 125 00da 4815 cp r20,r8
  129. 126 00dc 5905 cpc r21,r9
  130. 127 00de 6A05 cpc r22,r10
  131. 128 00e0 7B05 cpc r23,r11
  132. 129 00e2 00F0 brlo .L5
  133. 130 00e4 BC01 movw r22,r24
  134. 131 00e6 C801 movw r24,r16
  135. 132 00e8 0E94 0000 call PhatSectorBufferRelease
  136. 133 00ec B301 movw r22,r6
  137. 134 00ee A201 movw r20,r4
  138. 135 00f0 4F5F subi r20,-1
  139. 136 00f2 5F4F sbci r21,-1
  140. 137 00f4 6F4F sbci r22,-1
  141. 138 00f6 7F4F sbci r23,-1
  142. 139 00f8 C801 movw r24,r16
  143. 140 00fa 0E94 0000 call PhatSectorLoad
  144. 141 00fe 97FD sbrc r25,7
  145. 142 0100 00C0 rjmp .L4
  146. 143 0102 40E0 ldi r20,0
  147. 144 0104 50E0 ldi r21,0
  148. 145 0106 BA01 movw r22,r20
  149. 146 .L5:
  150. 147 0108 FC01 movw r30,r24
  151. 148 010a 3196 adiw r30,1
  152. 149 010c AAE0 ldi r26,lo8(10)
  153. 150 010e AE9F mul r26,r30
  154. 151 0110 9001 movw r18,r0
  155. 152 0112 AF9F mul r26,r31
  156. 153 0114 300D add r19,r0
  157. 154 0116 1124 clr __zero_reg__
  158. 155 0118 F101 movw r30,r2
  159. 156 011a E20F add r30,r18
  160. 157 011c F31F adc r31,r19
  161. 158 011e 2081 ld r18,Z
  162. 159 0120 3181 ldd r19,Z+1
  163. 160 0122 F901 movw r30,r18
  164. 161 0124 E40F add r30,r20
  165. 162 0126 F51F adc r31,r21
  166. 163 0128 4081 ld r20,Z
  167. 164 012a 50E0 ldi r21,0
  168. 165 012c 60E0 ldi r22,0
  169. 166 012e 70E0 ldi r23,0
  170. 167 0130 762F mov r23,r22
  171. 168 0132 652F mov r22,r21
  172. 169 0134 542F mov r21,r20
  173. 170 0136 4427 clr r20
  174. 171 0138 8880 ld r8,Y
  175. GAS LISTING /tmp/ccf3xz9l.s page 4
  176. 172 013a 9980 ldd r9,Y+1
  177. 173 013c AA80 ldd r10,Y+2
  178. 174 013e BB80 ldd r11,Y+3
  179. 175 0140 480D add r20,r8
  180. 176 0142 591D adc r21,r9
  181. 177 0144 6A1D adc r22,r10
  182. 178 0146 7B1D adc r23,r11
  183. 179 0148 4883 st Y,r20
  184. 180 014a 5983 std Y+1,r21
  185. 181 014c 6A83 std Y+2,r22
  186. 182 014e 7B83 std Y+3,r23
  187. 183 0150 BC01 movw r22,r24
  188. 184 0152 C801 movw r24,r16
  189. 185 0154 0E94 0000 call PhatSectorBufferRelease
  190. 186 0158 C0FE sbrs r12,0
  191. 187 015a 00C0 rjmp .L6
  192. 188 015c 8881 ld r24,Y
  193. 189 015e 9981 ldd r25,Y+1
  194. 190 0160 AA81 ldd r26,Y+2
  195. 191 0162 BB81 ldd r27,Y+3
  196. 192 0164 24E0 ldi r18,4
  197. 193 1:
  198. 194 0166 B695 lsr r27
  199. 195 0168 A795 ror r26
  200. 196 016a 9795 ror r25
  201. 197 016c 8795 ror r24
  202. 198 016e 2A95 dec r18
  203. 199 0170 01F4 brne 1b
  204. 200 0172 8883 st Y,r24
  205. 201 0174 9983 std Y+1,r25
  206. 202 0176 AA83 std Y+2,r26
  207. 203 0178 BB83 std Y+3,r27
  208. 204 .L6:
  209. 205 017a 8881 ld r24,Y
  210. 206 017c 9981 ldd r25,Y+1
  211. 207 017e AA81 ldd r26,Y+2
  212. 208 0180 BB81 ldd r27,Y+3
  213. 209 0182 9F70 andi r25,15
  214. 210 0184 AA27 clr r26
  215. 211 0186 BB27 clr r27
  216. 212 0188 8883 st Y,r24
  217. 213 018a 9983 std Y+1,r25
  218. 214 018c AA83 std Y+2,r26
  219. 215 018e BB83 std Y+3,r27
  220. 216 0190 80E0 ldi r24,0
  221. 217 0192 90E0 ldi r25,0
  222. 218 .L3:
  223. 219 /* epilogue start */
  224. 220 0194 DF91 pop r29
  225. 221 0196 CF91 pop r28
  226. 222 0198 1F91 pop r17
  227. 223 019a 0F91 pop r16
  228. 224 019c FF90 pop r15
  229. 225 019e EF90 pop r14
  230. 226 01a0 DF90 pop r13
  231. 227 01a2 CF90 pop r12
  232. 228 01a4 BF90 pop r11
  233. GAS LISTING /tmp/ccf3xz9l.s page 5
  234. 229 01a6 AF90 pop r10
  235. 230 01a8 9F90 pop r9
  236. 231 01aa 8F90 pop r8
  237. 232 01ac 7F90 pop r7
  238. 233 01ae 6F90 pop r6
  239. 234 01b0 5F90 pop r5
  240. 235 01b2 4F90 pop r4
  241. 236 01b4 3F90 pop r3
  242. 237 01b6 2F90 pop r2
  243. 238 01b8 0895 ret
  244. 239 .size Phat12GetClusterLink, .-Phat12GetClusterLink
  245. 240 .section .text.Phat12SetClusterLink,"ax",@progbits
  246. 241 .global Phat12SetClusterLink
  247. 242 .type Phat12SetClusterLink, @function
  248. 243 Phat12SetClusterLink:
  249. 244 0000 2F92 push r2
  250. 245 0002 3F92 push r3
  251. 246 0004 4F92 push r4
  252. 247 0006 5F92 push r5
  253. 248 0008 6F92 push r6
  254. 249 000a 7F92 push r7
  255. 250 000c 8F92 push r8
  256. 251 000e 9F92 push r9
  257. 252 0010 AF92 push r10
  258. 253 0012 BF92 push r11
  259. 254 0014 CF92 push r12
  260. 255 0016 DF92 push r13
  261. 256 0018 EF92 push r14
  262. 257 001a FF92 push r15
  263. 258 001c 0F93 push r16
  264. 259 001e 1F93 push r17
  265. 260 0020 CF93 push r28
  266. 261 0022 DF93 push r29
  267. 262 0024 CDB7 in r28,__SP_L__
  268. 263 0026 DEB7 in r29,__SP_H__
  269. 264 0028 6C97 sbiw r28,28
  270. 265 002a 0FB6 in __tmp_reg__,__SREG__
  271. 266 002c F894 cli
  272. 267 002e DEBF out __SP_H__,r29
  273. 268 0030 0FBE out __SREG__,__tmp_reg__
  274. 269 0032 CDBF out __SP_L__,r28
  275. 270 /* prologue: function */
  276. 271 /* frame size = 28 */
  277. 272 /* stack size = 46 */
  278. 273 .L__stack_usage = 46
  279. 274 0034 1C01 movw r2,r24
  280. 275 0036 2801 movw r4,r16
  281. 276 0038 3901 movw r6,r18
  282. 277 003a DC01 movw r26,r24
  283. 278 003c 5196 adiw r26,17
  284. 279 003e 0D90 ld __tmp_reg__,X+
  285. 280 0040 BC91 ld r27,X
  286. 281 0042 A02D mov r26,__tmp_reg__
  287. 282 0044 BA8F std Y+26,r27
  288. 283 0046 A98F std Y+25,r26
  289. 284 0048 DB01 movw r26,r22
  290. 285 004a CA01 movw r24,r20
  291. GAS LISTING /tmp/ccf3xz9l.s page 6
  292. 286 004c B695 lsr r27
  293. 287 004e A795 ror r26
  294. 288 0050 9795 ror r25
  295. 289 0052 8795 ror r24
  296. 290 0054 8C01 movw r16,r24
  297. 291 0056 9D01 movw r18,r26
  298. 292 0058 040F add r16,r20
  299. 293 005a 151F adc r17,r21
  300. 294 005c 261F adc r18,r22
  301. 295 005e 371F adc r19,r23
  302. 296 0060 098B std Y+17,r16
  303. 297 0062 1A8B std Y+18,r17
  304. 298 0064 2B8B std Y+19,r18
  305. 299 0066 3C8B std Y+20,r19
  306. 300 0068 098D ldd r16,Y+25
  307. 301 006a 1A8D ldd r17,Y+26
  308. 302 006c 005E subi r16,-32
  309. 303 006e 1F4F sbci r17,-1
  310. 304 0070 1E83 std Y+6,r17
  311. 305 0072 0D83 std Y+5,r16
  312. 306 0074 098D ldd r16,Y+25
  313. 307 0076 1A8D ldd r17,Y+26
  314. 308 0078 085D subi r16,-40
  315. 309 007a 1F4F sbci r17,-1
  316. 310 007c 188B std Y+16,r17
  317. 311 007e 0F87 std Y+15,r16
  318. 312 0080 DB01 movw r26,r22
  319. 313 0082 CA01 movw r24,r20
  320. 314 0084 8170 andi r24,1
  321. 315 0086 9927 clr r25
  322. 316 0088 AA27 clr r26
  323. 317 008a BB27 clr r27
  324. 318 008c 8D8B std Y+21,r24
  325. 319 008e 9E8B std Y+22,r25
  326. 320 0090 AF8B std Y+23,r26
  327. 321 0092 B88F std Y+24,r27
  328. 322 .L12:
  329. 323 0094 AD81 ldd r26,Y+5
  330. 324 0096 BE81 ldd r27,Y+6
  331. 325 0098 CD90 ld r12,X+
  332. 326 009a DD90 ld r13,X+
  333. 327 009c ED90 ld r14,X+
  334. 328 009e FD90 ld r15,X+
  335. 329 00a0 BE83 std Y+6,r27
  336. 330 00a2 AD83 std Y+5,r26
  337. 331 00a4 C114 cp r12,__zero_reg__
  338. 332 00a6 D104 cpc r13,__zero_reg__
  339. 333 00a8 E104 cpc r14,__zero_reg__
  340. 334 00aa F104 cpc r15,__zero_reg__
  341. 335 00ac 01F4 brne .+2
  342. 336 00ae 00C0 rjmp .L23
  343. 337 00b0 A98D ldd r26,Y+25
  344. 338 00b2 BA8D ldd r27,Y+26
  345. 339 00b4 5896 adiw r26,24
  346. 340 00b6 2D91 ld r18,X+
  347. 341 00b8 3C91 ld r19,X
  348. 342 00ba 5997 sbiw r26,24+1
  349. GAS LISTING /tmp/ccf3xz9l.s page 7
  350. 343 00bc 40E0 ldi r20,0
  351. 344 00be 50E0 ldi r21,0
  352. 345 00c0 6989 ldd r22,Y+17
  353. 346 00c2 7A89 ldd r23,Y+18
  354. 347 00c4 8B89 ldd r24,Y+19
  355. 348 00c6 9C89 ldd r25,Y+20
  356. 349 00c8 0E94 0000 call __udivmodsi4
  357. 350 00cc 4B01 movw r8,r22
  358. 351 00ce 5C01 movw r10,r24
  359. 352 00d0 C20E add r12,r18
  360. 353 00d2 D31E adc r13,r19
  361. 354 00d4 E41E adc r14,r20
  362. 355 00d6 F51E adc r15,r21
  363. 356 00d8 B701 movw r22,r14
  364. 357 00da A601 movw r20,r12
  365. 358 00dc C101 movw r24,r2
  366. 359 00de 0E94 0000 call PhatSectorLoad
  367. 360 00e2 DC01 movw r26,r24
  368. 361 00e4 97FF sbrs r25,7
  369. 362 00e6 00C0 rjmp .L13
  370. 363 .L17:
  371. 364 00e8 8FEF ldi r24,lo8(-1)
  372. 365 00ea 9FEF ldi r25,lo8(-1)
  373. 366 00ec 00C0 rjmp .L14
  374. 367 .L13:
  375. 368 00ee 9C01 movw r18,r24
  376. 369 00f0 2F5F subi r18,-1
  377. 370 00f2 3F4F sbci r19,-1
  378. 371 00f4 EAE0 ldi r30,lo8(10)
  379. 372 00f6 E29F mul r30,r18
  380. 373 00f8 C001 movw r24,r0
  381. 374 00fa E39F mul r30,r19
  382. 375 00fc 900D add r25,r0
  383. 376 00fe 1124 clr __zero_reg__
  384. 377 0100 E98D ldd r30,Y+25
  385. 378 0102 FA8D ldd r31,Y+26
  386. 379 0104 E80F add r30,r24
  387. 380 0106 F91F adc r31,r25
  388. 381 0108 0190 ld __tmp_reg__,Z+
  389. 382 010a F081 ld r31,Z
  390. 383 010c E02D mov r30,__tmp_reg__
  391. 384 010e 8F01 movw r16,r30
  392. 385 0110 080D add r16,r8
  393. 386 0112 191D adc r17,r9
  394. 387 0114 1C87 std Y+12,r17
  395. 388 0116 0B87 std Y+11,r16
  396. 389 0118 F801 movw r30,r16
  397. 390 011a 8081 ld r24,Z
  398. 391 011c 282F mov r18,r24
  399. 392 011e 30E0 ldi r19,0
  400. 393 0120 40E0 ldi r20,0
  401. 394 0122 50E0 ldi r21,0
  402. 395 0124 2983 std Y+1,r18
  403. 396 0126 3A83 std Y+2,r19
  404. 397 0128 4B83 std Y+3,r20
  405. 398 012a 5C83 std Y+4,r21
  406. 399 012c A501 movw r20,r10
  407. GAS LISTING /tmp/ccf3xz9l.s page 8
  408. 400 012e 9401 movw r18,r8
  409. 401 0130 2F5F subi r18,-1
  410. 402 0132 3F4F sbci r19,-1
  411. 403 0134 4F4F sbci r20,-1
  412. 404 0136 5F4F sbci r21,-1
  413. 405 0138 2F83 std Y+7,r18
  414. 406 013a 3887 std Y+8,r19
  415. 407 013c 4987 std Y+9,r20
  416. 408 013e 5A87 std Y+10,r21
  417. 409 0140 E98D ldd r30,Y+25
  418. 410 0142 FA8D ldd r31,Y+26
  419. 411 0144 408D ldd r20,Z+24
  420. 412 0146 518D ldd r21,Z+25
  421. 413 0148 60E0 ldi r22,0
  422. 414 014a 70E0 ldi r23,0
  423. 415 014c 0F81 ldd r16,Y+7
  424. 416 014e 1885 ldd r17,Y+8
  425. 417 0150 2985 ldd r18,Y+9
  426. 418 0152 3A85 ldd r19,Y+10
  427. 419 0154 0417 cp r16,r20
  428. 420 0156 1507 cpc r17,r21
  429. 421 0158 2607 cpc r18,r22
  430. 422 015a 3707 cpc r19,r23
  431. 423 015c 00F4 brsh .L15
  432. 424 015e EB85 ldd r30,Y+11
  433. 425 0160 FC85 ldd r31,Y+12
  434. 426 0162 4181 ldd r20,Z+1
  435. 427 0164 00C0 rjmp .L25
  436. 428 .L15:
  437. 429 0166 BD01 movw r22,r26
  438. 430 0168 C101 movw r24,r2
  439. 431 016a 0E94 0000 call PhatSectorBufferRelease
  440. 432 016e B701 movw r22,r14
  441. 433 0170 A601 movw r20,r12
  442. 434 0172 4F5F subi r20,-1
  443. 435 0174 5F4F sbci r21,-1
  444. 436 0176 6F4F sbci r22,-1
  445. 437 0178 7F4F sbci r23,-1
  446. 438 017a C101 movw r24,r2
  447. 439 017c 0E94 0000 call PhatSectorLoad
  448. 440 0180 DC01 movw r26,r24
  449. 441 0182 97FD sbrc r25,7
  450. 442 0184 00C0 rjmp .L17
  451. 443 0186 9C01 movw r18,r24
  452. 444 0188 2F5F subi r18,-1
  453. 445 018a 3F4F sbci r19,-1
  454. 446 018c 1AE0 ldi r17,lo8(10)
  455. 447 018e 129F mul r17,r18
  456. 448 0190 C001 movw r24,r0
  457. 449 0192 139F mul r17,r19
  458. 450 0194 900D add r25,r0
  459. 451 0196 1124 clr __zero_reg__
  460. 452 0198 E98D ldd r30,Y+25
  461. 453 019a FA8D ldd r31,Y+26
  462. 454 019c E80F add r30,r24
  463. 455 019e F91F adc r31,r25
  464. 456 01a0 0190 ld __tmp_reg__,Z+
  465. GAS LISTING /tmp/ccf3xz9l.s page 9
  466. 457 01a2 F081 ld r31,Z
  467. 458 01a4 E02D mov r30,__tmp_reg__
  468. 459 01a6 4081 ld r20,Z
  469. 460 .L25:
  470. 461 01a8 50E0 ldi r21,0
  471. 462 01aa 60E0 ldi r22,0
  472. 463 01ac 70E0 ldi r23,0
  473. 464 01ae 762F mov r23,r22
  474. 465 01b0 652F mov r22,r21
  475. 466 01b2 542F mov r21,r20
  476. 467 01b4 4427 clr r20
  477. 468 01b6 0981 ldd r16,Y+1
  478. 469 01b8 1A81 ldd r17,Y+2
  479. 470 01ba 2B81 ldd r18,Y+3
  480. 471 01bc 3C81 ldd r19,Y+4
  481. 472 01be 400F add r20,r16
  482. 473 01c0 511F adc r21,r17
  483. 474 01c2 621F adc r22,r18
  484. 475 01c4 731F adc r23,r19
  485. 476 01c6 1FE0 ldi r17,15
  486. 477 01c8 5122 and r5,r17
  487. 478 01ca 6624 clr r6
  488. 479 01cc 7724 clr r7
  489. 480 01ce 0D89 ldd r16,Y+21
  490. 481 01d0 1E89 ldd r17,Y+22
  491. 482 01d2 2F89 ldd r18,Y+23
  492. 483 01d4 388D ldd r19,Y+24
  493. 484 01d6 012B or r16,r17
  494. 485 01d8 022B or r16,r18
  495. 486 01da 032B or r16,r19
  496. 487 01dc 01F0 breq .L18
  497. 488 01de 4F70 andi r20,15
  498. 489 01e0 5527 clr r21
  499. 490 01e2 6627 clr r22
  500. 491 01e4 7727 clr r23
  501. 492 01e6 94E0 ldi r25,4
  502. 493 1:
  503. 494 01e8 440C lsl r4
  504. 495 01ea 551C rol r5
  505. 496 01ec 661C rol r6
  506. 497 01ee 771C rol r7
  507. 498 01f0 9A95 dec r25
  508. 499 01f2 01F4 brne 1b
  509. 500 01f4 00C0 rjmp .L19
  510. 501 .L18:
  511. 502 01f6 4427 clr r20
  512. 503 01f8 507F andi r21,240
  513. 504 01fa 6627 clr r22
  514. 505 01fc 7727 clr r23
  515. 506 .L19:
  516. 507 01fe 9301 movw r18,r6
  517. 508 0200 8201 movw r16,r4
  518. 509 0202 042B or r16,r20
  519. 510 0204 152B or r17,r21
  520. 511 0206 262B or r18,r22
  521. 512 0208 372B or r19,r23
  522. 513 020a 0983 std Y+1,r16
  523. GAS LISTING /tmp/ccf3xz9l.s page 10
  524. 514 020c 1A83 std Y+2,r17
  525. 515 020e 2B83 std Y+3,r18
  526. 516 0210 3C83 std Y+4,r19
  527. 517 0212 E98D ldd r30,Y+25
  528. 518 0214 FA8D ldd r31,Y+26
  529. 519 0216 808D ldd r24,Z+24
  530. 520 0218 918D ldd r25,Z+25
  531. 521 021a AC01 movw r20,r24
  532. 522 021c 60E0 ldi r22,0
  533. 523 021e 70E0 ldi r23,0
  534. 524 0220 8D01 movw r16,r26
  535. 525 0222 0F5F subi r16,-1
  536. 526 0224 1F4F sbci r17,-1
  537. 527 0226 1C8F std Y+28,r17
  538. 528 0228 0B8F std Y+27,r16
  539. 529 022a 0981 ldd r16,Y+1
  540. 530 022c 1A81 ldd r17,Y+2
  541. 531 022e 2B81 ldd r18,Y+3
  542. 532 0230 3C81 ldd r19,Y+4
  543. 533 0232 012F mov r16,r17
  544. 534 0234 122F mov r17,r18
  545. 535 0236 232F mov r18,r19
  546. 536 0238 3327 clr r19
  547. 537 023a 0B87 std Y+11,r16
  548. 538 023c 1C87 std Y+12,r17
  549. 539 023e 2D87 std Y+13,r18
  550. 540 0240 3E87 std Y+14,r19
  551. 541 0242 0F81 ldd r16,Y+7
  552. 542 0244 1885 ldd r17,Y+8
  553. 543 0246 2985 ldd r18,Y+9
  554. 544 0248 3A85 ldd r19,Y+10
  555. 545 024a 0417 cp r16,r20
  556. 546 024c 1507 cpc r17,r21
  557. 547 024e 2607 cpc r18,r22
  558. 548 0250 3707 cpc r19,r23
  559. 549 0252 00F4 brsh .L20
  560. 550 0254 4AE0 ldi r20,lo8(10)
  561. 551 0256 2B8D ldd r18,Y+27
  562. 552 0258 3C8D ldd r19,Y+28
  563. 553 025a 429F mul r20,r18
  564. 554 025c C001 movw r24,r0
  565. 555 025e 439F mul r20,r19
  566. 556 0260 900D add r25,r0
  567. 557 0262 1124 clr __zero_reg__
  568. 558 0264 E80F add r30,r24
  569. 559 0266 F91F adc r31,r25
  570. 560 0268 0190 ld __tmp_reg__,Z+
  571. 561 026a F081 ld r31,Z
  572. 562 026c E02D mov r30,__tmp_reg__
  573. 563 026e 9F01 movw r18,r30
  574. 564 0270 280D add r18,r8
  575. 565 0272 391D adc r19,r9
  576. 566 0274 0B85 ldd r16,Y+11
  577. 567 0276 F901 movw r30,r18
  578. 568 0278 0183 std Z+1,r16
  579. 569 027a 00C0 rjmp .L21
  580. 570 .L20:
  581. GAS LISTING /tmp/ccf3xz9l.s page 11
  582. 571 027c 4AE0 ldi r20,lo8(10)
  583. 572 027e 2B8D ldd r18,Y+27
  584. 573 0280 3C8D ldd r19,Y+28
  585. 574 0282 429F mul r20,r18
  586. 575 0284 F001 movw r30,r0
  587. 576 0286 439F mul r20,r19
  588. 577 0288 F00D add r31,r0
  589. 578 028a 1124 clr __zero_reg__
  590. 579 028c 098D ldd r16,Y+25
  591. 580 028e 1A8D ldd r17,Y+26
  592. 581 0290 E00F add r30,r16
  593. 582 0292 F11F adc r31,r17
  594. 583 0294 2081 ld r18,Z
  595. 584 0296 3181 ldd r19,Z+1
  596. 585 0298 0B85 ldd r16,Y+11
  597. 586 029a F901 movw r30,r18
  598. 587 029c 0083 st Z,r16
  599. 588 029e 4A9F mul r20,r26
  600. 589 02a0 F001 movw r30,r0
  601. 590 02a2 4B9F mul r20,r27
  602. 591 02a4 F00D add r31,r0
  603. 592 02a6 1124 clr __zero_reg__
  604. 593 02a8 098D ldd r16,Y+25
  605. 594 02aa 1A8D ldd r17,Y+26
  606. 595 02ac E00F add r30,r16
  607. 596 02ae F11F adc r31,r17
  608. 597 02b0 21E0 ldi r18,lo8(1)
  609. 598 02b2 30E0 ldi r19,0
  610. 599 02b4 318B std Z+17,r19
  611. 600 02b6 208B std Z+16,r18
  612. 601 02b8 BD01 movw r22,r26
  613. 602 02ba C101 movw r24,r2
  614. 603 02bc 0E94 0000 call PhatSectorBufferRelease
  615. 604 02c0 B701 movw r22,r14
  616. 605 02c2 A601 movw r20,r12
  617. 606 02c4 C101 movw r24,r2
  618. 607 02c6 0E94 0000 call PhatSectorLoad
  619. 608 02ca DC01 movw r26,r24
  620. 609 02cc 97FD sbrc r25,7
  621. 610 02ce 00C0 rjmp .L17
  622. 611 .L21:
  623. 612 02d0 9D01 movw r18,r26
  624. 613 02d2 2F5F subi r18,-1
  625. 614 02d4 3F4F sbci r19,-1
  626. 615 02d6 4AE0 ldi r20,lo8(10)
  627. 616 02d8 429F mul r20,r18
  628. 617 02da C001 movw r24,r0
  629. 618 02dc 439F mul r20,r19
  630. 619 02de 900D add r25,r0
  631. 620 02e0 1124 clr __zero_reg__
  632. 621 02e2 E98D ldd r30,Y+25
  633. 622 02e4 FA8D ldd r31,Y+26
  634. 623 02e6 E80F add r30,r24
  635. 624 02e8 F91F adc r31,r25
  636. 625 02ea 8081 ld r24,Z
  637. 626 02ec 9181 ldd r25,Z+1
  638. 627 02ee 880E add r8,r24
  639. GAS LISTING /tmp/ccf3xz9l.s page 12
  640. 628 02f0 991E adc r9,r25
  641. 629 02f2 0981 ldd r16,Y+1
  642. 630 02f4 F401 movw r30,r8
  643. 631 02f6 0083 st Z,r16
  644. 632 02f8 4A9F mul r20,r26
  645. 633 02fa F001 movw r30,r0
  646. 634 02fc 4B9F mul r20,r27
  647. 635 02fe F00D add r31,r0
  648. 636 0300 1124 clr __zero_reg__
  649. 637 0302 098D ldd r16,Y+25
  650. 638 0304 1A8D ldd r17,Y+26
  651. 639 0306 E00F add r30,r16
  652. 640 0308 F11F adc r31,r17
  653. 641 030a 21E0 ldi r18,lo8(1)
  654. 642 030c 30E0 ldi r19,0
  655. 643 030e 318B std Z+17,r19
  656. 644 0310 208B std Z+16,r18
  657. 645 0312 BD01 movw r22,r26
  658. 646 0314 C101 movw r24,r2
  659. 647 0316 0E94 0000 call PhatSectorBufferRelease
  660. 648 031a 0D81 ldd r16,Y+5
  661. 649 031c 1E81 ldd r17,Y+6
  662. 650 031e 2F85 ldd r18,Y+15
  663. 651 0320 3889 ldd r19,Y+16
  664. 652 0322 0217 cp r16,r18
  665. 653 0324 1307 cpc r17,r19
  666. 654 0326 01F0 breq .+2
  667. 655 0328 00C0 rjmp .L12
  668. 656 .L23:
  669. 657 032a 80E0 ldi r24,0
  670. 658 032c 90E0 ldi r25,0
  671. 659 .L14:
  672. 660 /* epilogue start */
  673. 661 032e 6C96 adiw r28,28
  674. 662 0330 0FB6 in __tmp_reg__,__SREG__
  675. 663 0332 F894 cli
  676. 664 0334 DEBF out __SP_H__,r29
  677. 665 0336 0FBE out __SREG__,__tmp_reg__
  678. 666 0338 CDBF out __SP_L__,r28
  679. 667 033a DF91 pop r29
  680. 668 033c CF91 pop r28
  681. 669 033e 1F91 pop r17
  682. 670 0340 0F91 pop r16
  683. 671 0342 FF90 pop r15
  684. 672 0344 EF90 pop r14
  685. 673 0346 DF90 pop r13
  686. 674 0348 CF90 pop r12
  687. 675 034a BF90 pop r11
  688. 676 034c AF90 pop r10
  689. 677 034e 9F90 pop r9
  690. 678 0350 8F90 pop r8
  691. 679 0352 7F90 pop r7
  692. 680 0354 6F90 pop r6
  693. 681 0356 5F90 pop r5
  694. 682 0358 4F90 pop r4
  695. 683 035a 3F90 pop r3
  696. 684 035c 2F90 pop r2
  697. GAS LISTING /tmp/ccf3xz9l.s page 13
  698. 685 035e 0895 ret
  699. 686 .size Phat12SetClusterLink, .-Phat12SetClusterLink
  700. 687 .section .text.Phat12ReleaseChain,"ax",@progbits
  701. 688 .global Phat12ReleaseChain
  702. 689 .type Phat12ReleaseChain, @function
  703. 690 Phat12ReleaseChain:
  704. 691 0000 8F92 push r8
  705. 692 0002 9F92 push r9
  706. 693 0004 AF92 push r10
  707. 694 0006 BF92 push r11
  708. 695 0008 CF92 push r12
  709. 696 000a DF92 push r13
  710. 697 000c EF92 push r14
  711. 698 000e FF92 push r15
  712. 699 0010 0F93 push r16
  713. 700 0012 1F93 push r17
  714. 701 0014 CF93 push r28
  715. 702 0016 DF93 push r29
  716. 703 0018 00D0 rcall .
  717. 704 001a 1F92 push __zero_reg__
  718. 705 001c CDB7 in r28,__SP_L__
  719. 706 001e DEB7 in r29,__SP_H__
  720. 707 /* prologue: function */
  721. 708 /* frame size = 4 */
  722. 709 /* stack size = 16 */
  723. 710 .L__stack_usage = 16
  724. 711 0020 5C01 movw r10,r24
  725. 712 0022 6A01 movw r12,r20
  726. 713 0024 7B01 movw r14,r22
  727. 714 0026 FC01 movw r30,r24
  728. 715 0028 8188 ldd r8,Z+17
  729. 716 002a 9288 ldd r9,Z+18
  730. 717 .L27:
  731. 718 002c F8EF ldi r31,-8
  732. 719 002e CF16 cp r12,r31
  733. 720 0030 FFE0 ldi r31,15
  734. 721 0032 DF06 cpc r13,r31
  735. 722 0034 E104 cpc r14,__zero_reg__
  736. 723 0036 F104 cpc r15,__zero_reg__
  737. 724 0038 00F4 brsh .L33
  738. 725 003a 9E01 movw r18,r28
  739. 726 003c 2F5F subi r18,-1
  740. 727 003e 3F4F sbci r19,-1
  741. 728 0040 B701 movw r22,r14
  742. 729 0042 A601 movw r20,r12
  743. 730 0044 C501 movw r24,r10
  744. 731 0046 0E94 0000 call Phat12GetClusterLink
  745. 732 004a 892B or r24,r25
  746. 733 004c 01F0 breq .L28
  747. 734 .L31:
  748. 735 004e 8FEF ldi r24,lo8(-1)
  749. 736 0050 9FEF ldi r25,lo8(-1)
  750. 737 0052 00C0 rjmp .L29
  751. 738 .L28:
  752. 739 0054 8981 ldd r24,Y+1
  753. 740 0056 9A81 ldd r25,Y+2
  754. 741 0058 AB81 ldd r26,Y+3
  755. GAS LISTING /tmp/ccf3xz9l.s page 14
  756. 742 005a BC81 ldd r27,Y+4
  757. 743 005c 0297 sbiw r24,2
  758. 744 005e A105 cpc r26,__zero_reg__
  759. 745 0060 B105 cpc r27,__zero_reg__
  760. 746 0062 00F4 brsh .L30
  761. 747 .L33:
  762. 748 0064 80E0 ldi r24,0
  763. 749 0066 90E0 ldi r25,0
  764. 750 0068 00C0 rjmp .L29
  765. 751 .L30:
  766. 752 006a 00E0 ldi r16,0
  767. 753 006c 10E0 ldi r17,0
  768. 754 006e 9801 movw r18,r16
  769. 755 0070 B701 movw r22,r14
  770. 756 0072 A601 movw r20,r12
  771. 757 0074 C501 movw r24,r10
  772. 758 0076 0E94 0000 call Phat12SetClusterLink
  773. 759 007a 892B or r24,r25
  774. 760 007c 01F4 brne .L31
  775. 761 007e F401 movw r30,r8
  776. 762 0080 8281 ldd r24,Z+2
  777. 763 0082 9381 ldd r25,Z+3
  778. 764 0084 A481 ldd r26,Z+4
  779. 765 0086 B581 ldd r27,Z+5
  780. 766 0088 0196 adiw r24,1
  781. 767 008a A11D adc r26,__zero_reg__
  782. 768 008c B11D adc r27,__zero_reg__
  783. 769 008e 8283 std Z+2,r24
  784. 770 0090 9383 std Z+3,r25
  785. 771 0092 A483 std Z+4,r26
  786. 772 0094 B583 std Z+5,r27
  787. 773 0096 C980 ldd r12,Y+1
  788. 774 0098 DA80 ldd r13,Y+2
  789. 775 009a EB80 ldd r14,Y+3
  790. 776 009c FC80 ldd r15,Y+4
  791. 777 009e 00C0 rjmp .L27
  792. 778 .L29:
  793. 779 /* epilogue start */
  794. 780 00a0 0F90 pop __tmp_reg__
  795. 781 00a2 0F90 pop __tmp_reg__
  796. 782 00a4 0F90 pop __tmp_reg__
  797. 783 00a6 0F90 pop __tmp_reg__
  798. 784 00a8 DF91 pop r29
  799. 785 00aa CF91 pop r28
  800. 786 00ac 1F91 pop r17
  801. 787 00ae 0F91 pop r16
  802. 788 00b0 FF90 pop r15
  803. 789 00b2 EF90 pop r14
  804. 790 00b4 DF90 pop r13
  805. 791 00b6 CF90 pop r12
  806. 792 00b8 BF90 pop r11
  807. 793 00ba AF90 pop r10
  808. 794 00bc 9F90 pop r9
  809. 795 00be 8F90 pop r8
  810. 796 00c0 0895 ret
  811. 797 .size Phat12ReleaseChain, .-Phat12ReleaseChain
  812. 798 .ident "GCC: (GNU) 5.3.0"
  813. GAS LISTING /tmp/ccf3xz9l.s page 15
  814. GAS LISTING /tmp/ccf3xz9l.s page 16
  815. DEFINED SYMBOLS
  816. *ABS*:0000000000000000 phat12.c
  817. /tmp/ccf3xz9l.s:2 *ABS*:000000000000003e __SP_H__
  818. /tmp/ccf3xz9l.s:3 *ABS*:000000000000003d __SP_L__
  819. /tmp/ccf3xz9l.s:4 *ABS*:000000000000003f __SREG__
  820. /tmp/ccf3xz9l.s:5 *ABS*:000000000000003b __RAMPZ__
  821. /tmp/ccf3xz9l.s:6 *ABS*:0000000000000000 __tmp_reg__
  822. /tmp/ccf3xz9l.s:7 *ABS*:0000000000000001 __zero_reg__
  823. /tmp/ccf3xz9l.s:11 .text.Phat12GetClusterLink:0000000000000000 Phat12GetClusterLink
  824. /tmp/ccf3xz9l.s:243 .text.Phat12SetClusterLink:0000000000000000 Phat12SetClusterLink
  825. /tmp/ccf3xz9l.s:690 .text.Phat12ReleaseChain:0000000000000000 Phat12ReleaseChain
  826. UNDEFINED SYMBOLS
  827. __udivmodsi4
  828. PhatSectorLoad
  829. PhatSectorBufferRelease