aboutsummaryrefslogtreecommitdiff
path: root/gcc/common
diff options
context:
space:
mode:
authorAndrew Carlotti <andrew.carlotti@arm.com>2024-05-10 13:34:34 +0100
committerAndrew Carlotti <andrew.carlotti@arm.com>2024-07-24 16:54:53 +0100
commit129b40529e906f423f008b484206ef6edeb21f42 (patch)
tree5bd57fbe81cc57bd328cbd61b4b52ae818d2cdb4 /gcc/common
parent181fdad106c353529850b3af7687a1b9b7509b0b (diff)
downloadgcc-129b40529e906f423f008b484206ef6edeb21f42.zip
gcc-129b40529e906f423f008b484206ef6edeb21f42.tar.gz
gcc-129b40529e906f423f008b484206ef6edeb21f42.tar.bz2
aarch64: Extend aarch64_feature_flags to 128 bits
Replace the existing uint64_t typedef with a bbitmap<2> typedef. Most of the preparatory work was carried out in previous commits, so this patch itself is fairly small. gcc/ChangeLog: * common/config/aarch64/aarch64-common.cc (aarch64_set_asm_isa_flags): Store a second uint64_t value. * config/aarch64/aarch64-opts.h (aarch64_feature_flags): Switch typedef to bbitmap<2>. * config/aarch64/aarch64.cc (aarch64_set_current_function): Extract isa mode from val[0]. * config/aarch64/aarch64.h (aarch64_get_asm_isa_flags): Load a second uint64_t value. (aarch64_get_isa_flags): Ditto. (aarch64_asm_isa_flags): Ditto. (aarch64_isa_flags): Ditto. (HANDLE): Use bbitmap<2>::from_index to initialise flags. (AARCH64_FL_ISA_MODES): Do arithmetic on integer type. (AARCH64_ISA_MODE): Extract value from bbitmap<2> array. * config/aarch64/aarch64.opt (aarch64_asm_isa_flags_1): New variable. (aarch64_isa_flags_1): Ditto.
Diffstat (limited to 'gcc/common')
-rw-r--r--gcc/common/config/aarch64/aarch64-common.cc12
1 files changed, 8 insertions, 4 deletions
diff --git a/gcc/common/config/aarch64/aarch64-common.cc b/gcc/common/config/aarch64/aarch64-common.cc
index bd0770d..64b65b7 100644
--- a/gcc/common/config/aarch64/aarch64-common.cc
+++ b/gcc/common/config/aarch64/aarch64-common.cc
@@ -67,15 +67,19 @@ static const struct default_options aarch_option_optimization_table[] =
};
-/* Set OPTS->x_aarch64_asm_isa_flags_0 to FLAGS and update
- OPTS->x_aarch64_isa_flags_0 accordingly. */
+/* Set OPTS->x_aarch64_asm_isa_flags_<0..n> to FLAGS and update
+ OPTS->x_aarch64_isa_flags_<0..n> accordingly. */
void
aarch64_set_asm_isa_flags (gcc_options *opts, aarch64_feature_flags flags)
{
- opts->x_aarch64_asm_isa_flags_0 = flags;
+ opts->x_aarch64_asm_isa_flags_0 = flags.val[0];
+ opts->x_aarch64_asm_isa_flags_1 = flags.val[1];
+
if (opts->x_target_flags & MASK_GENERAL_REGS_ONLY)
flags &= ~feature_deps::get_flags_off (AARCH64_FL_FP);
- opts->x_aarch64_isa_flags_0 = flags;
+
+ opts->x_aarch64_isa_flags_0 = flags.val[0];
+ opts->x_aarch64_isa_flags_1 = flags.val[1];
}
/* Implement TARGET_HANDLE_OPTION.