https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95818

--- Comment #2 from Ferruh YIGIT <ferruh.yigit at intel dot com> ---
.i output [1] and .s output [2] below, please let me know if the request was
something else.

[1]
int
iavf_dev_link_update(struct rte_eth_dev *dev,
      __attribute__((__unused__)) int wait_to_complete)
{
 struct rte_eth_link new_link;
 struct iavf_info *vf = (&((struct iavf_adapter *)dev->data->dev_private)->vf);




 switch (vf->link_speed) {
 case 10:
  new_link.link_speed = 10;
  break;
 case 100:
  new_link.link_speed = 100;
  break;
 case 1000:
  new_link.link_speed = 1000;
  break;
 case 10000:
  new_link.link_speed = 10000;
  break;
 case 20000:
  new_link.link_speed = 20000;
  break;
 case 25000:
  new_link.link_speed = 25000;
  break;
 case 40000:
  new_link.link_speed = 40000;
  break;
 case 50000:
  new_link.link_speed = 50000;
  break;
 case 100000:
  new_link.link_speed = 100000;
  break;
 default:
  new_link.link_speed = 0;
  break;
 }

 new_link.link_duplex = 1;
 new_link.link_status = vf->link_up ? 1 :
          0;
 new_link.link_autoneg = !(dev->data->dev_conf.link_speeds &
    (1 << 0));

 if (rte_atomic64_cmpset((uint64_t *)&dev->data->dev_link,
    *(uint64_t *)&dev->data->dev_link,
    *(uint64_t *)&new_link) == 0)
  return -1;

 return 0;
}



[2]
        .globl  iavf_dev_link_update
        .type   iavf_dev_link_update, @function iavf_dev_link_update:
.LFB6034:
        .cfi_startproc
        movq    24(%rdi), %rcx
        movq    96(%rcx), %rsi
        movl    476(%rsi), %edx
        cmpl    $20000, %edx
        je      .L5
        jbe     .L28
        cmpl    $50000, %edx
        je      .L5
        jbe     .L29
        cmpl    $100000, %edx
        movl    $0, %eax
        cmovne  %rax, %rdx
.L5:
        movl    112(%rcx), %eax
        movzbl  473(%rsi), %esi
        notl    %eax
        andl    $1, %eax
        sall    $2, %esi
        leal    1(%rax,%rax), %eax
        orl     %esi, %eax
        andl    $7, %eax
        salq    $32, %rax
        orq     %rax, %rdx
        movq    104(%rcx), %rax
#APP
# 33 "/root/development/dpdk-next-net/build/include/rte_atomic_64.h" 1
        lock ; cmpxchgq %rdx, 104(%rcx);sete %al;
# 0 "" 2
#NO_APP
        cmpb    $1, %al
        sbbl    %eax, %eax
        ret
        .p2align 4,,10
        .p2align 3
.L29:
        cmpl    $25000, %edx
        je      .L5
        cmpl    $40000, %edx
        je      .L5
.L11:
        xorl    %edx, %edx
        jmp     .L5
        .p2align 4,,10
        .p2align 3
.L28:
        cmpl    $1000, %edx
        je      .L5
        jbe     .L30
        cmpl    $10000, %edx
        movl    $0, %eax
        cmovne  %rax, %rdx
        jmp     .L5
        .p2align 4,,10
        .p2align 3
.L30:
        cmpl    $10, %edx
        je      .L5
        cmpl    $100, %edx
        je      .L5
        jmp     .L11
        .cfi_endproc
.LFE6034:
        .size   iavf_dev_link_update, .-iavf_dev_link_update
        .p2align 4

Reply via email to