GAS LISTING /tmp/ccQ13Obf.s page 1 1 .file "sbbif0.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.Sbbi0Delay,"ax",@progbits 9 .type Sbbi0Delay, @function 10 Sbbi0Delay: 11 /* prologue: function */ 12 /* frame size = 0 */ 13 /* stack size = 0 */ 14 .L__stack_usage = 0 15 0000 8091 0000 lds r24,sel_delay 16 .L8: 17 0004 8823 tst r24 18 0006 01F0 breq .L1 19 /* #APP */ 20 ; 125 "../../nut/dev/sbbif0.c" 1 21 0008 0000 nop 22 ; 0 "" 2 23 /* #NOAPP */ 24 000a 8150 subi r24,lo8(-(-1)) 25 000c 00C0 rjmp .L8 26 .L1: 27 000e 0895 ret 28 .size Sbbi0Delay, .-Sbbi0Delay 29 .section .text.Sbbi0SetMode,"ax",@progbits 30 .global Sbbi0SetMode 31 .type Sbbi0SetMode, @function 32 Sbbi0SetMode: 33 /* prologue: function */ 34 /* frame size = 0 */ 35 /* stack size = 0 */ 36 .L__stack_usage = 0 37 0000 8430 cpi r24,lo8(4) 38 0002 00F4 brsh .L13 39 0004 6430 cpi r22,lo8(4) 40 0006 00F4 brsh .L13 41 0008 E82F mov r30,r24 42 000a F0E0 ldi r31,0 43 000c E050 subi r30,lo8(-(sbbi0_mode)) 44 000e F040 sbci r31,hi8(-(sbbi0_mode)) 45 0010 6083 st Z,r22 46 0012 80E0 ldi r24,0 47 0014 90E0 ldi r25,0 48 0016 0895 ret 49 .L13: 50 0018 8FEF ldi r24,lo8(-1) 51 001a 9FEF ldi r25,lo8(-1) 52 001c 0895 ret 53 .size Sbbi0SetMode, .-Sbbi0SetMode 54 .section .text.Sbbi0SetSpeed,"ax",@progbits 55 .global Sbbi0SetSpeed 56 .type Sbbi0SetSpeed, @function 57 Sbbi0SetSpeed: GAS LISTING /tmp/ccQ13Obf.s page 2 58 0000 CF92 push r12 59 0002 DF92 push r13 60 0004 EF92 push r14 61 0006 FF92 push r15 62 0008 CF93 push r28 63 /* prologue: function */ 64 /* frame size = 0 */ 65 /* stack size = 5 */ 66 .L__stack_usage = 5 67 000a C82F mov r28,r24 68 000c 6A01 movw r12,r20 69 000e 7B01 movw r14,r22 70 0010 0E94 0000 call NutGetCpuClock 71 0014 9B01 movw r18,r22 72 0016 AC01 movw r20,r24 73 0018 84E0 ldi r24,4 74 1: 75 001a 5695 lsr r21 76 001c 4795 ror r20 77 001e 3795 ror r19 78 0020 2795 ror r18 79 0022 8A95 dec r24 80 0024 01F4 brne 1b 81 0026 C114 cp r12,__zero_reg__ 82 0028 D104 cpc r13,__zero_reg__ 83 002a E104 cpc r14,__zero_reg__ 84 002c F104 cpc r15,__zero_reg__ 85 002e 01F0 breq .L15 86 0030 CA01 movw r24,r20 87 0032 B901 movw r22,r18 88 0034 A701 movw r20,r14 89 0036 9601 movw r18,r12 90 0038 0E94 0000 call __udivmodsi4 91 .L15: 92 003c 8C2F mov r24,r28 93 003e 90E0 ldi r25,0 94 0040 FC01 movw r30,r24 95 0042 E050 subi r30,lo8(-(sbbi0_delay)) 96 0044 F040 sbci r31,hi8(-(sbbi0_delay)) 97 0046 2530 cpi r18,5 98 0048 3105 cpc r19,__zero_reg__ 99 004a 4105 cpc r20,__zero_reg__ 100 004c 5105 cpc r21,__zero_reg__ 101 004e 00F4 brsh .L16 102 0050 1082 st Z,__zero_reg__ 103 0052 00C0 rjmp .L14 104 .L16: 105 0054 2F3F cpi r18,-1 106 0056 3105 cpc r19,__zero_reg__ 107 0058 4105 cpc r20,__zero_reg__ 108 005a 5105 cpc r21,__zero_reg__ 109 005c 00F0 brlo .L22 110 005e 2FEF ldi r18,lo8(-1) 111 .L22: 112 0060 2083 st Z,r18 113 .L14: 114 /* epilogue start */ GAS LISTING /tmp/ccQ13Obf.s page 3 115 0062 CF91 pop r28 116 0064 FF90 pop r15 117 0066 EF90 pop r14 118 0068 DF90 pop r13 119 006a CF90 pop r12 120 006c 0895 ret 121 .size Sbbi0SetSpeed, .-Sbbi0SetSpeed 122 .section .text.Sbbi0Enable,"ax",@progbits 123 .global Sbbi0Enable 124 .type Sbbi0Enable, @function 125 Sbbi0Enable: 126 /* prologue: function */ 127 /* frame size = 0 */ 128 /* stack size = 0 */ 129 .L__stack_usage = 0 130 0000 90E0 ldi r25,0 131 0002 FC01 movw r30,r24 132 0004 E050 subi r30,lo8(-(sbbi0_mode)) 133 0006 F040 sbci r31,hi8(-(sbbi0_mode)) 134 0008 2081 ld r18,Z 135 000a 2093 0000 sts sel_mode,r18 136 000e FC01 movw r30,r24 137 0010 E050 subi r30,lo8(-(sbbi0_delay)) 138 0012 F040 sbci r31,hi8(-(sbbi0_delay)) 139 0014 8081 ld r24,Z 140 0016 8093 0000 sts sel_delay,r24 141 001a 0895 ret 142 .size Sbbi0Enable, .-Sbbi0Enable 143 .section .text.Sbbi0ChipReset,"ax",@progbits 144 .global Sbbi0ChipReset 145 .type Sbbi0ChipReset, @function 146 Sbbi0ChipReset: 147 /* prologue: function */ 148 /* frame size = 0 */ 149 /* stack size = 0 */ 150 .L__stack_usage = 0 151 0000 0895 ret 152 .size Sbbi0ChipReset, .-Sbbi0ChipReset 153 .section .text.Sbbi0ChipSelect,"ax",@progbits 154 .global Sbbi0ChipSelect 155 .type Sbbi0ChipSelect, @function 156 Sbbi0ChipSelect: 157 /* prologue: function */ 158 /* frame size = 0 */ 159 /* stack size = 0 */ 160 .L__stack_usage = 0 161 0000 0895 ret 162 .size Sbbi0ChipSelect, .-Sbbi0ChipSelect 163 .section .text.Sbbi0SelectDevice,"ax",@progbits 164 .global Sbbi0SelectDevice 165 .type Sbbi0SelectDevice, @function 166 Sbbi0SelectDevice: 167 /* prologue: function */ 168 /* frame size = 0 */ 169 /* stack size = 0 */ 170 .L__stack_usage = 0 171 0000 0C94 0000 jmp Sbbi0Enable GAS LISTING /tmp/ccQ13Obf.s page 4 172 .size Sbbi0SelectDevice, .-Sbbi0SelectDevice 173 .section .text.Sbbi0DeselectDevice,"ax",@progbits 174 .global Sbbi0DeselectDevice 175 .type Sbbi0DeselectDevice, @function 176 Sbbi0DeselectDevice: 177 /* prologue: function */ 178 /* frame size = 0 */ 179 /* stack size = 0 */ 180 .L__stack_usage = 0 181 0000 0895 ret 182 .size Sbbi0DeselectDevice, .-Sbbi0DeselectDevice 183 .section .text.Sbbi0NegSelectDevice,"ax",@progbits 184 .global Sbbi0NegSelectDevice 185 .type Sbbi0NegSelectDevice, @function 186 Sbbi0NegSelectDevice: 187 /* prologue: function */ 188 /* frame size = 0 */ 189 /* stack size = 0 */ 190 .L__stack_usage = 0 191 0000 0C94 0000 jmp Sbbi0Enable 192 .size Sbbi0NegSelectDevice, .-Sbbi0NegSelectDevice 193 .section .text.Sbbi0NegDeselectDevice,"ax",@progbits 194 .global Sbbi0NegDeselectDevice 195 .type Sbbi0NegDeselectDevice, @function 196 Sbbi0NegDeselectDevice: 197 /* prologue: function */ 198 /* frame size = 0 */ 199 /* stack size = 0 */ 200 .L__stack_usage = 0 201 0000 0895 ret 202 .size Sbbi0NegDeselectDevice, .-Sbbi0NegDeselectDevice 203 .section .text.Sbbi0Byte,"ax",@progbits 204 .global Sbbi0Byte 205 .type Sbbi0Byte, @function 206 Sbbi0Byte: 207 0000 0F93 push r16 208 0002 1F93 push r17 209 0004 CF93 push r28 210 0006 DF93 push r29 211 /* prologue: function */ 212 /* frame size = 0 */ 213 /* stack size = 4 */ 214 .L__stack_usage = 4 215 0008 C82F mov r28,r24 216 000a 8091 0000 lds r24,sel_mode 217 000e 08E0 ldi r16,lo8(8) 218 0010 10E0 ldi r17,0 219 0012 D0E8 ldi r29,lo8(-128) 220 0014 8330 cpi r24,lo8(3) 221 0016 01F4 brne .L31 222 .L32: 223 0018 0E94 0000 call Sbbi0Delay 224 001c 8D2F mov r24,r29 225 001e 8095 com r24 226 0020 C823 and r28,r24 227 0022 0E94 0000 call Sbbi0Delay 228 0026 D695 lsr r29 GAS LISTING /tmp/ccQ13Obf.s page 5 229 0028 0150 subi r16,1 230 002a 1109 sbc r17,__zero_reg__ 231 002c 01F4 brne .L32 232 002e 00C0 rjmp .L33 233 .L31: 234 0030 8230 cpi r24,lo8(2) 235 0032 01F4 brne .L34 236 .L35: 237 0034 0E94 0000 call Sbbi0Delay 238 0038 8D2F mov r24,r29 239 003a 8095 com r24 240 003c C823 and r28,r24 241 003e 0E94 0000 call Sbbi0Delay 242 0042 D695 lsr r29 243 0044 0150 subi r16,1 244 0046 1109 sbc r17,__zero_reg__ 245 0048 01F4 brne .L35 246 004a 00C0 rjmp .L33 247 .L34: 248 004c 8130 cpi r24,lo8(1) 249 004e 01F4 brne .L38 250 .L37: 251 0050 0E94 0000 call Sbbi0Delay 252 0054 8D2F mov r24,r29 253 0056 8095 com r24 254 0058 C823 and r28,r24 255 005a 0E94 0000 call Sbbi0Delay 256 005e D695 lsr r29 257 0060 0150 subi r16,1 258 0062 1109 sbc r17,__zero_reg__ 259 0064 01F4 brne .L37 260 0066 00C0 rjmp .L33 261 .L38: 262 0068 0E94 0000 call Sbbi0Delay 263 006c 8D2F mov r24,r29 264 006e 8095 com r24 265 0070 C823 and r28,r24 266 0072 0E94 0000 call Sbbi0Delay 267 0076 D695 lsr r29 268 0078 0150 subi r16,1 269 007a 1109 sbc r17,__zero_reg__ 270 007c 01F4 brne .L38 271 .L33: 272 007e 8C2F mov r24,r28 273 /* epilogue start */ 274 0080 DF91 pop r29 275 0082 CF91 pop r28 276 0084 1F91 pop r17 277 0086 0F91 pop r16 278 0088 0895 ret 279 .size Sbbi0Byte, .-Sbbi0Byte 280 .section .text.Sbbi0Transact,"ax",@progbits 281 .global Sbbi0Transact 282 .type Sbbi0Transact, @function 283 Sbbi0Transact: 284 0000 EF92 push r14 285 0002 FF92 push r15 GAS LISTING /tmp/ccQ13Obf.s page 6 286 0004 0F93 push r16 287 0006 1F93 push r17 288 0008 CF93 push r28 289 000a DF93 push r29 290 /* prologue: function */ 291 /* frame size = 0 */ 292 /* stack size = 6 */ 293 .L__stack_usage = 6 294 000c EC01 movw r28,r24 295 000e 6115 cp r22,__zero_reg__ 296 0010 7105 cpc r23,__zero_reg__ 297 0012 01F4 brne .L44 298 0014 8C01 movw r16,r24 299 0016 040F add r16,r20 300 0018 151F adc r17,r21 301 001a 00C0 rjmp .L45 302 .L44: 303 001c 8B01 movw r16,r22 304 001e 7B01 movw r14,r22 305 0020 E40E add r14,r20 306 0022 F51E adc r15,r21 307 .L46: 308 0024 0E15 cp r16,r14 309 0026 1F05 cpc r17,r15 310 0028 01F0 breq .L43 311 002a 8991 ld r24,Y+ 312 002c 0E94 0000 call Sbbi0Byte 313 0030 F801 movw r30,r16 314 0032 8193 st Z+,r24 315 0034 8F01 movw r16,r30 316 0036 00C0 rjmp .L46 317 .L45: 318 0038 C017 cp r28,r16 319 003a D107 cpc r29,r17 320 003c 01F0 breq .L43 321 003e 8991 ld r24,Y+ 322 0040 0E94 0000 call Sbbi0Byte 323 0044 00C0 rjmp .L45 324 .L43: 325 /* epilogue start */ 326 0046 DF91 pop r29 327 0048 CF91 pop r28 328 004a 1F91 pop r17 329 004c 0F91 pop r16 330 004e FF90 pop r15 331 0050 EF90 pop r14 332 0052 0895 ret 333 .size Sbbi0Transact, .-Sbbi0Transact 334 .local sel_delay 335 .comm sel_delay,1,1 336 .local sbbi0_delay 337 .comm sbbi0_delay,4,1 338 .local sel_mode 339 .comm sel_mode,1,1 340 .local sbbi0_mode 341 .comm sbbi0_mode,4,1 342 .ident "GCC: (GNU) 5.3.0" GAS LISTING /tmp/ccQ13Obf.s page 7 343 .global __do_clear_bss GAS LISTING /tmp/ccQ13Obf.s page 8 DEFINED SYMBOLS *ABS*:0000000000000000 sbbif0.c /tmp/ccQ13Obf.s:2 *ABS*:000000000000003e __SP_H__ /tmp/ccQ13Obf.s:3 *ABS*:000000000000003d __SP_L__ /tmp/ccQ13Obf.s:4 *ABS*:000000000000003f __SREG__ /tmp/ccQ13Obf.s:5 *ABS*:000000000000003b __RAMPZ__ /tmp/ccQ13Obf.s:6 *ABS*:0000000000000000 __tmp_reg__ /tmp/ccQ13Obf.s:7 *ABS*:0000000000000001 __zero_reg__ /tmp/ccQ13Obf.s:10 .text.Sbbi0Delay:0000000000000000 Sbbi0Delay .bss:0000000000000000 sel_delay /tmp/ccQ13Obf.s:32 .text.Sbbi0SetMode:0000000000000000 Sbbi0SetMode /tmp/ccQ13Obf.s:339 .bss:0000000000000006 sbbi0_mode /tmp/ccQ13Obf.s:57 .text.Sbbi0SetSpeed:0000000000000000 Sbbi0SetSpeed /tmp/ccQ13Obf.s:335 .bss:0000000000000001 sbbi0_delay /tmp/ccQ13Obf.s:125 .text.Sbbi0Enable:0000000000000000 Sbbi0Enable /tmp/ccQ13Obf.s:337 .bss:0000000000000005 sel_mode /tmp/ccQ13Obf.s:146 .text.Sbbi0ChipReset:0000000000000000 Sbbi0ChipReset /tmp/ccQ13Obf.s:156 .text.Sbbi0ChipSelect:0000000000000000 Sbbi0ChipSelect /tmp/ccQ13Obf.s:166 .text.Sbbi0SelectDevice:0000000000000000 Sbbi0SelectDevice /tmp/ccQ13Obf.s:176 .text.Sbbi0DeselectDevice:0000000000000000 Sbbi0DeselectDevice /tmp/ccQ13Obf.s:186 .text.Sbbi0NegSelectDevice:0000000000000000 Sbbi0NegSelectDevice /tmp/ccQ13Obf.s:196 .text.Sbbi0NegDeselectDevice:0000000000000000 Sbbi0NegDeselectDevice /tmp/ccQ13Obf.s:206 .text.Sbbi0Byte:0000000000000000 Sbbi0Byte /tmp/ccQ13Obf.s:283 .text.Sbbi0Transact:0000000000000000 Sbbi0Transact UNDEFINED SYMBOLS NutGetCpuClock __udivmodsi4 __do_clear_bss