bug-binutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug gas/25539] New: fix-loongson3-llsc cannot produce `sync` when there


From: syq at debian dot org
Subject: [Bug gas/25539] New: fix-loongson3-llsc cannot produce `sync` when there are multi label at the same address
Date: Thu, 13 Feb 2020 03:11:50 +0000

https://sourceware.org/bugzilla/show_bug.cgi?id=25539

            Bug ID: 25539
           Summary: fix-loongson3-llsc cannot produce `sync` when there
                    are multi label at the same address
           Product: binutils
           Version: 2.35 (HEAD)
            Status: NEW
          Severity: normal
          Priority: P2
         Component: gas
          Assignee: unassigned at sourceware dot org
          Reporter: syq at debian dot org
  Target Milestone: ---

Created attachment 12292
  --> https://sourceware.org/bugzilla/attachment.cgi?id=12292&action=edit
look back for all labels with the same value and compare them with the target

.set    noat
        sync
1:
        lld     $5,0($2)
        bne     $5,$0,2f
        move    $1,$3
        scd     $1,0($2)
        nop
        sync
2:
.LVL1085 = .
        .set    at
        lw      $2,8($fp)

In this example, since `bne` between lld/scd may jump to lw,
so if fix-loongson3-llsc option is enabled, a `sync` need to be insert before
lw.

`bne` can only determine that it will jump to `2:`, but 
    S_GET_NAME( ... lw ...)
will give the name of lable `.LVL1085 = .`.
It will make no `sync` insert here.


In this patch, we can look back for all labels with the same value
(S_GET_VALUE),
and compare them with the target.

-- 
You are receiving this mail because:
You are on the CC list for the bug.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]