739 lines
15 KiB
ArmAsm
739 lines
15 KiB
ArmAsm
.file "ringbuffer.c"
|
|
__SREG__ = 0x3f
|
|
__SP_H__ = 0x3e
|
|
__SP_L__ = 0x3d
|
|
__tmp_reg__ = 0
|
|
__zero_reg__ = 1
|
|
.global __do_copy_data
|
|
.global __do_clear_bss
|
|
.stabs "/home/triffid/ATmega-Skeleton/mendel/",100,0,2,.Ltext0
|
|
.stabs "ringbuffer.c",100,0,2,.Ltext0
|
|
.text
|
|
.Ltext0:
|
|
.stabs "gcc2_compiled.",60,0,0,0
|
|
.stabs "int:t(0,1)=r(0,1);-32768;32767;",128,0,1,0
|
|
.stabs "char:t(0,2)=@s8;r(0,2);0;255;",128,0,1,0
|
|
.stabs "long int:t(0,3)=@s32;r(0,3);020000000000;017777777777;",128,0,1,0
|
|
.stabs "unsigned int:t(0,4)=r(0,4);0;0177777;",128,0,1,0
|
|
.stabs "long unsigned int:t(0,5)=@s32;r(0,5);0;037777777777;",128,0,1,0
|
|
.stabs "long long int:t(0,6)=@s64;r(0,6);01000000000000000000000;0777777777777777777777;",128,0,1,0
|
|
.stabs "long long unsigned int:t(0,7)=@s64;r(0,7);0;01777777777777777777777;",128,0,1,0
|
|
.stabs "short int:t(0,8)=r(0,8);-32768;32767;",128,0,1,0
|
|
.stabs "short unsigned int:t(0,9)=r(0,9);0;0177777;",128,0,1,0
|
|
.stabs "signed char:t(0,10)=@s8;r(0,10);-128;127;",128,0,1,0
|
|
.stabs "unsigned char:t(0,11)=@s8;r(0,11);0;255;",128,0,1,0
|
|
.stabs "float:t(0,12)=r(0,1);4;0;",128,0,1,0
|
|
.stabs "double:t(0,13)=r(0,1);4;0;",128,0,1,0
|
|
.stabs "long double:t(0,14)=r(0,1);4;0;",128,0,1,0
|
|
.stabs "void:t(0,15)=(0,15)",128,0,1,0
|
|
.stabs "ringbuffer.h",130,0,0,0
|
|
.stabs "/usr/lib/gcc/avr/4.4.1/../../../../avr/include/stdint.h",130,0,0,0
|
|
.stabs "int8_t:t(2,1)=(0,10)",128,0,121,0
|
|
.stabs "uint8_t:t(2,2)=(0,11)",128,0,122,0
|
|
.stabs "int16_t:t(2,3)=(0,1)",128,0,123,0
|
|
.stabs "uint16_t:t(2,4)=(0,4)",128,0,124,0
|
|
.stabs "int32_t:t(2,5)=(0,3)",128,0,125,0
|
|
.stabs "uint32_t:t(2,6)=(0,5)",128,0,126,0
|
|
.stabs "int64_t:t(2,7)=(0,6)",128,0,128,0
|
|
.stabs "uint64_t:t(2,8)=(0,7)",128,0,129,0
|
|
.stabs "intptr_t:t(2,9)=(2,3)",128,0,142,0
|
|
.stabs "uintptr_t:t(2,10)=(2,4)",128,0,147,0
|
|
.stabs "int_least8_t:t(2,11)=(2,1)",128,0,159,0
|
|
.stabs "uint_least8_t:t(2,12)=(2,2)",128,0,164,0
|
|
.stabs "int_least16_t:t(2,13)=(2,3)",128,0,169,0
|
|
.stabs "uint_least16_t:t(2,14)=(2,4)",128,0,174,0
|
|
.stabs "int_least32_t:t(2,15)=(2,5)",128,0,179,0
|
|
.stabs "uint_least32_t:t(2,16)=(2,6)",128,0,184,0
|
|
.stabs "int_least64_t:t(2,17)=(2,7)",128,0,192,0
|
|
.stabs "uint_least64_t:t(2,18)=(2,8)",128,0,199,0
|
|
.stabs "int_fast8_t:t(2,19)=(2,1)",128,0,213,0
|
|
.stabs "uint_fast8_t:t(2,20)=(2,2)",128,0,218,0
|
|
.stabs "int_fast16_t:t(2,21)=(2,3)",128,0,223,0
|
|
.stabs "uint_fast16_t:t(2,22)=(2,4)",128,0,228,0
|
|
.stabs "int_fast32_t:t(2,23)=(2,5)",128,0,233,0
|
|
.stabs "uint_fast32_t:t(2,24)=(2,6)",128,0,238,0
|
|
.stabs "int_fast64_t:t(2,25)=(2,7)",128,0,246,0
|
|
.stabs "uint_fast64_t:t(2,26)=(2,8)",128,0,253,0
|
|
.stabs "intmax_t:t(2,27)=(2,7)",128,0,273,0
|
|
.stabs "uintmax_t:t(2,28)=(2,8)",128,0,278,0
|
|
.stabn 162,0,0,0
|
|
.stabs "/usr/lib/gcc/avr/4.4.1/../../../../avr/include/avr/interrupt.h",130,0,0,0
|
|
.stabs "/usr/lib/gcc/avr/4.4.1/../../../../avr/include/avr/io.h",130,0,0,0
|
|
.stabs "/usr/lib/gcc/avr/4.4.1/../../../../avr/include/avr/sfr_defs.h",130,0,0,0
|
|
.stabs "/usr/lib/gcc/avr/4.4.1/../../../../avr/include/inttypes.h",130,0,0,0
|
|
.stabs "int_farptr_t:t(6,1)=(2,5)",128,0,77,0
|
|
.stabs "uint_farptr_t:t(6,2)=(2,6)",128,0,81,0
|
|
.stabn 162,0,0,0
|
|
.stabn 162,0,0,0
|
|
.stabs "/usr/lib/gcc/avr/4.4.1/../../../../avr/include/avr/fuse.h",130,0,0,0
|
|
.stabs "__fuse_t:t(7,1)=(7,2)=s3low:(0,11),0,8;high:(0,11),8,8;extended:(0,11),16,8;;",128,0,239,0
|
|
.stabn 162,0,0,0
|
|
.stabn 162,0,0,0
|
|
.stabn 162,0,0,0
|
|
.stabs "ringbuffer:t(1,1)=(1,2)=s6read_pointer:(2,4),0,16;write_pointer:(2,4),16,16;size:(2,4),32,16;;",128,0,12,0
|
|
.stabn 162,0,0,0
|
|
.section .text._rb_mod,"ax",@progbits
|
|
.stabs "_rb_mod:F(2,4)",36,0,3,_rb_mod
|
|
.stabs "num:P(2,4)",64,0,3,18
|
|
.stabs "denom:P(2,4)",64,0,3,22
|
|
.global _rb_mod
|
|
.type _rb_mod, @function
|
|
_rb_mod:
|
|
.stabd 46,0,0
|
|
.stabn 68,0,4,.LM0-.LFBB1
|
|
.LM0:
|
|
.LFBB1:
|
|
/* prologue: function */
|
|
/* frame size = 0 */
|
|
movw r18,r24
|
|
.stabn 68,0,5,.LM1-.LFBB1
|
|
.LM1:
|
|
rjmp .L2
|
|
.L3:
|
|
sub r18,r22
|
|
sbc r19,r23
|
|
.L2:
|
|
cp r18,r22
|
|
cpc r19,r23
|
|
brsh .L3
|
|
.stabn 68,0,7,.LM2-.LFBB1
|
|
.LM2:
|
|
movw r24,r18
|
|
/* epilogue start */
|
|
ret
|
|
.size _rb_mod, .-_rb_mod
|
|
.Lscope1:
|
|
.stabs "",36,0,0,.Lscope1-.LFBB1
|
|
.stabd 78,0,0
|
|
.section .text.ringbuffer_init,"ax",@progbits
|
|
.stabs "ringbuffer_init:F(0,15)",36,0,9,ringbuffer_init
|
|
.stabs "buf:P(0,16)=*(1,1)",64,0,9,30
|
|
.stabs "bufsize:P(0,1)",64,0,9,22
|
|
.global ringbuffer_init
|
|
.type ringbuffer_init, @function
|
|
ringbuffer_init:
|
|
.stabd 46,0,0
|
|
.stabn 68,0,10,.LM3-.LFBB2
|
|
.LM3:
|
|
.LFBB2:
|
|
/* prologue: function */
|
|
/* frame size = 0 */
|
|
movw r30,r24
|
|
.stabn 68,0,11,.LM4-.LFBB2
|
|
.LM4:
|
|
std Z+1,__zero_reg__
|
|
st Z,__zero_reg__
|
|
.stabn 68,0,12,.LM5-.LFBB2
|
|
.LM5:
|
|
std Z+3,__zero_reg__
|
|
std Z+2,__zero_reg__
|
|
.stabn 68,0,13,.LM6-.LFBB2
|
|
.LM6:
|
|
subi r22,lo8(-(-6))
|
|
sbci r23,hi8(-(-6))
|
|
std Z+5,r23
|
|
std Z+4,r22
|
|
/* epilogue start */
|
|
.stabn 68,0,14,.LM7-.LFBB2
|
|
.LM7:
|
|
ret
|
|
.size ringbuffer_init, .-ringbuffer_init
|
|
.Lscope2:
|
|
.stabs "",36,0,0,.Lscope2-.LFBB2
|
|
.stabd 78,0,0
|
|
.section .text.ringbuffer_canread,"ax",@progbits
|
|
.stabs "ringbuffer_canread:F(2,4)",36,0,16,ringbuffer_canread
|
|
.stabs "buf:P(0,16)",64,0,16,30
|
|
.global ringbuffer_canread
|
|
.type ringbuffer_canread, @function
|
|
ringbuffer_canread:
|
|
.stabd 46,0,0
|
|
.stabn 68,0,17,.LM8-.LFBB3
|
|
.LM8:
|
|
.LFBB3:
|
|
/* prologue: function */
|
|
/* frame size = 0 */
|
|
movw r30,r24
|
|
.stabn 68,0,18,.LM9-.LFBB3
|
|
.LM9:
|
|
ldd r20,Z+4
|
|
ldd r21,Z+5
|
|
ldd r18,Z+2
|
|
ldd r19,Z+3
|
|
add r18,r20
|
|
adc r19,r21
|
|
add r18,r20
|
|
adc r19,r21
|
|
ld r24,Z
|
|
ldd r25,Z+1
|
|
sub r18,r24
|
|
sbc r19,r25
|
|
rjmp .L9
|
|
.L10:
|
|
.LBB20:
|
|
.LBB21:
|
|
.stabn 68,0,5,.LM10-.LFBB3
|
|
.LM10:
|
|
sub r18,r20
|
|
sbc r19,r21
|
|
.L9:
|
|
cp r18,r20
|
|
cpc r19,r21
|
|
brsh .L10
|
|
.LBE21:
|
|
.LBE20:
|
|
.stabn 68,0,19,.LM11-.LFBB3
|
|
.LM11:
|
|
movw r24,r18
|
|
/* epilogue start */
|
|
ret
|
|
.size ringbuffer_canread, .-ringbuffer_canread
|
|
.stabs "num:r(2,4)",64,0,18,18
|
|
.stabn 192,0,0,.LBB20-.LFBB3
|
|
.stabn 224,0,0,.LBE20-.LFBB3
|
|
.Lscope3:
|
|
.stabs "",36,0,0,.Lscope3-.LFBB3
|
|
.stabd 78,0,0
|
|
.section .text.ringbuffer_canwrite,"ax",@progbits
|
|
.stabs "ringbuffer_canwrite:F(2,4)",36,0,21,ringbuffer_canwrite
|
|
.stabs "buf:P(0,16)",64,0,21,30
|
|
.global ringbuffer_canwrite
|
|
.type ringbuffer_canwrite, @function
|
|
ringbuffer_canwrite:
|
|
.stabd 46,0,0
|
|
.stabn 68,0,22,.LM12-.LFBB4
|
|
.LM12:
|
|
.LFBB4:
|
|
/* prologue: function */
|
|
/* frame size = 0 */
|
|
movw r30,r24
|
|
.stabn 68,0,23,.LM13-.LFBB4
|
|
.LM13:
|
|
ldd r20,Z+4
|
|
ldd r21,Z+5
|
|
ld r18,Z
|
|
ldd r19,Z+1
|
|
add r18,r20
|
|
adc r19,r21
|
|
subi r18,lo8(-(-1))
|
|
sbci r19,hi8(-(-1))
|
|
add r18,r20
|
|
adc r19,r21
|
|
ldd r24,Z+2
|
|
ldd r25,Z+3
|
|
sub r18,r24
|
|
sbc r19,r25
|
|
rjmp .L13
|
|
.L14:
|
|
.LBB22:
|
|
.LBB23:
|
|
.stabn 68,0,5,.LM14-.LFBB4
|
|
.LM14:
|
|
sub r18,r20
|
|
sbc r19,r21
|
|
.L13:
|
|
cp r18,r20
|
|
cpc r19,r21
|
|
brsh .L14
|
|
.LBE23:
|
|
.LBE22:
|
|
.stabn 68,0,24,.LM15-.LFBB4
|
|
.LM15:
|
|
movw r24,r18
|
|
/* epilogue start */
|
|
ret
|
|
.size ringbuffer_canwrite, .-ringbuffer_canwrite
|
|
.stabs "num:r(2,4)",64,0,23,18
|
|
.stabn 192,0,0,.LBB22-.LFBB4
|
|
.stabn 224,0,0,.LBE22-.LFBB4
|
|
.Lscope4:
|
|
.stabs "",36,0,0,.Lscope4-.LFBB4
|
|
.stabd 78,0,0
|
|
.section .text.ringbuffer_readchar,"ax",@progbits
|
|
.stabs "ringbuffer_readchar:F(2,2)",36,0,26,ringbuffer_readchar
|
|
.stabs "buf:P(0,16)",64,0,26,30
|
|
.global ringbuffer_readchar
|
|
.type ringbuffer_readchar, @function
|
|
ringbuffer_readchar:
|
|
.stabd 46,0,0
|
|
.stabn 68,0,27,.LM16-.LFBB5
|
|
.LM16:
|
|
.LFBB5:
|
|
/* prologue: function */
|
|
/* frame size = 0 */
|
|
movw r30,r24
|
|
.LBB24:
|
|
.LBB25:
|
|
.stabn 68,0,18,.LM17-.LFBB5
|
|
.LM17:
|
|
ldd r20,Z+4
|
|
ldd r21,Z+5
|
|
ld r22,Z
|
|
ldd r23,Z+1
|
|
ldd r18,Z+2
|
|
ldd r19,Z+3
|
|
add r18,r20
|
|
adc r19,r21
|
|
add r18,r20
|
|
adc r19,r21
|
|
sub r18,r22
|
|
sbc r19,r23
|
|
rjmp .L17
|
|
.L18:
|
|
.LBB26:
|
|
.LBB27:
|
|
.stabn 68,0,5,.LM18-.LFBB5
|
|
.LM18:
|
|
sub r18,r20
|
|
sbc r19,r21
|
|
.L17:
|
|
cp r18,r20
|
|
cpc r19,r21
|
|
brsh .L18
|
|
.LBE27:
|
|
.LBE26:
|
|
.LBE25:
|
|
.LBE24:
|
|
.stabn 68,0,29,.LM19-.LFBB5
|
|
.LM19:
|
|
cp r18,__zero_reg__
|
|
cpc r19,__zero_reg__
|
|
brne .L19
|
|
ldi r24,lo8(0)
|
|
ret
|
|
.L19:
|
|
.stabn 68,0,31,.LM20-.LFBB5
|
|
.LM20:
|
|
movw r26,r30
|
|
add r26,r22
|
|
adc r27,r23
|
|
adiw r26,6
|
|
ld r24,X
|
|
sbiw r26,6
|
|
.stabn 68,0,32,.LM21-.LFBB5
|
|
.LM21:
|
|
movw r18,r22
|
|
subi r18,lo8(-(1))
|
|
sbci r19,hi8(-(1))
|
|
rjmp .L21
|
|
.L22:
|
|
.LBB28:
|
|
.LBB29:
|
|
.stabn 68,0,5,.LM22-.LFBB5
|
|
.LM22:
|
|
sub r18,r20
|
|
sbc r19,r21
|
|
.L21:
|
|
cp r18,r20
|
|
cpc r19,r21
|
|
brsh .L22
|
|
.LBE29:
|
|
.LBE28:
|
|
.stabn 68,0,32,.LM23-.LFBB5
|
|
.LM23:
|
|
std Z+1,r19
|
|
st Z,r18
|
|
.stabn 68,0,35,.LM24-.LFBB5
|
|
.LM24:
|
|
ret
|
|
.size ringbuffer_readchar, .-ringbuffer_readchar
|
|
.stabs "r:r(2,2)",64,0,28,24
|
|
.stabn 192,0,0,.LFBB5-.LFBB5
|
|
.stabs "num:r(2,4)",64,0,18,18
|
|
.stabn 192,0,0,.LBB26-.LFBB5
|
|
.stabn 224,0,0,.LBE26-.LFBB5
|
|
.stabs "num:r(2,4)",64,0,32,18
|
|
.stabn 192,0,0,.LBB28-.LFBB5
|
|
.stabn 224,0,0,.LBE28-.LFBB5
|
|
.stabn 224,0,0,.Lscope5-.LFBB5
|
|
.Lscope5:
|
|
.stabs "",36,0,0,.Lscope5-.LFBB5
|
|
.stabd 78,0,0
|
|
.section .text.ringbuffer_writechar,"ax",@progbits
|
|
.stabs "ringbuffer_writechar:F(0,15)",36,0,37,ringbuffer_writechar
|
|
.stabs "buf:P(0,16)",64,0,37,16
|
|
.stabs "data:P(2,2)",64,0,37,22
|
|
.global ringbuffer_writechar
|
|
.type ringbuffer_writechar, @function
|
|
ringbuffer_writechar:
|
|
.stabd 46,0,0
|
|
.stabn 68,0,38,.LM25-.LFBB6
|
|
.LM25:
|
|
.LFBB6:
|
|
push r16
|
|
push r17
|
|
push r29
|
|
push r28
|
|
push __tmp_reg__
|
|
in r28,__SP_L__
|
|
in r29,__SP_H__
|
|
/* prologue: function */
|
|
/* frame size = 1 */
|
|
movw r16,r24
|
|
.stabn 68,0,39,.LM26-.LFBB6
|
|
.LM26:
|
|
std Y+1,r22
|
|
call ringbuffer_canwrite
|
|
ldd r22,Y+1
|
|
sbiw r24,0
|
|
breq .L28
|
|
.stabn 68,0,41,.LM27-.LFBB6
|
|
.LM27:
|
|
movw r30,r16
|
|
ldd r24,Z+2
|
|
ldd r25,Z+3
|
|
add r30,r24
|
|
adc r31,r25
|
|
std Z+6,r22
|
|
.stabn 68,0,42,.LM28-.LFBB6
|
|
.LM28:
|
|
adiw r24,1
|
|
movw r30,r16
|
|
ldd r18,Z+4
|
|
ldd r19,Z+5
|
|
rjmp .L26
|
|
.L27:
|
|
.LBB30:
|
|
.LBB31:
|
|
.stabn 68,0,5,.LM29-.LFBB6
|
|
.LM29:
|
|
sub r24,r18
|
|
sbc r25,r19
|
|
.L26:
|
|
cp r24,r18
|
|
cpc r25,r19
|
|
brsh .L27
|
|
.LBE31:
|
|
.LBE30:
|
|
.stabn 68,0,42,.LM30-.LFBB6
|
|
.LM30:
|
|
movw r30,r16
|
|
std Z+3,r25
|
|
std Z+2,r24
|
|
.L28:
|
|
/* epilogue start */
|
|
.stabn 68,0,44,.LM31-.LFBB6
|
|
.LM31:
|
|
pop __tmp_reg__
|
|
pop r28
|
|
pop r29
|
|
pop r17
|
|
pop r16
|
|
ret
|
|
.size ringbuffer_writechar, .-ringbuffer_writechar
|
|
.stabs "num:r(2,4)",64,0,42,24
|
|
.stabn 192,0,0,.LBB30-.LFBB6
|
|
.stabn 224,0,0,.LBE30-.LFBB6
|
|
.Lscope6:
|
|
.stabs "",36,0,0,.Lscope6-.LFBB6
|
|
.stabd 78,0,0
|
|
.section .text.ringbuffer_peekchar,"ax",@progbits
|
|
.stabs "ringbuffer_peekchar:F(2,2)",36,0,47,ringbuffer_peekchar
|
|
.stabs "buf:P(0,16)",64,0,47,30
|
|
.stabs "index:P(2,4)",64,0,47,22
|
|
.global ringbuffer_peekchar
|
|
.type ringbuffer_peekchar, @function
|
|
ringbuffer_peekchar:
|
|
.stabd 46,0,0
|
|
.stabn 68,0,48,.LM32-.LFBB7
|
|
.LM32:
|
|
.LFBB7:
|
|
/* prologue: function */
|
|
/* frame size = 0 */
|
|
movw r30,r24
|
|
.stabn 68,0,49,.LM33-.LFBB7
|
|
.LM33:
|
|
ld r24,Z
|
|
ldd r25,Z+1
|
|
add r22,r24
|
|
adc r23,r25
|
|
ldd r24,Z+4
|
|
ldd r25,Z+5
|
|
rjmp .L30
|
|
.L31:
|
|
.LBB32:
|
|
.LBB33:
|
|
.stabn 68,0,5,.LM34-.LFBB7
|
|
.LM34:
|
|
sub r22,r24
|
|
sbc r23,r25
|
|
.L30:
|
|
cp r22,r24
|
|
cpc r23,r25
|
|
brsh .L31
|
|
add r30,r22
|
|
adc r31,r23
|
|
.LBE33:
|
|
.LBE32:
|
|
.stabn 68,0,50,.LM35-.LFBB7
|
|
.LM35:
|
|
ldd r24,Z+6
|
|
/* epilogue start */
|
|
ret
|
|
.size ringbuffer_peekchar, .-ringbuffer_peekchar
|
|
.stabs "num:r(2,4)",64,0,49,22
|
|
.stabn 192,0,0,.LBB32-.LFBB7
|
|
.stabn 224,0,0,.LBE32-.LFBB7
|
|
.Lscope7:
|
|
.stabs "",36,0,0,.Lscope7-.LFBB7
|
|
.stabd 78,0,0
|
|
.section .text.ringbuffer_readblock,"ax",@progbits
|
|
.stabs "ringbuffer_readblock:F(2,4)",36,0,52,ringbuffer_readblock
|
|
.stabs "buf:P(0,16)",64,0,52,30
|
|
.stabs "newbuf:P(0,17)=*(2,2)",64,0,52,22
|
|
.stabs "size:P(0,1)",64,0,52,20
|
|
.global ringbuffer_readblock
|
|
.type ringbuffer_readblock, @function
|
|
ringbuffer_readblock:
|
|
.stabd 46,0,0
|
|
.stabn 68,0,53,.LM36-.LFBB8
|
|
.LM36:
|
|
.LFBB8:
|
|
push r12
|
|
push r13
|
|
push r15
|
|
push r16
|
|
push r17
|
|
push r28
|
|
push r29
|
|
/* prologue: function */
|
|
/* frame size = 0 */
|
|
movw r30,r24
|
|
.LBB34:
|
|
.LBB35:
|
|
.stabn 68,0,18,.LM37-.LFBB8
|
|
.LM37:
|
|
ldd r18,Z+4
|
|
ldd r19,Z+5
|
|
ld r26,Z
|
|
ldd r27,Z+1
|
|
ldd r24,Z+2
|
|
ldd r25,Z+3
|
|
add r24,r18
|
|
adc r25,r19
|
|
add r24,r18
|
|
adc r25,r19
|
|
sub r24,r26
|
|
sbc r25,r27
|
|
rjmp .L34
|
|
.L35:
|
|
.LBB36:
|
|
.LBB37:
|
|
.stabn 68,0,5,.LM38-.LFBB8
|
|
.LM38:
|
|
sub r24,r18
|
|
sbc r25,r19
|
|
.L34:
|
|
cp r24,r18
|
|
cpc r25,r19
|
|
brsh .L35
|
|
.LBE37:
|
|
.LBE36:
|
|
.LBE35:
|
|
.LBE34:
|
|
.stabn 68,0,56,.LM39-.LFBB8
|
|
.LM39:
|
|
cp r24,r20
|
|
cpc r25,r21
|
|
brsh .L36
|
|
.stabn 68,0,57,.LM40-.LFBB8
|
|
.LM40:
|
|
movw r20,r24
|
|
.L36:
|
|
.stabn 68,0,58,.LM41-.LFBB8
|
|
.LM41:
|
|
cp r20,__zero_reg__
|
|
cpc r21,__zero_reg__
|
|
breq .L37
|
|
.stabn 68,0,60,.LM42-.LFBB8
|
|
.LM42:
|
|
adiw r26,6
|
|
add r26,r30
|
|
adc r27,r31
|
|
subi r18,lo8(-(6))
|
|
sbci r19,hi8(-(6))
|
|
add r18,r30
|
|
adc r19,r31
|
|
.stabn 68,0,63,.LM43-.LFBB8
|
|
.LM43:
|
|
ldi r24,lo8(6)
|
|
mov r12,r24
|
|
mov r13,__zero_reg__
|
|
add r12,r30
|
|
adc r13,r31
|
|
ldi r24,lo8(0)
|
|
ldi r25,hi8(0)
|
|
.stabn 68,0,60,.LM44-.LFBB8
|
|
.LM44:
|
|
rjmp .L38
|
|
.L40:
|
|
.stabn 68,0,62,.LM45-.LFBB8
|
|
.LM45:
|
|
cp r26,r18
|
|
cpc r27,r19
|
|
brlo .L39
|
|
movw r26,r12
|
|
.L39:
|
|
.stabn 68,0,64,.LM46-.LFBB8
|
|
.LM46:
|
|
movw r16,r22
|
|
add r16,r24
|
|
adc r17,r25
|
|
ld r15,X+
|
|
movw r28,r16
|
|
st Y,r15
|
|
.stabn 68,0,60,.LM47-.LFBB8
|
|
.LM47:
|
|
adiw r24,1
|
|
.L38:
|
|
cp r24,r20
|
|
cpc r25,r21
|
|
brlo .L40
|
|
.stabn 68,0,66,.LM48-.LFBB8
|
|
.LM48:
|
|
movw r24,r30
|
|
adiw r24,6
|
|
sub r26,r24
|
|
sbc r27,r25
|
|
std Z+1,r27
|
|
st Z,r26
|
|
.L37:
|
|
.stabn 68,0,69,.LM49-.LFBB8
|
|
.LM49:
|
|
movw r24,r20
|
|
/* epilogue start */
|
|
pop r29
|
|
pop r28
|
|
pop r17
|
|
pop r16
|
|
pop r15
|
|
pop r13
|
|
pop r12
|
|
ret
|
|
.size ringbuffer_readblock, .-ringbuffer_readblock
|
|
.stabs "nc:r(2,4)",64,0,54,24
|
|
.stabs "i:r(2,4)",64,0,54,24
|
|
.stabs "rp:r(0,17)",64,0,55,26
|
|
.stabs "ms:r(0,17)",64,0,55,18
|
|
.stabn 192,0,0,.LFBB8-.LFBB8
|
|
.stabn 224,0,0,.Lscope8-.LFBB8
|
|
.Lscope8:
|
|
.stabs "",36,0,0,.Lscope8-.LFBB8
|
|
.stabd 78,0,0
|
|
.section .text.ringbuffer_writeblock,"ax",@progbits
|
|
.stabs "ringbuffer_writeblock:F(2,4)",36,0,71,ringbuffer_writeblock
|
|
.stabs "buf:P(0,16)",64,0,71,28
|
|
.stabs "data:P(0,17)",64,0,71,16
|
|
.stabs "size:P(0,1)",64,0,71,14
|
|
.global ringbuffer_writeblock
|
|
.type ringbuffer_writeblock, @function
|
|
ringbuffer_writeblock:
|
|
.stabd 46,0,0
|
|
.stabn 68,0,72,.LM50-.LFBB9
|
|
.LM50:
|
|
.LFBB9:
|
|
push r14
|
|
push r15
|
|
push r16
|
|
push r17
|
|
push r28
|
|
push r29
|
|
/* prologue: function */
|
|
/* frame size = 0 */
|
|
movw r28,r24
|
|
movw r16,r22
|
|
movw r14,r20
|
|
.stabn 68,0,76,.LM51-.LFBB9
|
|
.LM51:
|
|
call ringbuffer_canwrite
|
|
cp r24,r14
|
|
cpc r25,r15
|
|
brsh .L43
|
|
.stabn 68,0,77,.LM52-.LFBB9
|
|
.LM52:
|
|
movw r14,r24
|
|
.L43:
|
|
.stabn 68,0,78,.LM53-.LFBB9
|
|
.LM53:
|
|
cp r14,__zero_reg__
|
|
cpc r15,__zero_reg__
|
|
breq .L44
|
|
.stabn 68,0,80,.LM54-.LFBB9
|
|
.LM54:
|
|
ldd r30,Y+2
|
|
ldd r31,Y+3
|
|
adiw r30,6
|
|
add r30,r28
|
|
adc r31,r29
|
|
ldd r24,Y+4
|
|
ldd r25,Y+5
|
|
adiw r24,6
|
|
add r24,r28
|
|
adc r25,r29
|
|
.stabn 68,0,83,.LM55-.LFBB9
|
|
.LM55:
|
|
movw r20,r28
|
|
subi r20,lo8(-(6))
|
|
sbci r21,hi8(-(6))
|
|
ldi r18,lo8(0)
|
|
ldi r19,hi8(0)
|
|
.stabn 68,0,80,.LM56-.LFBB9
|
|
.LM56:
|
|
rjmp .L45
|
|
.L47:
|
|
.stabn 68,0,82,.LM57-.LFBB9
|
|
.LM57:
|
|
cp r30,r24
|
|
cpc r31,r25
|
|
brlo .L46
|
|
movw r30,r20
|
|
.L46:
|
|
.stabn 68,0,84,.LM58-.LFBB9
|
|
.LM58:
|
|
movw r26,r16
|
|
add r26,r18
|
|
adc r27,r19
|
|
ld r22,X
|
|
st Z+,r22
|
|
.stabn 68,0,80,.LM59-.LFBB9
|
|
.LM59:
|
|
subi r18,lo8(-(1))
|
|
sbci r19,hi8(-(1))
|
|
.L45:
|
|
cp r18,r14
|
|
cpc r19,r15
|
|
brlo .L47
|
|
.stabn 68,0,86,.LM60-.LFBB9
|
|
.LM60:
|
|
movw r24,r28
|
|
adiw r24,6
|
|
sub r30,r24
|
|
sbc r31,r25
|
|
std Y+3,r31
|
|
std Y+2,r30
|
|
.L44:
|
|
.stabn 68,0,89,.LM61-.LFBB9
|
|
.LM61:
|
|
movw r24,r14
|
|
/* epilogue start */
|
|
pop r29
|
|
pop r28
|
|
pop r17
|
|
pop r16
|
|
pop r15
|
|
pop r14
|
|
ret
|
|
.size ringbuffer_writeblock, .-ringbuffer_writeblock
|
|
.stabs "nc:r(2,4)",64,0,73,24
|
|
.stabs "i:r(2,4)",64,0,73,18
|
|
.stabs "wp:r(0,17)",64,0,74,30
|
|
.stabs "ms:r(0,17)",64,0,74,24
|
|
.stabn 192,0,0,.LFBB9-.LFBB9
|
|
.stabn 224,0,0,.Lscope9-.LFBB9
|
|
.Lscope9:
|
|
.stabs "",36,0,0,.Lscope9-.LFBB9
|
|
.stabd 78,0,0
|
|
.text
|
|
.stabs "",100,0,0,.Letext0
|
|
.Letext0:
|