aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorClaudiu Zissulescu <claziss@synopsys.com>2017-03-27 12:56:24 +0200
committerClaudiu Zissulescu <claziss@gcc.gnu.org>2017-03-27 12:56:24 +0200
commit81b98ef7697900c12d94f7f413613b8139a16624 (patch)
treed10aad0096fd2332432285048339e611ababf8b8 /gcc
parentac2551850669c3013b1b6e142a167060328ff52d (diff)
downloadgcc-81b98ef7697900c12d94f7f413613b8139a16624.zip
gcc-81b98ef7697900c12d94f7f413613b8139a16624.tar.gz
gcc-81b98ef7697900c12d94f7f413613b8139a16624.tar.bz2
[ARC] Disable TP register when building for bare metal.
gcc/ 2017-03-27 Claudiu Zissulescu <claziss@synopsys.com> * config/arc/elf.h (ARGET_ARC_TP_REGNO_DEFAULT): Define. * config/arc/linux.h (ARGET_ARC_TP_REGNO_DEFAULT): Likewise. * config/arc/arc.opt (mtp-regno): Use ARGET_ARC_TP_REGNO_DEFAULT. From-SVN: r246497
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/arc/arc.opt2
-rw-r--r--gcc/config/arc/elf.h4
-rw-r--r--gcc/config/arc/linux.h4
4 files changed, 15 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 598f03d..2740aa6 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,11 @@
2017-03-27 Claudiu Zissulescu <claziss@synopsys.com>
+ * config/arc/elf.h (ARGET_ARC_TP_REGNO_DEFAULT): Define.
+ * config/arc/linux.h (ARGET_ARC_TP_REGNO_DEFAULT): Likewise.
+ * config/arc/arc.opt (mtp-regno): Use ARGET_ARC_TP_REGNO_DEFAULT.
+
+2017-03-27 Claudiu Zissulescu <claziss@synopsys.com>
+
* config/arc/predicates.md (long_immediate_loadstore_operand):
Consider scaled addresses cases.
diff --git a/gcc/config/arc/arc.opt b/gcc/config/arc/arc.opt
index 17af736..6060ded 100644
--- a/gcc/config/arc/arc.opt
+++ b/gcc/config/arc/arc.opt
@@ -469,7 +469,7 @@ EnumValue
Enum(arc_fpu) String(fpud_all) Value(FPU_FPUD_ALL)
mtp-regno=
-Target RejectNegative Joined UInteger Var(arc_tp_regno) Init(25)
+Target RejectNegative Joined UInteger Var(arc_tp_regno) Init(TARGET_ARC_TP_REGNO_DEFAULT)
Specify thread pointer register number.
mtp-regno=none
diff --git a/gcc/config/arc/elf.h b/gcc/config/arc/elf.h
index d2106c5..2b572a5 100644
--- a/gcc/config/arc/elf.h
+++ b/gcc/config/arc/elf.h
@@ -53,3 +53,7 @@ along with GCC; see the file COPYING3. If not see
# define MULTILIB_DEFAULTS { "mcpu=" ARC_MULTILIB_CPU_DEFAULT }
# endif
#endif
+
+/* Bare-metal toolchains do not need a thread pointer register. */
+#undef TARGET_ARC_TP_REGNO_DEFAULT
+#define TARGET_ARC_TP_REGNO_DEFAULT -1
diff --git a/gcc/config/arc/linux.h b/gcc/config/arc/linux.h
index 10c291c..6e1a96e 100644
--- a/gcc/config/arc/linux.h
+++ b/gcc/config/arc/linux.h
@@ -74,3 +74,7 @@ along with GCC; see the file COPYING3. If not see
/* We do not have any MULTILIB_OPTIONS specified, so there are no
MULTILIB_DEFAULTS. */
#undef MULTILIB_DEFAULTS
+
+/* Linux toolchains use r25 as the thread pointer register. */
+#undef TARGET_ARC_TP_REGNO_DEFAULT
+#define TARGET_ARC_TP_REGNO_DEFAULT 25