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.