[ARC] Add arc-cpu.def with processor definitions

This patch extracts ARC CPU definitions from gas/config/tc-arc.c (cpu_types)
into a separate file arc-cpu.def.  This will allow reuse of CPU type definition
in multiple places where it might be needed, for example in disassembler.  This
will help ensure that gas and disassembker use same option values for CPUs.

arc-cpu.def file relies on preprocessor macroses which are defined somewhere
else.  This for example multiple C files to include arc-cpu.def, but define
different macroses, therefore creating different structures.

include/ChangeLog:
yyyy-mm-dd  Anton Kolesov  <anton.kolesov@synopsys.com>

	* elf/arc-cpu.def: New file.

gas/ChangeLog:
yyyy-mm-dd  Anton Kolesov  <anton.kolesov@synopsys.com>

	* config/tc-arc.c (cpu_types): Include arc-cpu.def

Signed-off-by: Anton Kolesov <Anton.Kolesov@synopsys.com>
This commit is contained in:
Anton Kolesov 2017-04-07 17:22:39 +03:00
parent 64984c22f7
commit 940171d086
4 changed files with 60 additions and 26 deletions

View File

@ -1,3 +1,7 @@
2017-05-30 Anton Kolesov <anton.kolesov@synopsys.com>
* config/tc-arc.c (cpu_types): Include arc-cpu.def
2017-05-23 H.J. Lu <hongjiu.lu@intel.com>
* gas/testsuite/gas/i386/notrackbad.l: Updated for non-ELF

View File

@ -445,6 +445,8 @@ static struct hash_control *arc_addrtype_hash;
#define ARC_CPU_TYPE_AV2HS(NAME,EXTRA) \
{ #NAME, ARC_OPCODE_ARCv2HS, bfd_mach_arc_arcv2, \
EF_ARC_CPU_ARCV2HS, EXTRA}
#define ARC_CPU_TYPE_NONE \
{ 0, 0, 0, 0, 0 }
/* A table of CPU names and opcode sets. */
static const struct cpu_type
@ -457,32 +459,7 @@ static const struct cpu_type
}
cpu_types[] =
{
ARC_CPU_TYPE_A7xx (arc700, 0x00),
ARC_CPU_TYPE_A7xx (nps400, NPS400),
ARC_CPU_TYPE_AV2EM (arcem, 0x00),
ARC_CPU_TYPE_AV2EM (em, 0x00),
ARC_CPU_TYPE_AV2EM (em4, CD),
ARC_CPU_TYPE_AV2EM (em4_dmips, CD),
ARC_CPU_TYPE_AV2EM (em4_fpus, CD),
ARC_CPU_TYPE_AV2EM (em4_fpuda, CD | DPA),
ARC_CPU_TYPE_AV2EM (quarkse_em, CD | SPX | DPX),
ARC_CPU_TYPE_AV2HS (archs, CD),
ARC_CPU_TYPE_AV2HS (hs, CD),
ARC_CPU_TYPE_AV2HS (hs34, CD),
ARC_CPU_TYPE_AV2HS (hs38, CD),
ARC_CPU_TYPE_AV2HS (hs38_linux, CD),
ARC_CPU_TYPE_A6xx (arc600, 0x00),
ARC_CPU_TYPE_A6xx (arc600_norm, 0x00),
ARC_CPU_TYPE_A6xx (arc600_mul64, 0x00),
ARC_CPU_TYPE_A6xx (arc600_mul32x16, 0x00),
ARC_CPU_TYPE_A6xx (arc601, 0x00),
ARC_CPU_TYPE_A6xx (arc601_norm, 0x00),
ARC_CPU_TYPE_A6xx (arc601_mul64, 0x00),
ARC_CPU_TYPE_A6xx (arc601_mul32x16, 0x00),
{ 0, 0, 0, 0, 0 }
#include "elf/arc-cpu.def"
};
/* Information about the cpu/variant we're assembling for. */

View File

@ -1,3 +1,7 @@
2017-05-30 Anton Kolesov <anton.kolesov@synopsys.com>
* elf/arc-cpu.def: New file.
2017-05-24 Yao Qi <yao.qi@linaro.org>
* dis-asm.h: Move some function declarations to

49
include/elf/arc-cpu.def Normal file
View File

@ -0,0 +1,49 @@
/* ARC processor types
Copyright (C) 2017 Free Software Foundation, Inc.
This file is part of GAS, the GNU Assembler.
GAS is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.
GAS is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with GAS; see the file COPYING. If not, write to the Free
Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
02110-1301, USA. */
ARC_CPU_TYPE_A7xx (arc700, 0x00),
ARC_CPU_TYPE_A7xx (nps400, NPS400),
ARC_CPU_TYPE_AV2EM (arcem, 0x00),
ARC_CPU_TYPE_AV2EM (em, 0x00),
ARC_CPU_TYPE_AV2EM (em4, CD),
ARC_CPU_TYPE_AV2EM (em4_dmips, CD),
ARC_CPU_TYPE_AV2EM (em4_fpus, CD),
ARC_CPU_TYPE_AV2EM (em4_fpuda, CD | DPA),
ARC_CPU_TYPE_AV2EM (quarkse_em, CD | SPX | DPX),
ARC_CPU_TYPE_AV2HS (archs, CD),
ARC_CPU_TYPE_AV2HS (hs, CD),
ARC_CPU_TYPE_AV2HS (hs34, CD),
ARC_CPU_TYPE_AV2HS (hs38, CD),
ARC_CPU_TYPE_AV2HS (hs38_linux, CD),
ARC_CPU_TYPE_A6xx (arc600, 0x00),
ARC_CPU_TYPE_A6xx (arc600_norm, 0x00),
ARC_CPU_TYPE_A6xx (arc600_mul64, 0x00),
ARC_CPU_TYPE_A6xx (arc600_mul32x16, 0x00),
ARC_CPU_TYPE_A6xx (arc601, 0x00),
ARC_CPU_TYPE_A6xx (arc601_norm, 0x00),
ARC_CPU_TYPE_A6xx (arc601_mul64, 0x00),
ARC_CPU_TYPE_A6xx (arc601_mul32x16, 0x00),
ARC_CPU_TYPE_NONE