aboutsummaryrefslogtreecommitdiff
path: root/libjava/java/security/Engine.java
diff options
context:
space:
mode:
authorAlfie Richards <alfie.richards@arm.com>2025-10-15 13:34:55 +0000
committerAlfie Richards <alfie.richards@arm.com>2025-11-07 10:20:55 +0000
commit7197d8062fddc26c05c0da0bbfcd4128de788e34 (patch)
tree4ab86a9aa05a2bd4fcbf43078f70bd865d77aabf /libjava/java/security/Engine.java
parenta747e40fa03b0c9c1fd0e45541b543713b2bacdf (diff)
downloadgcc-7197d8062fddc26c05c0da0bbfcd4128de788e34.zip
gcc-7197d8062fddc26c05c0da0bbfcd4128de788e34.tar.gz
gcc-7197d8062fddc26c05c0da0bbfcd4128de788e34.tar.bz2
aarch64: Add support for preserve_none function attribute [PR target/118328]
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.
Diffstat (limited to 'libjava/java/security/Engine.java')
0 files changed, 0 insertions, 0 deletions