| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391 |
- 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
|