| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441 |
- GAS LISTING /tmp/ccTIJMRp.s page 1
- 1 .file "at24c.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.At24cRead,"ax",@progbits
- 9 .global At24cRead
- 10 .type At24cRead, @function
- 11 At24cRead:
- 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 0024 CDB7 in r28,__SP_L__
- 31 0026 DEB7 in r29,__SP_H__
- 32 0028 2A97 sbiw r28,10
- 33 002a 0FB6 in __tmp_reg__,__SREG__
- 34 002c F894 cli
- 35 002e DEBF out __SP_H__,r29
- 36 0030 0FBE out __SREG__,__tmp_reg__
- 37 0032 CDBF out __SP_L__,r28
- 38 /* prologue: function */
- 39 /* frame size = 10 */
- 40 /* stack size = 28 */
- 41 .L__stack_usage = 28
- 42 0034 9A87 std Y+10,r25
- 43 0036 8987 std Y+9,r24
- 44 0038 7887 std Y+8,r23
- 45 003a 6F83 std Y+7,r22
- 46 003c 1A01 movw r2,r20
- 47 003e 2901 movw r4,r18
- 48 0040 0896 adiw r24,8
- 49 0042 9A83 std Y+2,r25
- 50 0044 8983 std Y+1,r24
- 51 0046 A985 ldd r26,Y+9
- 52 0048 BA85 ldd r27,Y+10
- 53 004a 1296 adiw r26,2
- 54 004c 6C91 ld r22,X
- 55 004e 70E0 ldi r23,0
- 56 0050 CA01 movw r24,r20
- 57 0052 0E94 0000 call __udivmodhi4
- GAS LISTING /tmp/ccTIJMRp.s page 2
- 58 0056 E985 ldd r30,Y+9
- 59 0058 FA85 ldd r31,Y+10
- 60 005a 8781 ldd r24,Z+7
- 61 005c 869F mul r24,r22
- 62 005e A001 movw r20,r0
- 63 0060 879F mul r24,r23
- 64 0062 500D add r21,r0
- 65 0064 1124 clr __zero_reg__
- 66 0066 60E0 ldi r22,0
- 67 0068 70E0 ldi r23,0
- 68 006a 8981 ldd r24,Y+1
- 69 006c 9A81 ldd r25,Y+2
- 70 006e 0E94 0000 call NutEventWait
- 71 0072 0097 sbiw r24,0
- 72 0074 01F0 breq .+2
- 73 0076 00C0 rjmp .L2
- 74 0078 A985 ldd r26,Y+9
- 75 007a BA85 ldd r27,Y+10
- 76 007c 1796 adiw r26,7
- 77 007e 1C91 ld r17,X
- 78 0080 1797 sbiw r26,7
- 79 0082 129D mul r17,r2
- 80 0084 C001 movw r24,r0
- 81 0086 139D mul r17,r3
- 82 0088 900D add r25,r0
- 83 008a 1124 clr __zero_reg__
- 84 008c 1296 adiw r26,2
- 85 008e 6C91 ld r22,X
- 86 0090 70E0 ldi r23,0
- 87 0092 0E94 0000 call __udivmodhi4
- 88 0096 CB01 movw r24,r22
- 89 0098 A0E0 ldi r26,0
- 90 009a B0E0 ldi r27,0
- 91 009c 8B83 std Y+3,r24
- 92 009e 9C83 std Y+4,r25
- 93 00a0 AD83 std Y+5,r26
- 94 00a2 BE83 std Y+6,r27
- 95 00a4 612C mov r6,__zero_reg__
- 96 00a6 712C mov r7,__zero_reg__
- 97 .L4:
- 98 00a8 8B80 ldd r8,Y+3
- 99 00aa 9C80 ldd r9,Y+4
- 100 00ac AD80 ldd r10,Y+5
- 101 00ae BE80 ldd r11,Y+6
- 102 00b0 6101 movw r12,r2
- 103 00b2 EF80 ldd r14,Y+7
- 104 00b4 F884 ldd r15,Y+8
- 105 00b6 A985 ldd r26,Y+9
- 106 00b8 BA85 ldd r27,Y+10
- 107 00ba 1196 adiw r26,1
- 108 00bc 0C91 ld r16,X
- 109 00be 1197 sbiw r26,1
- 110 00c0 A301 movw r20,r6
- 111 00c2 9201 movw r18,r4
- 112 00c4 6C91 ld r22,X
- 113 00c6 80E0 ldi r24,lo8(AVRTwiBus)
- 114 00c8 90E0 ldi r25,hi8(AVRTwiBus)
- GAS LISTING /tmp/ccTIJMRp.s page 3
- 115 00ca 0E94 0000 call NutTwiMasterRegRead
- 116 00ce 1816 cp __zero_reg__,r24
- 117 00d0 1906 cpc __zero_reg__,r25
- 118 00d2 04F0 brlt .L7
- 119 00d4 1150 subi r17,lo8(-(-1))
- 120 00d6 61E0 ldi r22,lo8(1)
- 121 00d8 70E0 ldi r23,0
- 122 00da 80E0 ldi r24,0
- 123 00dc 90E0 ldi r25,0
- 124 00de 0E94 0000 call NutSleep
- 125 00e2 1111 cpse r17,__zero_reg__
- 126 00e4 00C0 rjmp .L4
- 127 00e6 0FEF ldi r16,lo8(-1)
- 128 00e8 1FEF ldi r17,lo8(-1)
- 129 00ea 00C0 rjmp .L3
- 130 .L7:
- 131 00ec 8C01 movw r16,r24
- 132 .L3:
- 133 00ee 8981 ldd r24,Y+1
- 134 00f0 9A81 ldd r25,Y+2
- 135 00f2 0E94 0000 call NutEventPost
- 136 00f6 81E0 ldi r24,lo8(1)
- 137 00f8 90E0 ldi r25,0
- 138 00fa 0F3F cpi r16,-1
- 139 00fc 1F4F sbci r17,-1
- 140 00fe 01F0 breq .L5
- 141 0100 80E0 ldi r24,0
- 142 0102 90E0 ldi r25,0
- 143 .L5:
- 144 0104 9195 neg r25
- 145 0106 8195 neg r24
- 146 0108 9109 sbc r25,__zero_reg__
- 147 .L2:
- 148 /* epilogue start */
- 149 010a 2A96 adiw r28,10
- 150 010c 0FB6 in __tmp_reg__,__SREG__
- 151 010e F894 cli
- 152 0110 DEBF out __SP_H__,r29
- 153 0112 0FBE out __SREG__,__tmp_reg__
- 154 0114 CDBF out __SP_L__,r28
- 155 0116 DF91 pop r29
- 156 0118 CF91 pop r28
- 157 011a 1F91 pop r17
- 158 011c 0F91 pop r16
- 159 011e FF90 pop r15
- 160 0120 EF90 pop r14
- 161 0122 DF90 pop r13
- 162 0124 CF90 pop r12
- 163 0126 BF90 pop r11
- 164 0128 AF90 pop r10
- 165 012a 9F90 pop r9
- 166 012c 8F90 pop r8
- 167 012e 7F90 pop r7
- 168 0130 6F90 pop r6
- 169 0132 5F90 pop r5
- 170 0134 4F90 pop r4
- 171 0136 3F90 pop r3
- GAS LISTING /tmp/ccTIJMRp.s page 4
- 172 0138 2F90 pop r2
- 173 013a 0895 ret
- 174 .size At24cRead, .-At24cRead
- 175 .section .text.At24cWrite,"ax",@progbits
- 176 .global At24cWrite
- 177 .type At24cWrite, @function
- 178 At24cWrite:
- 179 0000 2F92 push r2
- 180 0002 3F92 push r3
- 181 0004 4F92 push r4
- 182 0006 5F92 push r5
- 183 0008 6F92 push r6
- 184 000a 7F92 push r7
- 185 000c 8F92 push r8
- 186 000e 9F92 push r9
- 187 0010 AF92 push r10
- 188 0012 BF92 push r11
- 189 0014 CF92 push r12
- 190 0016 DF92 push r13
- 191 0018 EF92 push r14
- 192 001a FF92 push r15
- 193 001c 0F93 push r16
- 194 001e 1F93 push r17
- 195 0020 CF93 push r28
- 196 0022 DF93 push r29
- 197 0024 CDB7 in r28,__SP_L__
- 198 0026 DEB7 in r29,__SP_H__
- 199 0028 2E97 sbiw r28,14
- 200 002a 0FB6 in __tmp_reg__,__SREG__
- 201 002c F894 cli
- 202 002e DEBF out __SP_H__,r29
- 203 0030 0FBE out __SREG__,__tmp_reg__
- 204 0032 CDBF out __SP_L__,r28
- 205 /* prologue: function */
- 206 /* frame size = 14 */
- 207 /* stack size = 32 */
- 208 .L__stack_usage = 32
- 209 0034 9E87 std Y+14,r25
- 210 0036 8D87 std Y+13,r24
- 211 0038 7E83 std Y+6,r23
- 212 003a 6D83 std Y+5,r22
- 213 003c 1A01 movw r2,r20
- 214 003e 3C83 std Y+4,r19
- 215 0040 2B83 std Y+3,r18
- 216 0042 0896 adiw r24,8
- 217 0044 9887 std Y+8,r25
- 218 0046 8F83 std Y+7,r24
- 219 0048 AD85 ldd r26,Y+13
- 220 004a BE85 ldd r27,Y+14
- 221 004c 1296 adiw r26,2
- 222 004e 6C91 ld r22,X
- 223 0050 70E0 ldi r23,0
- 224 0052 CA01 movw r24,r20
- 225 0054 0E94 0000 call __udivmodhi4
- 226 0058 ED85 ldd r30,Y+13
- 227 005a FE85 ldd r31,Y+14
- 228 005c 8781 ldd r24,Z+7
- GAS LISTING /tmp/ccTIJMRp.s page 5
- 229 005e 869F mul r24,r22
- 230 0060 A001 movw r20,r0
- 231 0062 879F mul r24,r23
- 232 0064 500D add r21,r0
- 233 0066 1124 clr __zero_reg__
- 234 0068 60E0 ldi r22,0
- 235 006a 70E0 ldi r23,0
- 236 006c 8F81 ldd r24,Y+7
- 237 006e 9885 ldd r25,Y+8
- 238 0070 0E94 0000 call NutEventWait
- 239 0074 7C01 movw r14,r24
- 240 0076 892B or r24,r25
- 241 0078 01F0 breq .+2
- 242 007a 00C0 rjmp .L22
- 243 007c 412C mov r4,__zero_reg__
- 244 007e 512C mov r5,__zero_reg__
- 245 0080 3201 movw r6,r4
- 246 .L15:
- 247 0082 2114 cp r2,__zero_reg__
- 248 0084 3104 cpc r3,__zero_reg__
- 249 0086 01F4 brne .+2
- 250 0088 00C0 rjmp .L26
- 251 008a AD85 ldd r26,Y+13
- 252 008c BE85 ldd r27,Y+14
- 253 008e 1296 adiw r26,2
- 254 0090 2C91 ld r18,X
- 255 0092 30E0 ldi r19,0
- 256 0094 8B81 ldd r24,Y+3
- 257 0096 9C81 ldd r25,Y+4
- 258 0098 B901 movw r22,r18
- 259 009a 0E94 0000 call __udivmodhi4
- 260 009e F901 movw r30,r18
- 261 00a0 E81B sub r30,r24
- 262 00a2 F90B sbc r31,r25
- 263 00a4 CF01 movw r24,r30
- 264 00a6 A101 movw r20,r2
- 265 00a8 60E0 ldi r22,0
- 266 00aa 70E0 ldi r23,0
- 267 00ac A0E0 ldi r26,0
- 268 00ae B0E0 ldi r27,0
- 269 00b0 4817 cp r20,r24
- 270 00b2 5907 cpc r21,r25
- 271 00b4 6A07 cpc r22,r26
- 272 00b6 7B07 cpc r23,r27
- 273 00b8 00F4 brsh .L16
- 274 00ba DB01 movw r26,r22
- 275 00bc CA01 movw r24,r20
- 276 .L16:
- 277 00be 9A83 std Y+2,r25
- 278 00c0 8983 std Y+1,r24
- 279 00c2 AD85 ldd r26,Y+13
- 280 00c4 BE85 ldd r27,Y+14
- 281 00c6 1796 adiw r26,7
- 282 00c8 1C91 ld r17,X
- 283 00ca 4B81 ldd r20,Y+3
- 284 00cc 5C81 ldd r21,Y+4
- 285 00ce 9A01 movw r18,r20
- GAS LISTING /tmp/ccTIJMRp.s page 6
- 286 00d0 40E0 ldi r20,0
- 287 00d2 50E0 ldi r21,0
- 288 00d4 2987 std Y+9,r18
- 289 00d6 3A87 std Y+10,r19
- 290 00d8 4B87 std Y+11,r20
- 291 00da 5C87 std Y+12,r21
- 292 .L18:
- 293 00dc AD85 ldd r26,Y+13
- 294 00de BE85 ldd r27,Y+14
- 295 00e0 1796 adiw r26,7
- 296 00e2 8C90 ld r8,X
- 297 00e4 1797 sbiw r26,7
- 298 00e6 912C mov r9,__zero_reg__
- 299 00e8 A12C mov r10,__zero_reg__
- 300 00ea B12C mov r11,__zero_reg__
- 301 00ec C980 ldd r12,Y+1
- 302 00ee DA80 ldd r13,Y+2
- 303 00f0 ED80 ldd r14,Y+5
- 304 00f2 FE80 ldd r15,Y+6
- 305 00f4 1196 adiw r26,1
- 306 00f6 0C91 ld r16,X
- 307 00f8 1197 sbiw r26,1
- 308 00fa 2985 ldd r18,Y+9
- 309 00fc 3A85 ldd r19,Y+10
- 310 00fe 4B85 ldd r20,Y+11
- 311 0100 5C85 ldd r21,Y+12
- 312 0102 6C91 ld r22,X
- 313 0104 80E0 ldi r24,lo8(AVRTwiBus)
- 314 0106 90E0 ldi r25,hi8(AVRTwiBus)
- 315 0108 0E94 0000 call NutTwiMasterRegWrite
- 316 010c 7C01 movw r14,r24
- 317 010e 1816 cp __zero_reg__,r24
- 318 0110 1906 cpc __zero_reg__,r25
- 319 0112 04F0 brlt .L17
- 320 0114 1150 subi r17,lo8(-(-1))
- 321 0116 61E0 ldi r22,lo8(1)
- 322 0118 70E0 ldi r23,0
- 323 011a 80E0 ldi r24,0
- 324 011c 90E0 ldi r25,0
- 325 011e 0E94 0000 call NutSleep
- 326 0122 1111 cpse r17,__zero_reg__
- 327 0124 00C0 rjmp .L18
- 328 0126 8EEF ldi r24,lo8(-2)
- 329 0128 E82E mov r14,r24
- 330 012a FF24 clr r15
- 331 012c FA94 dec r15
- 332 012e 00C0 rjmp .L19
- 333 .L26:
- 334 0130 E114 cp r14,__zero_reg__
- 335 0132 F104 cpc r15,__zero_reg__
- 336 0134 01F0 breq .L19
- 337 0136 7201 movw r14,r4
- 338 .L19:
- 339 0138 8F81 ldd r24,Y+7
- 340 013a 9885 ldd r25,Y+8
- 341 013c 0E94 0000 call NutEventPost
- 342 0140 00C0 rjmp .L22
- GAS LISTING /tmp/ccTIJMRp.s page 7
- 343 .L17:
- 344 0142 092E mov __tmp_reg__,r25
- 345 0144 000C lsl r0
- 346 0146 AA0B sbc r26,r26
- 347 0148 BB0B sbc r27,r27
- 348 014a 480E add r4,r24
- 349 014c 591E adc r5,r25
- 350 014e 6A1E adc r6,r26
- 351 0150 7B1E adc r7,r27
- 352 0152 ED81 ldd r30,Y+5
- 353 0154 FE81 ldd r31,Y+6
- 354 0156 2981 ldd r18,Y+1
- 355 0158 3A81 ldd r19,Y+2
- 356 015a E20F add r30,r18
- 357 015c F31F adc r31,r19
- 358 015e FE83 std Y+6,r31
- 359 0160 ED83 std Y+5,r30
- 360 0162 4B81 ldd r20,Y+3
- 361 0164 5C81 ldd r21,Y+4
- 362 0166 420F add r20,r18
- 363 0168 531F adc r21,r19
- 364 016a 5C83 std Y+4,r21
- 365 016c 4B83 std Y+3,r20
- 366 016e 221A sub r2,r18
- 367 0170 330A sbc r3,r19
- 368 0172 00C0 rjmp .L15
- 369 .L22:
- 370 0174 C701 movw r24,r14
- 371 /* epilogue start */
- 372 0176 2E96 adiw r28,14
- 373 0178 0FB6 in __tmp_reg__,__SREG__
- 374 017a F894 cli
- 375 017c DEBF out __SP_H__,r29
- 376 017e 0FBE out __SREG__,__tmp_reg__
- 377 0180 CDBF out __SP_L__,r28
- 378 0182 DF91 pop r29
- 379 0184 CF91 pop r28
- 380 0186 1F91 pop r17
- 381 0188 0F91 pop r16
- 382 018a FF90 pop r15
- 383 018c EF90 pop r14
- 384 018e DF90 pop r13
- 385 0190 CF90 pop r12
- 386 0192 BF90 pop r11
- 387 0194 AF90 pop r10
- 388 0196 9F90 pop r9
- 389 0198 8F90 pop r8
- 390 019a 7F90 pop r7
- 391 019c 6F90 pop r6
- 392 019e 5F90 pop r5
- 393 01a0 4F90 pop r4
- 394 01a2 3F90 pop r3
- 395 01a4 2F90 pop r2
- 396 01a6 0895 ret
- 397 .size At24cWrite, .-At24cWrite
- 398 .ident "GCC: (GNU) 5.3.0"
- GAS LISTING /tmp/ccTIJMRp.s page 8
- DEFINED SYMBOLS
- *ABS*:0000000000000000 at24c.c
- /tmp/ccTIJMRp.s:2 *ABS*:000000000000003e __SP_H__
- /tmp/ccTIJMRp.s:3 *ABS*:000000000000003d __SP_L__
- /tmp/ccTIJMRp.s:4 *ABS*:000000000000003f __SREG__
- /tmp/ccTIJMRp.s:5 *ABS*:000000000000003b __RAMPZ__
- /tmp/ccTIJMRp.s:6 *ABS*:0000000000000000 __tmp_reg__
- /tmp/ccTIJMRp.s:7 *ABS*:0000000000000001 __zero_reg__
- /tmp/ccTIJMRp.s:11 .text.At24cRead:0000000000000000 At24cRead
- /tmp/ccTIJMRp.s:178 .text.At24cWrite:0000000000000000 At24cWrite
- UNDEFINED SYMBOLS
- __udivmodhi4
- NutEventWait
- AVRTwiBus
- NutTwiMasterRegRead
- NutSleep
- NutEventPost
- NutTwiMasterRegWrite
|