GAS LISTING /tmp/ccyxqnS2.s page 1 1 .file "spidigio.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.delay_us.constprop.0,"ax",@progbits 9 .type delay_us.constprop.0, @function 10 delay_us.constprop.0: 11 /* prologue: function */ 12 /* frame size = 0 */ 13 /* stack size = 0 */ 14 .L__stack_usage = 0 15 0000 8091 0000 lds r24,us_loops 16 0004 880F lsl r24 17 0006 880F lsl r24 18 .L2: 19 0008 8150 subi r24,1 20 000a 00F0 brcs .L5 21 /* #APP */ 22 ; 196 "../../nut/arch/avr/dev/spidigio.c" 1 23 000c 0000 nop 24 ; 0 "" 2 25 /* #NOAPP */ 26 000e 00C0 rjmp .L2 27 .L5: 28 /* epilogue start */ 29 0010 0895 ret 30 .size delay_us.constprop.0, .-delay_us.constprop.0 31 .section .text.ShiftDigital,"ax",@progbits 32 .type ShiftDigital, @function 33 ShiftDigital: 34 /* prologue: function */ 35 /* frame size = 0 */ 36 /* stack size = 0 */ 37 .L__stack_usage = 0 38 0000 5F98 cbi 0xb,7 39 0002 0E94 0000 call delay_us.constprop.0 40 0006 5F9A sbi 0xb,7 41 0008 0C94 0000 jmp delay_us.constprop.0 42 .size ShiftDigital, .-ShiftDigital 43 .section .text.CountDigitalShifts,"ax",@progbits 44 .type CountDigitalShifts, @function 45 CountDigitalShifts: 46 0000 FF92 push r15 47 0002 0F93 push r16 48 0004 1F93 push r17 49 0006 CF93 push r28 50 0008 DF93 push r29 51 /* prologue: function */ 52 /* frame size = 0 */ 53 /* stack size = 5 */ 54 .L__stack_usage = 5 55 000a C82F mov r28,r24 56 000c 062F mov r16,r22 57 000e F42E mov r15,r20 GAS LISTING /tmp/ccyxqnS2.s page 2 58 0010 4423 tst r20 59 0012 01F0 breq .L8 60 0014 2F9A sbi 0x5,7 61 0016 0E94 0000 call delay_us.constprop.0 62 001a 2F98 cbi 0x5,7 63 .L8: 64 001c 0023 tst r16 65 001e 01F0 breq .L9 66 0020 5D9A sbi 0xb,5 67 0022 00C0 rjmp .L10 68 .L9: 69 0024 5D98 cbi 0xb,5 70 .L10: 71 0026 0E94 0000 call delay_us.constprop.0 72 002a 11E0 ldi r17,lo8(1) 73 002c 1C0F add r17,r28 74 002e D1E0 ldi r29,lo8(1) 75 0030 C0E0 ldi r28,0 76 .L11: 77 0032 1D17 cp r17,r29 78 0034 01F0 breq .L27 79 0036 4E9B sbis 0x9,6 80 0038 00C0 rjmp .L12 81 003a 0023 tst r16 82 003c 01F0 breq .L13 83 003e 00C0 rjmp .L26 84 .L12: 85 0040 0111 cpse r16,__zero_reg__ 86 0042 00C0 rjmp .L13 87 .L26: 88 0044 F110 cpse r15,__zero_reg__ 89 0046 00C0 rjmp .L18 90 0048 C111 cpse r28,__zero_reg__ 91 004a 00C0 rjmp .L13 92 .L18: 93 004c CD2F mov r28,r29 94 .L13: 95 004e 0E94 0000 call ShiftDigital 96 0052 DF5F subi r29,lo8(-(1)) 97 0054 00C0 rjmp .L11 98 .L27: 99 0056 8C2F mov r24,r28 100 /* epilogue start */ 101 0058 DF91 pop r29 102 005a CF91 pop r28 103 005c 1F91 pop r17 104 005e 0F91 pop r16 105 0060 FF90 pop r15 106 0062 0895 ret 107 .size CountDigitalShifts, .-CountDigitalShifts 108 .section .text.SpiDigitalGet,"ax",@progbits 109 .global SpiDigitalGet 110 .type SpiDigitalGet, @function 111 SpiDigitalGet: 112 0000 1F93 push r17 113 0002 CF93 push r28 114 0004 DF93 push r29 GAS LISTING /tmp/ccyxqnS2.s page 3 115 0006 00D0 rcall . 116 0008 1F92 push __zero_reg__ 117 000a CDB7 in r28,__SP_L__ 118 000c DEB7 in r29,__SP_H__ 119 /* prologue: function */ 120 /* frame size = 4 */ 121 /* stack size = 7 */ 122 .L__stack_usage = 7 123 000e 182F mov r17,r24 124 0010 5D98 cbi 0xb,5 125 0012 2F9A sbi 0x5,7 126 0014 0E94 0000 call delay_us.constprop.0 127 0018 2F98 cbi 0x5,7 128 001a 0E94 0000 call delay_us.constprop.0 129 001e 60E0 ldi r22,0 130 0020 70E0 ldi r23,0 131 0022 CB01 movw r24,r22 132 .L29: 133 0024 1123 tst r17 134 0026 01F0 breq .L35 135 0028 660F lsl r22 136 002a 771F rol r23 137 002c 881F rol r24 138 002e 991F rol r25 139 0030 4E99 sbic 0x9,6 140 0032 6160 ori r22,1 141 .L30: 142 0034 6983 std Y+1,r22 143 0036 7A83 std Y+2,r23 144 0038 8B83 std Y+3,r24 145 003a 9C83 std Y+4,r25 146 003c 0E94 0000 call ShiftDigital 147 0040 1150 subi r17,lo8(-(-1)) 148 0042 9C81 ldd r25,Y+4 149 0044 8B81 ldd r24,Y+3 150 0046 7A81 ldd r23,Y+2 151 0048 6981 ldd r22,Y+1 152 004a 00C0 rjmp .L29 153 .L35: 154 /* epilogue start */ 155 004c 0F90 pop __tmp_reg__ 156 004e 0F90 pop __tmp_reg__ 157 0050 0F90 pop __tmp_reg__ 158 0052 0F90 pop __tmp_reg__ 159 0054 DF91 pop r29 160 0056 CF91 pop r28 161 0058 1F91 pop r17 162 005a 0895 ret 163 .size SpiDigitalGet, .-SpiDigitalGet 164 .section .text.SpiDigitalSet,"ax",@progbits 165 .global SpiDigitalSet 166 .type SpiDigitalSet, @function 167 SpiDigitalSet: 168 0000 CF92 push r12 169 0002 DF92 push r13 170 0004 EF92 push r14 171 0006 FF92 push r15 GAS LISTING /tmp/ccyxqnS2.s page 4 172 0008 1F93 push r17 173 000a CF93 push r28 174 000c DF93 push r29 175 000e 00D0 rcall . 176 0010 1F92 push __zero_reg__ 177 0012 CDB7 in r28,__SP_L__ 178 0014 DEB7 in r29,__SP_H__ 179 /* prologue: function */ 180 /* frame size = 4 */ 181 /* stack size = 11 */ 182 .L__stack_usage = 11 183 0016 8823 tst r24 184 0018 01F0 breq .L36 185 001a 9FEF ldi r25,lo8(-1) 186 001c 980F add r25,r24 187 001e C12C mov r12,__zero_reg__ 188 0020 D12C mov r13,__zero_reg__ 189 0022 7601 movw r14,r12 190 0024 C394 inc r12 191 0026 00C0 rjmp 2f 192 1: 193 0028 CC0C lsl r12 194 002a DD1C rol r13 195 002c EE1C rol r14 196 002e FF1C rol r15 197 2: 198 0030 9A95 dec r25 199 0032 02F4 brpl 1b 200 0034 182F mov r17,r24 201 .L40: 202 0036 DB01 movw r26,r22 203 0038 CA01 movw r24,r20 204 003a 8C21 and r24,r12 205 003c 9D21 and r25,r13 206 003e AE21 and r26,r14 207 0040 BF21 and r27,r15 208 0042 892B or r24,r25 209 0044 8A2B or r24,r26 210 0046 8B2B or r24,r27 211 0048 01F0 breq .L38 212 004a 5D9A sbi 0xb,5 213 004c 00C0 rjmp .L39 214 .L38: 215 004e 5D98 cbi 0xb,5 216 .L39: 217 0050 4983 std Y+1,r20 218 0052 5A83 std Y+2,r21 219 0054 6B83 std Y+3,r22 220 0056 7C83 std Y+4,r23 221 0058 0E94 0000 call delay_us.constprop.0 222 005c 0E94 0000 call ShiftDigital 223 0060 F694 lsr r15 224 0062 E794 ror r14 225 0064 D794 ror r13 226 0066 C794 ror r12 227 0068 1150 subi r17,lo8(-(-1)) 228 006a 4981 ldd r20,Y+1 GAS LISTING /tmp/ccyxqnS2.s page 5 229 006c 5A81 ldd r21,Y+2 230 006e 6B81 ldd r22,Y+3 231 0070 7C81 ldd r23,Y+4 232 0072 1111 cpse r17,__zero_reg__ 233 0074 00C0 rjmp .L40 234 0076 2D98 cbi 0x5,5 235 0078 0E94 0000 call delay_us.constprop.0 236 007c 2D9A sbi 0x5,5 237 .L36: 238 /* epilogue start */ 239 007e 0F90 pop __tmp_reg__ 240 0080 0F90 pop __tmp_reg__ 241 0082 0F90 pop __tmp_reg__ 242 0084 0F90 pop __tmp_reg__ 243 0086 DF91 pop r29 244 0088 CF91 pop r28 245 008a 1F91 pop r17 246 008c FF90 pop r15 247 008e EF90 pop r14 248 0090 DF90 pop r13 249 0092 CF90 pop r12 250 0094 0895 ret 251 .size SpiDigitalSet, .-SpiDigitalSet 252 .section .text.SpiDigitalInit,"ax",@progbits 253 .global SpiDigitalInit 254 .type SpiDigitalInit, @function 255 SpiDigitalInit: 256 0000 EF92 push r14 257 0002 FF92 push r15 258 0004 0F93 push r16 259 0006 1F93 push r17 260 0008 CF93 push r28 261 000a DF93 push r29 262 /* prologue: function */ 263 /* frame size = 0 */ 264 /* stack size = 6 */ 265 .L__stack_usage = 6 266 000c EC01 movw r28,r24 267 000e 7B01 movw r14,r22 268 0010 0E94 0000 call NutGetCpuClock 269 0014 605E subi r22,-32 270 0016 7E45 sbci r23,94 271 0018 884F sbci r24,-8 272 001a 9F4F sbci r25,-1 273 001c 20E0 ldi r18,0 274 001e 39E0 ldi r19,lo8(9) 275 0020 4DE3 ldi r20,lo8(61) 276 0022 50E0 ldi r21,0 277 0024 0E94 0000 call __udivmodsi4 278 0028 2223 tst r18 279 002a 01F0 breq .L46 280 002c 2093 0000 sts us_loops,r18 281 0030 00C0 rjmp .L47 282 .L46: 283 0032 81E0 ldi r24,lo8(1) 284 0034 8093 0000 sts us_loops,r24 285 .L47: GAS LISTING /tmp/ccyxqnS2.s page 6 286 0038 559A sbi 0xa,5 287 003a 5E9A sbi 0xb,6 288 003c 5698 cbi 0xa,6 289 003e 5F9A sbi 0xb,7 290 0040 579A sbi 0xa,7 291 0042 2D9A sbi 0x5,5 292 0044 259A sbi 0x4,5 293 0046 2F98 cbi 0x5,7 294 0048 279A sbi 0x4,7 295 004a 40E0 ldi r20,0 296 004c 60E0 ldi r22,0 297 004e 80E2 ldi r24,lo8(32) 298 0050 0E94 0000 call CountDigitalShifts 299 0054 40E0 ldi r20,0 300 0056 61E0 ldi r22,lo8(1) 301 0058 80E2 ldi r24,lo8(32) 302 005a 0E94 0000 call CountDigitalShifts 303 005e 1FEF ldi r17,lo8(-1) 304 0060 180F add r17,r24 305 0062 1882 st Y,__zero_reg__ 306 0064 05E0 ldi r16,lo8(5) 307 .L50: 308 0066 41E0 ldi r20,lo8(1) 309 0068 60E0 ldi r22,0 310 006a 812F mov r24,r17 311 006c 0E94 0000 call CountDigitalShifts 312 0070 9881 ld r25,Y 313 0072 9817 cp r25,r24 314 0074 00F4 brsh .L48 315 0076 8883 st Y,r24 316 .L48: 317 0078 41E0 ldi r20,lo8(1) 318 007a 61E0 ldi r22,lo8(1) 319 007c 812F mov r24,r17 320 007e 0E94 0000 call CountDigitalShifts 321 0082 9881 ld r25,Y 322 0084 9817 cp r25,r24 323 0086 00F4 brsh .L49 324 0088 8883 st Y,r24 325 .L49: 326 008a 0150 subi r16,lo8(-(-1)) 327 008c 01F4 brne .L50 328 008e 8881 ld r24,Y 329 0090 181B sub r17,r24 330 0092 F701 movw r30,r14 331 0094 1083 st Z,r17 332 /* epilogue start */ 333 0096 DF91 pop r29 334 0098 CF91 pop r28 335 009a 1F91 pop r17 336 009c 0F91 pop r16 337 009e FF90 pop r15 338 00a0 EF90 pop r14 339 00a2 0895 ret 340 .size SpiDigitalInit, .-SpiDigitalInit 341 .data 342 .type us_loops, @object GAS LISTING /tmp/ccyxqnS2.s page 7 343 .size us_loops, 1 344 us_loops: 345 0000 01 .byte 1 346 .ident "GCC: (GNU) 5.3.0" 347 .global __do_copy_data GAS LISTING /tmp/ccyxqnS2.s page 8 DEFINED SYMBOLS *ABS*:0000000000000000 spidigio.c /tmp/ccyxqnS2.s:2 *ABS*:000000000000003e __SP_H__ /tmp/ccyxqnS2.s:3 *ABS*:000000000000003d __SP_L__ /tmp/ccyxqnS2.s:4 *ABS*:000000000000003f __SREG__ /tmp/ccyxqnS2.s:5 *ABS*:000000000000003b __RAMPZ__ /tmp/ccyxqnS2.s:6 *ABS*:0000000000000000 __tmp_reg__ /tmp/ccyxqnS2.s:7 *ABS*:0000000000000001 __zero_reg__ /tmp/ccyxqnS2.s:10 .text.delay_us.constprop.0:0000000000000000 delay_us.constprop.0 /tmp/ccyxqnS2.s:344 .data:0000000000000000 us_loops /tmp/ccyxqnS2.s:33 .text.ShiftDigital:0000000000000000 ShiftDigital /tmp/ccyxqnS2.s:45 .text.CountDigitalShifts:0000000000000000 CountDigitalShifts /tmp/ccyxqnS2.s:111 .text.SpiDigitalGet:0000000000000000 SpiDigitalGet /tmp/ccyxqnS2.s:167 .text.SpiDigitalSet:0000000000000000 SpiDigitalSet /tmp/ccyxqnS2.s:255 .text.SpiDigitalInit:0000000000000000 SpiDigitalInit UNDEFINED SYMBOLS NutGetCpuClock __udivmodsi4 __do_copy_data