aboutsummaryrefslogtreecommitdiff
path: root/libjava
diff options
context:
space:
mode:
authorXi Ruoyao <xry111@xry111.site>2025-03-01 11:46:46 +0800
committerLulu Cheng <chenglulu@loongson.cn>2025-08-18 09:09:35 +0800
commit2ac0e38a3099b6422199553ae29b8b333bb9f5e7 (patch)
tree56b4b1abeab5ddd3938212d5677c6e01e7b102d6 /libjava
parent9b55cd0405609474aab6fdd0c621fd738af5800a (diff)
downloadgcc-2ac0e38a3099b6422199553ae29b8b333bb9f5e7.zip
gcc-2ac0e38a3099b6422199553ae29b8b333bb9f5e7.tar.gz
gcc-2ac0e38a3099b6422199553ae29b8b333bb9f5e7.tar.bz2
LoongArch: Remove unneeded "b 3f" instruction after LL-SC loops
This instruction is used to skip an redundant barrier if -mno-ld-seq-sa or the memory model requires a barrier on failure. But with -mld-seq-sa and other memory models the barrier may be nonexisting at all, and we should remove the "b 3f" instruction as well. The implementation uses a new operand modifier "%T" to output a comment marker if the operand is a memory order for which the barrier won't be generated. "%T", and also "%t", are not really used before and the code for them in loongarch_print_operand_reloc is just some MIPS legacy. gcc/ChangeLog: * config/loongarch/loongarch.cc (loongarch_print_operand_reloc): Make "%T" output a comment marker if the operand is a memory order for which the barrier won't be generated; remove "%t". * config/loongarch/sync.md (atomic_cas_value_strong<mode>): Add %T before "b 3f". (atomic_cas_value_cmp_and_7_<mode>): Likewise.
Diffstat (limited to 'libjava')
0 files changed, 0 insertions, 0 deletions