.text ;;; Use SREG __start1: set __vec1_start: __gcc_isr 1 foo = __gcc_isr.n_pushed cpi r16,1 __gcc_isr 2 __gcc_isr 0,r0 clt __vec1_end: __data1: ldi r16, foo - 2 .word (__vec1_end - __vec1_start) / 2 ;;; Nothing used. __start2: set __vec2_start: __gcc_isr 1 foo = __gcc_isr.n_pushed ldi r30, 1 lds r31, 0 sts 0, r31 movw r2, r4 swap r17 __gcc_isr 2 reti __gcc_isr 2 cpse r7, r8 sei cli in r10, 0x3f out 0x3f, r10 reti __gcc_isr 0,r0 clt __vec2_end: __data2: ldi r16, foo - 0 .word (__vec2_end - __vec2_start) / 2 ;;; Use SREG, ZERO and R24 __start3: set __vec3_start: __gcc_isr 1 foo = __gcc_isr.n_pushed __gcc_isr 2 reti __gcc_isr 2 reti inc r1 __gcc_isr 0,r24 clt __vec3_end: __data3: ldi r16, foo - 3 .word (__vec3_end - __vec3_start) / 2 ;;; Use SREG, ZERO, TMP and R24 __start4: set __vec4_start: __gcc_isr 1 foo = __gcc_isr.n_pushed __gcc_isr 2 reti __gcc_isr 2 reti mul 16, 17 __gcc_isr 0,r24 clt __vec4_end: __data4: ldi r16, foo - 4 .word (__vec4_end - __vec4_start) / 2 ;;; Use TMP __start5: set __vec5_start: __gcc_isr 1 lpm foo = __gcc_isr.n_pushed __gcc_isr 2 reti __gcc_isr 2 reti __gcc_isr 0,r0 clt __vec5_end: __data5: ldi r16, foo - 1 .word (__vec5_end - __vec5_start) / 2 ;;; Use SREG, R26 __start6: set __vec6_start: __gcc_isr 1 foo = __gcc_isr.n_pushed __gcc_isr 2 reti __gcc_isr 2 reti clc __gcc_isr 0,r26 clt __vec6_end: __data6: ldi r16, foo - 2 .word (__vec6_end - __vec6_start) / 2