https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107767
--- Comment #1 from Коренберг Марк <socketpair at gmail dot com> --- See assembler output for firewall2(). It's not -Os optimized (compare to firewall(), which is ok) ``` firewall: movw 64(%rdi), %ax cmpb $17, (%rdi) sete %cl leal -15(%rax), %edx testw $-9, %dx movb $1, %dl sete %sil cmpw $47, %ax ja .L2 movabsq $-180319906955279, %rdx btq %rax, %rdx setc %dl .L2: movl %edx, %eax xorl $1, %eax orl %esi, %eax andl %ecx, %eax movzbl %al, %eax ret firewall2: movw 64(%rdi), %ax xorl %edx, %edx decl %eax cmpw $46, %ax ja .L5 movzwl %ax, %eax movsbl CSWTCH.2(%rax), %edx .L5: movl %edx, %eax ret CSWTCH.2: .byte 1 .byte 1 .byte 1 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 1 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 1 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 1 .byte 0 .byte 0 .byte 1 .byte 0 .byte 1 ```