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

Anton Kolesov akolesov@sourceware.org
Tue May 30 14:01:00 GMT 2017


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=940171d08654a9ff5bf9b8886f76e8189a02cf09

commit 940171d08654a9ff5bf9b8886f76e8189a02cf09
Author: Anton Kolesov <Anton.Kolesov@synopsys.com>
Date:   Fri Apr 7 17:22:39 2017 +0300

    [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>

Diff:
---
 gas/ChangeLog           |  4 ++++
 gas/config/tc-arc.c     | 29 +++--------------------------
 include/ChangeLog       |  4 ++++
 include/elf/arc-cpu.def | 49 +++++++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 60 insertions(+), 26 deletions(-)

diff --git a/gas/ChangeLog b/gas/ChangeLog
index 2e7bb8d..d8b9d2e 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -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
diff --git a/gas/config/tc-arc.c b/gas/config/tc-arc.c
index 173a1a0..55aaf07 100644
--- a/gas/config/tc-arc.c
+++ b/gas/config/tc-arc.c
@@ -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.  */
diff --git a/include/ChangeLog b/include/ChangeLog
index 20cae31..1ec91cd 100644
--- a/include/ChangeLog
+++ b/include/ChangeLog
@@ -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
diff --git a/include/elf/arc-cpu.def b/include/elf/arc-cpu.def
new file mode 100644
index 0000000..d0a7aee
--- /dev/null
+++ b/include/elf/arc-cpu.def
@@ -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
+



More information about the Binutils-cvs mailing list