aboutsummaryrefslogtreecommitdiff
path: root/bfd
diff options
context:
space:
mode:
authorPhilipp Tomsich <prt@gnu.org>2021-01-07 15:53:25 +0800
committerNelson Chu <nelson.chu@sifive.com>2021-01-07 16:45:43 +0800
commitaa881ecde48c7a0224b92e2cfa43b37ee9ec9fa2 (patch)
tree1b0e0814c4a7ed9567d8d49aad19de327ea78682 /bfd
parent4d4490b8d772321e9634541b81be25095a5a06ef (diff)
downloadbinutils-aa881ecde48c7a0224b92e2cfa43b37ee9ec9fa2.zip
binutils-aa881ecde48c7a0224b92e2cfa43b37ee9ec9fa2.tar.gz
binutils-aa881ecde48c7a0224b92e2cfa43b37ee9ec9fa2.tar.bz2
RISC-V: Add pause hint instruction.
Add support for the pause hint instruction, as specified in the Zihintpause extension. The pause instruction is encoded as a special form of a memory fence (which is available as part of the base instruction set). The chosen encoding does not mandate any particular memory ordering and therefore is a true hint. bfd/ * elfxx-riscv.c (riscv_std_z_ext_strtab): Added zihintpause. gas/ * config/tc-riscv.c (riscv_multi_subset_supports): Added INSN_CLASS_ZIHINTPAUSE. * testsuite/gas/riscv/pause.d: New testcase. Adding coverage for the pause hint instruction. * testsuite/gas/riscv/pause.s: Likewise. include/ * opcode/riscv-opc.h: Added MATCH_PAUSE, MASK_PAUSE and DECLARE_INSN for pause hint instruction. * opcode/riscv.h (enum riscv_insn_class): Added INSN_CLASS_ZIHINTPAUSE. opcodes/ * riscv-opc.c (riscv_opcodes): Add pause hint instruction.
Diffstat (limited to 'bfd')
-rw-r--r--bfd/ChangeLog4
-rw-r--r--bfd/elfxx-riscv.c2
2 files changed, 5 insertions, 1 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 4843f0a..75fb3a5 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,7 @@
+2021-01-07 Philipp Tomsich <prt@gnu.org>
+
+ * elfxx-riscv.c (riscv_std_z_ext_strtab): Added zihintpause.
+
2021-01-07 Claire Xenia Wolf <claire@symbioticeda.com>
Jim Wilson <jimw@sifive.com>
Andrew Waterman <andrew@sifive.com>
diff --git a/bfd/elfxx-riscv.c b/bfd/elfxx-riscv.c
index f40a923..42aeed7 100644
--- a/bfd/elfxx-riscv.c
+++ b/bfd/elfxx-riscv.c
@@ -1597,7 +1597,7 @@ riscv_parse_prefixed_ext (riscv_parse_subset_t *rps,
static const char * const riscv_std_z_ext_strtab[] =
{
- "zicsr", "zifencei", "zba", "zbb", "zbc", NULL
+ "zicsr", "zifencei", "zihintpause", "zba", "zbb", "zbc", NULL
};
static const char * const riscv_std_s_ext_strtab[] =