Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft Extension: Zalasr #141

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open

Draft Extension: Zalasr #141

wants to merge 1 commit into from

Conversation

a4lg
Copy link
Owner

@a4lg a4lg commented Oct 22, 2023

[DO NOT MERGE]
Until this extension is frozen/ratified and final version number is
determined, this patch should not be merged upstream. This commit uses
unratified version 0.1 as in the documentation file name (instead of
possible 1.0 after ratification).

The 'Zalasr' extension provides atomic load-acquire / store-release
instructions.  This commit adds instruction and extension support for
this extension.

This is based on the draft specification:
<riscv/riscv-zalasr@f250625>

bfd/ChangeLog:

	* elfxx-riscv.c
	(riscv_supported_std_z_ext): Add 'Zalasr' to the supported list.
	(riscv_multi_subset_supports, riscv_multi_subset_supports_ext):
	Add handling for new instruction class.

gas/ChangeLog:

	* testsuite/gas/riscv/zalasr.s: New test.
	* testsuite/gas/riscv/zalasr.d: Likewise.
	* testsuite/gas/riscv/zalasr-64.s: New test.
	* testsuite/gas/riscv/zalasr-64.d: Likewise.

include/ChangeLog:

	* opcode/riscv-opc.h (MATCH_LB_AQ, MASK_LB_AQ, MATCH_LD_AQ,
	MASK_LD_AQ, MATCH_LH_AQ, MASK_LH_AQ, MATCH_LW_AQ, MASK_LW_AQ,
	MATCH_SB_RL, MASK_SB_RL, MATCH_SD_RL, MASK_SD_RL, MATCH_SH_RL,
	MASK_SH_RL, MATCH_SW_RL, MASK_SW_RL): New.
	* opcode/riscv.h (enum riscv_insn_class): Add new instruction
	class INSN_CLASS_ZALASR.

opcodes/ChangeLog:

	* riscv-opc.c (riscv_opcodes): Add instructions from
	the 'Zalasr' extension.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant