[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.
- [Bug gas/25539] New: fix-loongson3-llsc cannot produce `sync` when there are multi label at the same address,
syq at debian dot org <=