<feed xmlns='http://www.w3.org/2005/Atom'>
<title>gcc.git/gcc/config/aarch64/aarch64.cc, branch master</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/gcc.git/'/>
<entry>
<title>aarch64: Extract aarch64_indirect_branch_asm for sibcall codegen</title>
<updated>2025-11-22T03:27:24+00:00</updated>
<author>
<name>Kees Cook</name>
<email>kees@kernel.org</email>
</author>
<published>2025-11-21T18:24:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/gcc.git/commit/?id=59a5fecfb260456dd60be687491717f3dbdb354f'/>
<id>59a5fecfb260456dd60be687491717f3dbdb354f</id>
<content type='text'>
Extract indirect branch assembly generation into a new function
aarch64_indirect_branch_asm, paralleling the existing
aarch64_indirect_call_asm function.  Replace the open-coded versions in
the sibcall patterns (*sibcall_insn and *sibcall_value_insn) so there
is a common helper for indirect branches where things like SLS mitigation
need to be handled.

gcc/ChangeLog:

	* config/aarch64/aarch64-protos.h (aarch64_indirect_branch_asm):
	Declare.
	* config/aarch64/aarch64.cc (aarch64_indirect_branch_asm): New
	function to generate indirect branch with SLS barrier.
	* config/aarch64/aarch64.md (*sibcall_insn): Use
	aarch64_indirect_branch_asm.
	(*sibcall_value_insn): Likewise.

Signed-off-by: Kees Cook &lt;kees@kernel.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Extract indirect branch assembly generation into a new function
aarch64_indirect_branch_asm, paralleling the existing
aarch64_indirect_call_asm function.  Replace the open-coded versions in
the sibcall patterns (*sibcall_insn and *sibcall_value_insn) so there
is a common helper for indirect branches where things like SLS mitigation
need to be handled.

gcc/ChangeLog:

	* config/aarch64/aarch64-protos.h (aarch64_indirect_branch_asm):
	Declare.
	* config/aarch64/aarch64.cc (aarch64_indirect_branch_asm): New
	function to generate indirect branch with SLS barrier.
	* config/aarch64/aarch64.md (*sibcall_insn): Use
	aarch64_indirect_branch_asm.
	(*sibcall_value_insn): Likewise.

Signed-off-by: Kees Cook &lt;kees@kernel.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>aarch64: Fix ICE when laying out arguments of size 0 [PR 122763]</title>
<updated>2025-11-19T17:02:47+00:00</updated>
<author>
<name>Alfie Richards</name>
<email>alfie.richards@arm.com</email>
</author>
<published>2025-11-19T11:47:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/gcc.git/commit/?id=d56eb2fbcb5a65ca738534fab640e36b9061b0b2'/>
<id>d56eb2fbcb5a65ca738534fab640e36b9061b0b2</id>
<content type='text'>
When laying out arguments of size 0, previously would return the next argument
passing register, without checking that there was a next one.

This was fine for AAPCS as it used R0-R7 for argument passing and R9 would be
occasionally be assigned, but never used.

However, with the introduction of preserve_none PCS there is no obvious "next
register" to use as aaaa dummy value, and so when laying out in the
"next register" when there were no more, an assert triggered an ICE.

This patch fixes this ICE by instead using NULL_RTX for arguments of size 0.

	PR target/122763

gcc/ChangeLog:

	* config/aarch64/aarch64.cc (aarch64_layout_arg): Return NULL_RTX for
	arguments of size 0.
	(aarch64_function_arg_advance): Remove assert.

gcc/testsuite/ChangeLog:

	* gcc.target/aarch64/pr122763.c: New test.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When laying out arguments of size 0, previously would return the next argument
passing register, without checking that there was a next one.

This was fine for AAPCS as it used R0-R7 for argument passing and R9 would be
occasionally be assigned, but never used.

However, with the introduction of preserve_none PCS there is no obvious "next
register" to use as aaaa dummy value, and so when laying out in the
"next register" when there were no more, an assert triggered an ICE.

This patch fixes this ICE by instead using NULL_RTX for arguments of size 0.

	PR target/122763

gcc/ChangeLog:

	* config/aarch64/aarch64.cc (aarch64_layout_arg): Return NULL_RTX for
	arguments of size 0.
	(aarch64_function_arg_advance): Remove assert.

gcc/testsuite/ChangeLog:

	* gcc.target/aarch64/pr122763.c: New test.
</pre>
</div>
</content>
</entry>
<entry>
<title>AArch64: Support C/C++ operations on svbool_t</title>
<updated>2025-11-10T16:09:28+00:00</updated>
<author>
<name>Tejas Belagod</name>
<email>tejas.belagod@arm.com</email>
</author>
<published>2025-01-06T05:53:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/gcc.git/commit/?id=fc604ad3aef53e144c6d2b8557cb14b93d5e6492'/>
<id>fc604ad3aef53e144c6d2b8557cb14b93d5e6492</id>
<content type='text'>
Support a subset of C/C++ operations (bitwise, conditional etc.) on svbool_t.

gcc/c-family/ChangeLog:

	* c-common.cc (c_build_vec_convert): Support vector boolean
	types for __builtin_convertvector ().

gcc/c/ChangeLog:

	* c-typeck.cc (build_binary_op): Support vector boolean types.

gcc/cp/ChangeLog:

	* typeck.cc (cp_build_binary_op): Likewise.
	* call.cc (build_conditional_expr): Support vector booleans.
	* cvt.cc (ocp_convert): Call target hook to resolve conversion
	between standard and non-standard booleans.

gcc/ChangeLog:

	* config/aarch64/aarch64-sve-builtins.cc (register_builtin_types): Make
	SVE vector boolean type equivalent to GNU vectors.
	* config/aarch64/aarch64-sve.md (extend&lt;vpred&gt;&lt;mode&gt;2,
	zero_extend&lt;vpred&gt;&lt;mode&gt;2, trunc&lt;mode&gt;&lt;vpred&gt;2, vec_cmp&lt;mode&gt;&lt;mode&gt;):
	New patterns to support additional operations on predicate modes.
	* config/aarch64/aarch64.cc (aarch64_valid_vector_boolean_op): New.
	(aarch64_invalid_unary_op): Consider vector bool types.
	(aarch64_invalid_binary_op): Likewise.
	(aarch64_convert_to_type): Define target hook and handle standard to
	non-standard bool conversion.

gcc/testsuite/ChangeLog:

	* gcc.target/aarch64/sve/acle/general/cops_bool.c: New.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Support a subset of C/C++ operations (bitwise, conditional etc.) on svbool_t.

gcc/c-family/ChangeLog:

	* c-common.cc (c_build_vec_convert): Support vector boolean
	types for __builtin_convertvector ().

gcc/c/ChangeLog:

	* c-typeck.cc (build_binary_op): Support vector boolean types.

gcc/cp/ChangeLog:

	* typeck.cc (cp_build_binary_op): Likewise.
	* call.cc (build_conditional_expr): Support vector booleans.
	* cvt.cc (ocp_convert): Call target hook to resolve conversion
	between standard and non-standard booleans.

gcc/ChangeLog:

	* config/aarch64/aarch64-sve-builtins.cc (register_builtin_types): Make
	SVE vector boolean type equivalent to GNU vectors.
	* config/aarch64/aarch64-sve.md (extend&lt;vpred&gt;&lt;mode&gt;2,
	zero_extend&lt;vpred&gt;&lt;mode&gt;2, trunc&lt;mode&gt;&lt;vpred&gt;2, vec_cmp&lt;mode&gt;&lt;mode&gt;):
	New patterns to support additional operations on predicate modes.
	* config/aarch64/aarch64.cc (aarch64_valid_vector_boolean_op): New.
	(aarch64_invalid_unary_op): Consider vector bool types.
	(aarch64_invalid_binary_op): Likewise.
	(aarch64_convert_to_type): Define target hook and handle standard to
	non-standard bool conversion.

gcc/testsuite/ChangeLog:

	* gcc.target/aarch64/sve/acle/general/cops_bool.c: New.
</pre>
</div>
</content>
</entry>
<entry>
<title>aarch64: Add support for preserve_none function attribute [PR target/118328]</title>
<updated>2025-11-07T10:20:55+00:00</updated>
<author>
<name>Alfie Richards</name>
<email>alfie.richards@arm.com</email>
</author>
<published>2025-10-15T13:34:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/gcc.git/commit/?id=7197d8062fddc26c05c0da0bbfcd4128de788e34'/>
<id>7197d8062fddc26c05c0da0bbfcd4128de788e34</id>
<content type='text'>
When applied to a function preserve_none changes the procedure call standard
such that all registers except stack pointer, frame register, and link register
are caller saved. Additionally, it changes the argument passing registers.

	PR target/118328

gcc/ChangeLog:

	* config/aarch64/aarch64.cc (handle_aarch64_vector_pcs_attribute):
	Add handling for ARM_PCS_PRESERVE_NONE.
	(aarch64_pcs_exclusions): New definition.
	(aarch64_gnu_attributes): Add entry for preserve_none and add
	aarch64_pcs_exclusions to aarch64_vector_pcs entry.
	(aarch64_preserve_none_abi): New function.
	(aarch64_fntype_abi): Add handling for preserve_none.
	(aarch64_reg_save_mode): Add handling for ARM_PCS_PRESERVE_NONE.
	(aarch64_hard_regno_call_part_clobbered): Add handling for
	ARM_PCS_PRESERVE_NONE.
	(num_pcs_arg_regs): New helper function.
	(get_pcs_arg_reg): New helper function.
	(aarch64_function_ok_for_sibcall): Add handling for ARM_PCS_PRESERVE_NONE.
	(aarch64_layout_arg): Add preserve_none argument lauout..
	(function_arg_preserve_none_regno_p): New helper function.
	(aarch64_function_arg): Update to handle preserve_none.
	(function_arg_preserve_none_regno_p): Update logic for preserve_none.
	(aarch64_expand_builtin_va_start): Add preserve_none layout.
	(aarch64_setup_incoming_varargs): Add preserve_none layout.
	(aarch64_is_variant_pcs): Update for case of ARM_PCS_PRESERVE_NONE.
	(aarch64_comp_type_attributes): Add preserve_none.
	* config/aarch64/aarch64.h (NUM_PRESERVE_NONE_ARG_REGS): New macro.
	(PRESERVE_NONE_REGISTERS): New macro.
	(enum arm_pcs): Add ARM_PCS_PRESERVE_NONE.
	* doc/extend.texi (preserve_none): Add docs for new attribute.

gcc/testsuite/ChangeLog:

	* gcc.target/aarch64/preserve_none_1.c: New test.
	* gcc.target/aarch64/preserve_none_mingw_1.c: New test.
	* gcc.target/aarch64/preserve_none_2.c: New test.
	* gcc.target/aarch64/preserve_none_3.c: New test.
	* gcc.target/aarch64/preserve_none_4.c: New test.
	* gcc.target/aarch64/preserve_none_5.c: New test.
	* gcc.target/aarch64/preserve_none_6.c: New test.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When applied to a function preserve_none changes the procedure call standard
such that all registers except stack pointer, frame register, and link register
are caller saved. Additionally, it changes the argument passing registers.

	PR target/118328

gcc/ChangeLog:

	* config/aarch64/aarch64.cc (handle_aarch64_vector_pcs_attribute):
	Add handling for ARM_PCS_PRESERVE_NONE.
	(aarch64_pcs_exclusions): New definition.
	(aarch64_gnu_attributes): Add entry for preserve_none and add
	aarch64_pcs_exclusions to aarch64_vector_pcs entry.
	(aarch64_preserve_none_abi): New function.
	(aarch64_fntype_abi): Add handling for preserve_none.
	(aarch64_reg_save_mode): Add handling for ARM_PCS_PRESERVE_NONE.
	(aarch64_hard_regno_call_part_clobbered): Add handling for
	ARM_PCS_PRESERVE_NONE.
	(num_pcs_arg_regs): New helper function.
	(get_pcs_arg_reg): New helper function.
	(aarch64_function_ok_for_sibcall): Add handling for ARM_PCS_PRESERVE_NONE.
	(aarch64_layout_arg): Add preserve_none argument lauout..
	(function_arg_preserve_none_regno_p): New helper function.
	(aarch64_function_arg): Update to handle preserve_none.
	(function_arg_preserve_none_regno_p): Update logic for preserve_none.
	(aarch64_expand_builtin_va_start): Add preserve_none layout.
	(aarch64_setup_incoming_varargs): Add preserve_none layout.
	(aarch64_is_variant_pcs): Update for case of ARM_PCS_PRESERVE_NONE.
	(aarch64_comp_type_attributes): Add preserve_none.
	* config/aarch64/aarch64.h (NUM_PRESERVE_NONE_ARG_REGS): New macro.
	(PRESERVE_NONE_REGISTERS): New macro.
	(enum arm_pcs): Add ARM_PCS_PRESERVE_NONE.
	* doc/extend.texi (preserve_none): Add docs for new attribute.

gcc/testsuite/ChangeLog:

	* gcc.target/aarch64/preserve_none_1.c: New test.
	* gcc.target/aarch64/preserve_none_mingw_1.c: New test.
	* gcc.target/aarch64/preserve_none_2.c: New test.
	* gcc.target/aarch64/preserve_none_3.c: New test.
	* gcc.target/aarch64/preserve_none_4.c: New test.
	* gcc.target/aarch64/preserve_none_5.c: New test.
	* gcc.target/aarch64/preserve_none_6.c: New test.
</pre>
</div>
</content>
</entry>
<entry>
<title>aarch64: Add missing fmv features.</title>
<updated>2025-11-03T09:57:31+00:00</updated>
<author>
<name>Alfie Richards</name>
<email>alfie.richards@arm.com</email>
</author>
<published>2025-10-20T12:01:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/gcc.git/commit/?id=643112df90a3c0a5b7b5520a2dd5be089cfca5f7'/>
<id>643112df90a3c0a5b7b5520a2dd5be089cfca5f7</id>
<content type='text'>
Add all the missing FMV features from the ACLE.

gcc/ChangeLog:

	* config/aarch64/aarch64-option-extensions.def (dit): New fmv feature.
	(dpb): New fmv feature.
	(dpb2): New fmv feature.
	(memtag): Change to also define an FMV feature.
	(ssbs): Change to also define an FMV feature.
	(bti): New fmv feature.
	* config/aarch64/aarch64.cc (FEAT_SSBS): Add macro.
	(FEAT_MEMTAG): Ditto.

gcc/testsuite/ChangeLog:

	* gcc.target/aarch64/fmv_priority.in: Update for new features.
	* gcc.target/aarch64/fmv_priority1.c: Ditto.
	* gcc.target/aarch64/fmv_priority2.c: Ditto.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add all the missing FMV features from the ACLE.

gcc/ChangeLog:

	* config/aarch64/aarch64-option-extensions.def (dit): New fmv feature.
	(dpb): New fmv feature.
	(dpb2): New fmv feature.
	(memtag): Change to also define an FMV feature.
	(ssbs): Change to also define an FMV feature.
	(bti): New fmv feature.
	* config/aarch64/aarch64.cc (FEAT_SSBS): Add macro.
	(FEAT_MEMTAG): Ditto.

gcc/testsuite/ChangeLog:

	* gcc.target/aarch64/fmv_priority.in: Update for new features.
	* gcc.target/aarch64/fmv_priority1.c: Ditto.
	* gcc.target/aarch64/fmv_priority2.c: Ditto.
</pre>
</div>
</content>
</entry>
<entry>
<title>aarch64: Remove unnecessary sort from dispatch_function_versions.</title>
<updated>2025-10-23T12:30:32+00:00</updated>
<author>
<name>Alfie Richards</name>
<email>alfie.richards@arm.com</email>
</author>
<published>2025-10-07T15:02:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/gcc.git/commit/?id=7f088e8b49c0be24807fcc0d2811d551b028068f'/>
<id>7f088e8b49c0be24807fcc0d2811d551b028068f</id>
<content type='text'>
The version data-structure already stores the versions in a sorted order so
sorting here is unnecessary.

gcc/ChangeLog:

	* config/aarch64/aarch64.cc (dispatch_function_versions): Remove
	unnecessary sorting and data structure.

Reviewed-by: Wilco Dijkstra &lt;wilco.dijkstra@arm.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The version data-structure already stores the versions in a sorted order so
sorting here is unnecessary.

gcc/ChangeLog:

	* config/aarch64/aarch64.cc (dispatch_function_versions): Remove
	unnecessary sorting and data structure.

Reviewed-by: Wilco Dijkstra &lt;wilco.dijkstra@arm.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>aarch64: Fix fmv priority ordering [PR target/122190]</title>
<updated>2025-10-23T12:30:31+00:00</updated>
<author>
<name>Alfie Richards</name>
<email>alfie.richards@arm.com</email>
</author>
<published>2025-10-07T12:04:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/gcc.git/commit/?id=f1837613162b4aed08a47efba875616e19f4362a'/>
<id>f1837613162b4aed08a47efba875616e19f4362a</id>
<content type='text'>
This fixes the versioning rules for aarch64.

Previously this would prioritize the version string with more extensions
specified regardless of the extension.

The ACLE rules are that any two version strings should be ordered by the
highest priority feature that the versions don't have in common.

	PR target/122190

gcc/ChangeLog:

	* config/aarch64/aarch64.cc (compare_feature_masks): Fix version rules.

gcc/testsuite/ChangeLog:

	* gcc.target/aarch64/pr122190.c: New test

Reviewed-by: Wilco Dijkstra &lt;wilco.dijkstra@arm.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This fixes the versioning rules for aarch64.

Previously this would prioritize the version string with more extensions
specified regardless of the extension.

The ACLE rules are that any two version strings should be ordered by the
highest priority feature that the versions don't have in common.

	PR target/122190

gcc/ChangeLog:

	* config/aarch64/aarch64.cc (compare_feature_masks): Fix version rules.

gcc/testsuite/ChangeLog:

	* gcc.target/aarch64/pr122190.c: New test

Reviewed-by: Wilco Dijkstra &lt;wilco.dijkstra@arm.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>aarch64: Dump version ordering for FMV.</title>
<updated>2025-10-23T12:30:31+00:00</updated>
<author>
<name>Alfie Richards</name>
<email>alfie.richards@arm.com</email>
</author>
<published>2025-10-07T12:51:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/gcc.git/commit/?id=3d2848bd1f8af765b053eb091ac72fe13b55ab5f'/>
<id>3d2848bd1f8af765b053eb091ac72fe13b55ab5f</id>
<content type='text'>
This adds the fmv function versions to the targetclone dump.

This is useful for debugging and tests checking function version priority
ordering.

gcc/ChangeLog:

	* config/aarch64/aarch64.cc (aarch64_generate_version_dispatcher_body):
	Dump function versions and the ordering.

Reviewed-by: Wilco Dijkstra &lt;wilco.dijkstra@arm.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This adds the fmv function versions to the targetclone dump.

This is useful for debugging and tests checking function version priority
ordering.

gcc/ChangeLog:

	* config/aarch64/aarch64.cc (aarch64_generate_version_dispatcher_body):
	Dump function versions and the ordering.

Reviewed-by: Wilco Dijkstra &lt;wilco.dijkstra@arm.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>aarch64: Add support for menable-sysreg-checking flag.</title>
<updated>2025-10-20T13:26:08+00:00</updated>
<author>
<name>Srinath Parvathaneni</name>
<email>srinath.parvathaneni@arm.com</email>
</author>
<published>2025-10-20T13:07:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/gcc.git/commit/?id=4ce92328339a8ddf610cd2e371b7763cf5d25bd1'/>
<id>4ce92328339a8ddf610cd2e371b7763cf5d25bd1</id>
<content type='text'>
Hi All,

In the current Binutils we have disabled the feature gating for sysreg
by default and we have introduced a new flag "-menable-sysreg-checking"
to renable some of this checking.

However in GCC, we have disabled the feature gating of sysreg to read/write
intrinsics __arm_[wr]sr* and we have not added any mechanism to check the
feature gating if needed similar to Binutils.

This patch adds the support for the flag "-menable-sysreg-checking" which
renables some of the feature checking of sysreg to read/write intrinsics
__arm_[wr]sr* similar to Binutils.

For inline assembly, sysreg checks are not performed by CC1 and are
instead delegated to the assembler. By default, the assembler does not
perform these checks either. With this patch, the -menable-sysreg-checking
flag passed to the compiler will also be propagated to the assembler,
enabling sysreg checking for inline assembly.

gcc/ChangeLog:

	* config/aarch64/aarch64-elf.h (ASM_SPEC): Update the macro.
	* config/aarch64/aarch64.cc (aarch64_valid_sysreg_name_p):
	Add feature check condition.
	(aarch64_retrieve_sysreg): Likewise.
	* config/aarch64/aarch64.opt (menable-sysreg-checking):
	Define new flag.
	* doc/invoke.texi (menable-sysreg-checking): Document new flag.

gcc/testsuite/ChangeLog:

	* gcc.target/aarch64/acle/asm-inlined-sysreg-1.c: New test.
	* gcc.target/aarch64/acle/asm-inlined-sysreg-2.c: Likewise.
	* gcc.target/aarch64/acle/rwsr-gated-1.c: Likewise.
	* gcc.target/aarch64/acle/rwsr-gated-2.c: Likewise.
	* lib/target-supports.exp
	(check_effective_target_aarch64_sysreg_guarding_ok): Check
	assembler support of -menable-sysreg-checking flag.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Hi All,

In the current Binutils we have disabled the feature gating for sysreg
by default and we have introduced a new flag "-menable-sysreg-checking"
to renable some of this checking.

However in GCC, we have disabled the feature gating of sysreg to read/write
intrinsics __arm_[wr]sr* and we have not added any mechanism to check the
feature gating if needed similar to Binutils.

This patch adds the support for the flag "-menable-sysreg-checking" which
renables some of the feature checking of sysreg to read/write intrinsics
__arm_[wr]sr* similar to Binutils.

For inline assembly, sysreg checks are not performed by CC1 and are
instead delegated to the assembler. By default, the assembler does not
perform these checks either. With this patch, the -menable-sysreg-checking
flag passed to the compiler will also be propagated to the assembler,
enabling sysreg checking for inline assembly.

gcc/ChangeLog:

	* config/aarch64/aarch64-elf.h (ASM_SPEC): Update the macro.
	* config/aarch64/aarch64.cc (aarch64_valid_sysreg_name_p):
	Add feature check condition.
	(aarch64_retrieve_sysreg): Likewise.
	* config/aarch64/aarch64.opt (menable-sysreg-checking):
	Define new flag.
	* doc/invoke.texi (menable-sysreg-checking): Document new flag.

gcc/testsuite/ChangeLog:

	* gcc.target/aarch64/acle/asm-inlined-sysreg-1.c: New test.
	* gcc.target/aarch64/acle/asm-inlined-sysreg-2.c: Likewise.
	* gcc.target/aarch64/acle/rwsr-gated-1.c: Likewise.
	* gcc.target/aarch64/acle/rwsr-gated-2.c: Likewise.
	* lib/target-supports.exp
	(check_effective_target_aarch64_sysreg_guarding_ok): Check
	assembler support of -menable-sysreg-checking flag.
</pre>
</div>
</content>
</entry>
<entry>
<title>aarch64: Sync aarch64-sys-regs.def with Binutils</title>
<updated>2025-10-15T13:04:28+00:00</updated>
<author>
<name>Alice Carlotti</name>
<email>alice.carlotti@arm.com</email>
</author>
<published>2025-10-13T16:52:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/gcc.git/commit/?id=c62f3e81a0b0ec7a5bec993ce3fe137ed182233c'/>
<id>c62f3e81a0b0ec7a5bec993ce3fe137ed182233c</id>
<content type='text'>
This patch incorporates changes to this file in Binutils since March
2024 (excluding one patch that was already cherry-picked by
Ezra in July 2025).  It includes:
- New system registers in the 2024 and 2025 architecture extensions.
- Updated feature requirements for most system register accessors.
- Removal of registers that were dropped from the architecture.
- Removal of the unnecessary F_ARCHEXT flag.
- Fixed encoding for pmsdsfr_el1.

The updated architecture feature requirements are only relevant when the
new `-menable-sysreg-checking' option is enabled.

gcc/ChangeLog:

	* config/aarch64/aarch64-sys-regs.def: Copy from Binutils.
	* config/aarch64/aarch64.cc (F_ARCHEXT): Delete flag.
	* config/aarch64/aarch64.h
	(AARCH64_FL_AMU): Delete unused macro.
	(AARCH64_FL_SCXTNUM): Ditto.
	(AARCH64_FL_ID_PFR2): Ditto.
	(AARCH64_FL_AIE): Ditto.
	(AARCH64_FL_DEBUGv8p9): Ditto.
	(AARCH64_FL_FGT2): Ditto.
	(AARCH64_FL_PFAR): Ditto.
	(AARCH64_FL_PMUv3_ICNTR): Ditto.
	(AARCH64_FL_PMUv3_SS): Ditto.
	(AARCH64_FL_PMUv3p9): Ditto.
	(AARCH64_FL_S1PIE): Ditto.
	(AARCH64_FL_S1POE): Ditto.
	(AARCH64_FL_S2PIE): Ditto.
	(AARCH64_FL_S2POE): Ditto.
	(AARCH64_FL_SCTLR2): Ditto.
	(AARCH64_FL_SEBEP): Ditto.
	(AARCH64_FL_SPE_FDS): Ditto.
	(AARCH64_FL_TCR2): Ditto.

gcc/testsuite/ChangeLog:

	* gcc.target/aarch64/acle/rwsr-armv8p9.c: Fix incorrect encoding.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch incorporates changes to this file in Binutils since March
2024 (excluding one patch that was already cherry-picked by
Ezra in July 2025).  It includes:
- New system registers in the 2024 and 2025 architecture extensions.
- Updated feature requirements for most system register accessors.
- Removal of registers that were dropped from the architecture.
- Removal of the unnecessary F_ARCHEXT flag.
- Fixed encoding for pmsdsfr_el1.

The updated architecture feature requirements are only relevant when the
new `-menable-sysreg-checking' option is enabled.

gcc/ChangeLog:

	* config/aarch64/aarch64-sys-regs.def: Copy from Binutils.
	* config/aarch64/aarch64.cc (F_ARCHEXT): Delete flag.
	* config/aarch64/aarch64.h
	(AARCH64_FL_AMU): Delete unused macro.
	(AARCH64_FL_SCXTNUM): Ditto.
	(AARCH64_FL_ID_PFR2): Ditto.
	(AARCH64_FL_AIE): Ditto.
	(AARCH64_FL_DEBUGv8p9): Ditto.
	(AARCH64_FL_FGT2): Ditto.
	(AARCH64_FL_PFAR): Ditto.
	(AARCH64_FL_PMUv3_ICNTR): Ditto.
	(AARCH64_FL_PMUv3_SS): Ditto.
	(AARCH64_FL_PMUv3p9): Ditto.
	(AARCH64_FL_S1PIE): Ditto.
	(AARCH64_FL_S1POE): Ditto.
	(AARCH64_FL_S2PIE): Ditto.
	(AARCH64_FL_S2POE): Ditto.
	(AARCH64_FL_SCTLR2): Ditto.
	(AARCH64_FL_SEBEP): Ditto.
	(AARCH64_FL_SPE_FDS): Ditto.
	(AARCH64_FL_TCR2): Ditto.

gcc/testsuite/ChangeLog:

	* gcc.target/aarch64/acle/rwsr-armv8p9.c: Fix incorrect encoding.
</pre>
</div>
</content>
</entry>
</feed>
