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

Reply via email to