diff options
author | YunQiang Su <yunqiang.su@cipunited.com> | 2023-03-23 18:49:23 +0800 |
---|---|---|
committer | YunQiang Su <yunqiang.su@cipunited.com> | 2023-04-23 14:50:18 +0800 |
commit | af989297316ec7628f1ddffc621932805a464b1d (patch) | |
tree | e7f253ed61a3f2d6cd12f5b82176d9ed9c753be7 | |
parent | 9171de358f230b64646bbb525a74e5f8e3dbe0dc (diff) | |
download | gdb-af989297316ec7628f1ddffc621932805a464b1d.zip gdb-af989297316ec7628f1ddffc621932805a464b1d.tar.gz gdb-af989297316ec7628f1ddffc621932805a464b1d.tar.bz2 |
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.
-rw-r--r-- | gas/config/tc-mips.c | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c index e911aaa..8a970ce 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; } |