Correct the format...

 test2:
.LFB0:
        .cfi_startproc
        xorl    %edx, %edx
        cmpl    $3, (%rdi)
        jle     .L1
        movl    16(%rdi), %eax
        cmpl    $1, %eax
        je      .L4
        subl    $2, %eax
        cmpl    $4, %eax
        ja      .L1
        movl    CSWTCH.1(,%rax,4), %edx
.L1:
        movl    %edx, %eax
        ret
        .p2align 4,,10
        .p2align 3
.L4:
        movl    $12, %edx
        jmp     .L1
        .cfi_endproc
.LFE0:
        .size   test2, .-test2
        .section        .rodata
        .align 16
        .type   CSWTCH.1, @object
        .size   CSWTCH.1, 20
CSWTCH.1:
        .long   27
        .long   38
        .long   18
        .long   58
        .long   68



With the patch attatched:


 test2:
.LFB0:
        .cfi_startproc
        xorl    %edx, %edx
        cmpl    $3, (%rdi)
        jle     .L1
        movl    16(%rdi), %eax
        subl    $1, %eax
        cmpl    $5, %eax
        jbe     .L6
.L1:
        movl    %edx, %eax
        ret
        .p2align 4,,10
        .p2align 3
.L6:
        movl    CSWTCH.1(,%rax,4), %edx
        movl    %edx, %eax
        ret
        .cfi_endproc
.LFE0:
        .size   test2, .-test2
        .section        .rodata
        .align 16
        .type   CSWTCH.1, @object
        .size   CSWTCH.1, 24
CSWTCH.1:
        .long   12
        .long   27
        .long   38
        .long   18
        .long   58
        .long   68




On 2022/6/21 11:05, xionghuluo(罗雄虎) via Gcc-patches wrote:
Current GCC generates:


 test2:
.LFB0:
        .cfi_startproc
        xorl    %edx, %edx
        cmpl    $3, (%rdi)
        jle     .L1
        movl    16(%rdi), %eax
        cmpl    $1, %eax
        je      .L4
        subl    $2, %eax
        cmpl    $4, %eax
        ja      .L1
        movl    CSWTCH.1(,%rax,4), %edx
.L1:
        movl    %edx, %eax
        ret
        .p2align 4,,10
        .p2align 3
.L4:
        movl    $12, %edx
        jmp     .L1
        .cfi_endproc
.LFE0:
        .size   test2, .-test2
        .section        .rodata
        .align 16
        .type   CSWTCH.1, @object
        .size   CSWTCH.1, 20
CSWTCH.1:
        .long   27
        .long   38
        .long   18
        .long   58
        .long   68




With the patch attatched:


 test2:
.LFB0:
        .cfi_startproc
        xorl    %edx, %edx
        cmpl    $3, (%rdi)
        jle     .L1
        movl    16(%rdi), %eax
        subl    $1, %eax
        cmpl    $5, %eax
        jbe     .L6
.L1:
        movl    %edx, %eax
        ret
        .p2align 4,,10
        .p2align 3
.L6:
        movl    CSWTCH.1(,%rax,4), %edx
        movl    %edx, %eax
        ret
        .cfi_endproc
.LFE0:
        .size   test2, .-test2
        .section        .rodata
        .align 16
        .type   CSWTCH.1, @object
        .size   CSWTCH.1, 24
CSWTCH.1:
        .long   12
        .long   27
        .long   38
        .long   18
        .long   58
        .long   68


Bootstrap and regression tested pass on x86_64-linux-gnu, OK for master?

Reply via email to