aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorChung-Ju Wu <jasonwucj@gmail.com>2018-06-03 03:26:56 +0000
committerChung-Ju Wu <jasonwucj@gcc.gnu.org>2018-06-03 03:26:56 +0000
commit37d8f61108e97d88d1422dd1e0efabef833b0f26 (patch)
treef6e118aaa69d8fb6176a6e49cda4f0aa4e43dc20 /gcc
parent1cc591084717fcabbdbddf79601fb8545ac111b6 (diff)
downloadgcc-37d8f61108e97d88d1422dd1e0efabef833b0f26.zip
gcc-37d8f61108e97d88d1422dd1e0efabef833b0f26.tar.gz
gcc-37d8f61108e97d88d1422dd1e0efabef833b0f26.tar.bz2
[NDS32] Add -march=v3j.
gcc/ * config/nds32/nds32-opts.h (nds32_arch_type): Add ARCH_V3J. * config/nds32/nds32.c (nds32_option_override): Consider ARCH_V3J. * config/nds32/nds32.h (TARGET_ISA_V3): Add ARCH_V3J checking. * config/nds32/nds32.opt (march): Add enum value Value(ARCH_V3J). From-SVN: r261123
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/config/nds32/nds32-opts.h1
-rw-r--r--gcc/config/nds32/nds32.c4
-rw-r--r--gcc/config/nds32/nds32.h1
-rw-r--r--gcc/config/nds32/nds32.opt3
5 files changed, 15 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 18f539d..1e80862 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,12 @@
2018-06-03 Chung-Ju Wu <jasonwucj@gmail.com>
+ * config/nds32/nds32-opts.h (nds32_arch_type): Add ARCH_V3J.
+ * config/nds32/nds32.c (nds32_option_override): Consider ARCH_V3J.
+ * config/nds32/nds32.h (TARGET_ISA_V3): Add ARCH_V3J checking.
+ * config/nds32/nds32.opt (march): Add enum value Value(ARCH_V3J).
+
+2018-06-03 Chung-Ju Wu <jasonwucj@gmail.com>
+
* common/config/nds32/nds32-common.c (nds32_option_optimization_table):
Disable -fdelete-null-pointer-checks for ELF toolchain.
diff --git a/gcc/config/nds32/nds32-opts.h b/gcc/config/nds32/nds32-opts.h
index e75e75f..8d76196 100644
--- a/gcc/config/nds32/nds32-opts.h
+++ b/gcc/config/nds32/nds32-opts.h
@@ -29,6 +29,7 @@ enum nds32_arch_type
{
ARCH_V2,
ARCH_V3,
+ ARCH_V3J,
ARCH_V3M,
ARCH_V3F,
ARCH_V3S
diff --git a/gcc/config/nds32/nds32.c b/gcc/config/nds32/nds32.c
index a0b6443..85a2986 100644
--- a/gcc/config/nds32/nds32.c
+++ b/gcc/config/nds32/nds32.c
@@ -4087,7 +4087,9 @@ nds32_option_override (void)
}
if (TARGET_ISA_V3)
{
- /* Under V3 ISA, currently nothing should be strictly set. */
+ /* If this is ARCH_V3J, we need to enable TARGET_REDUCED_REGS. */
+ if (nds32_arch_option == ARCH_V3J)
+ target_flags |= MASK_REDUCED_REGS;
}
if (TARGET_ISA_V3M)
{
diff --git a/gcc/config/nds32/nds32.h b/gcc/config/nds32/nds32.h
index 84fae7d..9e36c8f 100644
--- a/gcc/config/nds32/nds32.h
+++ b/gcc/config/nds32/nds32.h
@@ -853,6 +853,7 @@ enum nds32_builtins
#define TARGET_ISA_V3 \
(nds32_arch_option == ARCH_V3 \
+ || nds32_arch_option == ARCH_V3J \
|| nds32_arch_option == ARCH_V3F \
|| nds32_arch_option == ARCH_V3S)
#define TARGET_ISA_V3M (nds32_arch_option == ARCH_V3M)
diff --git a/gcc/config/nds32/nds32.opt b/gcc/config/nds32/nds32.opt
index 871ae1e..a9ffae1 100644
--- a/gcc/config/nds32/nds32.opt
+++ b/gcc/config/nds32/nds32.opt
@@ -177,6 +177,9 @@ EnumValue
Enum(nds32_arch_type) String(v3) Value(ARCH_V3)
EnumValue
+Enum(nds32_arch_type) String(v3j) Value(ARCH_V3J)
+
+EnumValue
Enum(nds32_arch_type) String(v3m) Value(ARCH_V3M)
EnumValue