You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[DO NOT MERGE]
Until the 'Zcmop' extension is frozen/ratified and final version number is
determined, this patch should not be merged upstream. This commit uses
version 0.1 as a placeholder.
This commit adds support for the compressed "May Be Operations (MOP)"
(Zcmop) extension which adds 8 compressed MOP instructions.
By default, they are the same as NOP. However, if certain feature is
supported (and optionally enabled), it is allowed to alter
architectural state unlike HINT instructions.
This commit is based on the TENTATIVE specification:
<riscv/riscv-cfi#131>
bfd/ChangeLog:
* elfxx-riscv.c (riscv_implicit_subsets): Add 'Zcmop' -> 'Zca'
implication. (riscv_supported_std_z_ext): Add 'Zcmop'.
(riscv_multi_subset_supports): Support new instruction class.
(riscv_multi_subset_supports_ext): Likewise.
gas/ChangeLog:
* testsuite/gas/riscv/zcmop.s: New test for 'Zcmop'.
* testsuite/gas/riscv/zcmop.d: Likewise.
include/ChangeLog:
* opcode/riscv-opc.h (
MATCH_C_MOP_0, MASK_C_MOP_0, MATCH_C_MOP_1, MASK_C_MOP_1,
MATCH_C_MOP_2, MASK_C_MOP_2, MATCH_C_MOP_3, MASK_C_MOP_3,
MATCH_C_MOP_4, MASK_C_MOP_4, MATCH_C_MOP_5, MASK_C_MOP_5,
MATCH_C_MOP_6, MASK_C_MOP_6, MATCH_C_MOP_7, MASK_C_MOP_7): New.
* opcode/riscv.h (enum riscv_insn_class): Add new instruction
class INSN_CLASS_ZCMOP.
opcodes/ChangeLog:
* riscv-opc.c (riscv_opcodes): Add new "may be" operations from
the 'Zcmop' extension near the bottom.
0 commit comments