aboutsummaryrefslogtreecommitdiff
path: root/gas/configure.tgt
diff options
context:
space:
mode:
authorClaudiu Zissulescu <claziss@synopsys.com>2023-09-25 10:55:51 +0300
committerClaudiu Zissulescu <claziss@gmail.com>2023-09-25 10:55:51 +0300
commitf3d38d7d0b7346515ba603454feeddc58a3fc451 (patch)
tree8a059a908c241301965ccc08e2689b9fe3edd817 /gas/configure.tgt
parent04414221df53bb5129e34bec354dae3121db436a (diff)
downloadgdb-f3d38d7d0b7346515ba603454feeddc58a3fc451.zip
gdb-f3d38d7d0b7346515ba603454feeddc58a3fc451.tar.gz
gdb-f3d38d7d0b7346515ba603454feeddc58a3fc451.tar.bz2
arc: Update ARC's Gnu Assembler backend with ARCv3 ISA.
The new Synopsys ARCv3 ISA has a similar instruction format like the old ARCv1 and ARCv2 ISA. Thus, the ARCv3 addition is using whatever we have for old ARC processors plus some ARCv3 spcific mods. To distinguish between various ARC variants, we introduced two new configure defines named TARGET_ARCv3_32 and TARGET_ARCv3_64 which are set when we choose either an ARC32 (ARCv3/32) ISA toolchain or an ARC64 (ARCv3/64) ISA toolchain. gas/ xxxx-xx-xx Claudiu Zissulescu <claziss@synopsys.com> * gas/config/tc-arc.h: Selectively define default target macros. * gas/configure.ac: Add ARC64 target. * gas/configure.tgt: Likewise. * gas/configure: Regenerate * gas/config.in: Regenerate. * gas/config/tc-arc.c (DEFAULT_ARCH): New macro. (default_arch): New variable. (md_pseudo_table): Add xword. (md_shortopts): Only a few options are recognized by the new ARC64 assembler. (md_longopts): Likewise. (ARC_CPU_TYPE_A64x): New define. (ARC_CPU_TYPE_A32x): Likewise. (cpu_type): New arch field. (selected_cpu): Update fields. (arc_opcode_hash_entry_iterator_init): Formating. (arc_opcode_hash_entry_iterator_next): Likewise. (arc_select_cpu): Likewise. (arc_option): Likewise. (check_cpu_feature): Likewise. (debug_exp): Recognize new expression operands. (parse_reloc_symbol): Parse new signed/unsigend cases. (parse_opcode_flags): Update for the case when the flags needs insert/extract functions. (find_opcode_match): Match new signed/unsigned 32-bit immediates. (autodetect_attributes): PLT34 only available for ARC64. (md_assemble): Extend match characters. (declare_fp_set): New function. (init_default_arch): Likewise. (md_begin): Detect and initialize the correct CPU and coresponding registers. (md_pcrel_from_section): Add new relocs. (arc_target_format): New function. (md_apply_fix): Add new relocs. (md_parse_option): Update options. (arc_show_cpu_list): Update with ARC64 cpus. (md_show_usage): Update messages. (may_relax_expr): Add PLT34 case. (assemble_insn): Update for ARC64. (arc_make_nops): New function. (arc_handle_align): Refurbish this function, use arc_make_nops. (tc_arc_fix_adjustable): Update messages. Signed-off-by: Claudiu Zissulescu <claziss@synopsys.com>
Diffstat (limited to 'gas/configure.tgt')
-rw-r--r--gas/configure.tgt5
1 files changed, 4 insertions, 1 deletions
diff --git a/gas/configure.tgt b/gas/configure.tgt
index 3a582ef..d39db7d 100644
--- a/gas/configure.tgt
+++ b/gas/configure.tgt
@@ -50,7 +50,9 @@ case ${cpu} in
aarch64_be) cpu_type=aarch64 endian=big arch=aarch64;;
alpha*) cpu_type=alpha ;;
am33_2.0) cpu_type=mn10300 endian=little ;;
- arc*eb) cpu_type=arc endian=big ;;
+ arc64|arc32) cpu_type=arc arch=arc64 endian=little ;;
+ arceb) cpu_type=arc arch=arc endian=big ;;
+ arc) cpu_type=arc arch=arc endian=little ;;
arm*be|arm*b) cpu_type=arm endian=big ;;
arm*) cpu_type=arm endian=little ;;
bfin*) cpu_type=bfin endian=little ;;
@@ -145,6 +147,7 @@ case ${generic_target} in
alpha-*-netbsd* | alpha-*-openbsd*) fmt=elf em=nbsd ;;
arc-*-elf*) fmt=elf ;;
+ arc64-*-* | arc32-*-*) fmt=elf ;;
arc*-*-linux*) fmt=elf bfd_gas=yes ;;
arm-*-phoenix*) fmt=elf ;;