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