aboutsummaryrefslogtreecommitdiff
path: root/libgcc
diff options
context:
space:
mode:
authorRichard Ball <richard.ball@arm.com>2024-04-09 16:31:35 +0100
committerRichard Ball <richard.ball@arm.com>2024-04-09 16:33:46 +0100
commit685d822e524cc8b2726ad6c44c2ccaabe55a198c (patch)
treeb9d15fcac5af50af6856f67570a2ce5751eec359 /libgcc
parentde82b0cf981e49a0bda957c0ac31146b17407e23 (diff)
downloadgcc-685d822e524cc8b2726ad6c44c2ccaabe55a198c.zip
gcc-685d822e524cc8b2726ad6c44c2ccaabe55a198c.tar.gz
gcc-685d822e524cc8b2726ad6c44c2ccaabe55a198c.tar.bz2
aarch64: Fix ACLE SME streaming mode error in neon-sve-bridge
When using LTO, handling the pragma for sme before the pragma for the neon-sve-bridge caused the following error on svset_neonq, in the neon-sve-bridge.c test. error: ACLE function '0' can only be called when SME streaming mode is enabled. This has been resolved by changing the pragma handlers to accept two modes. One where they add functions normally and a second in which registered_functions is filled with a placeholder value. By using this, the ordering of the functions can be maintained. gcc/ChangeLog: * config/aarch64/aarch64-c.cc (aarch64_pragma_aarch64): Add functions_nulls parameter to pragma_handlers. * config/aarch64/aarch64-protos.h: Likewise. * config/aarch64/aarch64-sve-builtins.h (enum handle_pragma_index): Add enum to count number of pragmas to be handled. * config/aarch64/aarch64-sve-builtins.cc (GTY): Add global variable for initial indexes and change overload_names to an array. (function_builder::function_builder): Add pragma handler information. (function_builder::add_function): Add code for overwriting previous registered_functions entries. (add_unique_function): Use an array to register overload_names for both pragma handler modes. (add_overloaded_function): Likewise. (init_builtins): Add functions_nulls parameter to pragma_handlers. (handle_arm_sve_h): Initialize pragma handler information. (handle_arm_neon_sve_bridge_h): Likewise. (handle_arm_sme_h): Likewise.
Diffstat (limited to 'libgcc')
0 files changed, 0 insertions, 0 deletions