From af989297316ec7628f1ddffc621932805a464b1d Mon Sep 17 00:00:00 2001 From: YunQiang Su Date: Thu, 23 Mar 2023 18:49:23 +0800 Subject: [PATCH] MIPS: fix loongson3 llsc workaround -mfix-looongson3-llsc may add sync instructions not needed on some asm code with lots of debug info. PR: 30153 * gas/config/tc-mips.c(fix_loongson3_llsc): clear logistic. --- gas/config/tc-mips.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c index e911aaa904a..8a970ceada2 100644 --- a/gas/config/tc-mips.c +++ b/gas/config/tc-mips.c @@ -6942,10 +6942,6 @@ fix_loongson3_llsc (struct mips_cl_insn * ip) unsigned long lookback = ARRAY_SIZE (history); for (i = 0; i < lookback; i++) { - if (streq (history[i].insn_mo->name, "ll") - || streq (history[i].insn_mo->name, "lld")) - break; - if (streq (history[i].insn_mo->name, "sc") || streq (history[i].insn_mo->name, "scd")) { @@ -6953,8 +6949,8 @@ fix_loongson3_llsc (struct mips_cl_insn * ip) for (j = i + 1; j < lookback; j++) { - if (streq (history[i].insn_mo->name, "ll") - || streq (history[i].insn_mo->name, "lld")) + if (streq (history[j].insn_mo->name, "ll") + || streq (history[j].insn_mo->name, "lld")) break; if (delayed_branch_p (&history[j])) @@ -6993,7 +6989,7 @@ fix_loongson3_llsc (struct mips_cl_insn * ip) for (j = i + 1; j < lookback; j++) { if (streq (history[j].insn_mo->name, "ll") - || streq (history[i].insn_mo->name, "lld")) + || streq (history[j].insn_mo->name, "lld")) break; } -- 2.30.2