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