aboutsummaryrefslogtreecommitdiff
path: root/linux-user/tilegx/target_cpu.h
diff options
context:
space:
mode:
authorChen Gang <xili_gchen_5257@hotmail.com>2015-08-21 05:35:43 +0800
committerRichard Henderson <rth@twiddle.net>2015-09-15 07:17:51 -0700
commit2cb154bc19854232b5379236dd9dfc06d83ced1e (patch)
tree079d954e1ab3cb6b13ac1105b75f43487734d40e /linux-user/tilegx/target_cpu.h
parentb76a0d5db25ad9f81346930230092fdf1e88a5a1 (diff)
downloadqemu-2cb154bc19854232b5379236dd9dfc06d83ced1e.zip
qemu-2cb154bc19854232b5379236dd9dfc06d83ced1e.tar.gz
qemu-2cb154bc19854232b5379236dd9dfc06d83ced1e.tar.bz2
linux-user: tilegx: Add architecture related features
They are based on Linux kernel tilegx architecture for 64 bit binary, and also based on tilegx ABI reference document, and also reference from other targets implementations. Signed-off-by: Chen Gang <gang.chen.5i5j@gmail.com> Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Message-Id: <BLU436-SMTP2508945F92945BB525605A3B9660@phx.gbl> Signed-off-by: Richard Henderson <rth@twiddle.net>
Diffstat (limited to 'linux-user/tilegx/target_cpu.h')
-rw-r--r--linux-user/tilegx/target_cpu.h35
1 files changed, 35 insertions, 0 deletions
diff --git a/linux-user/tilegx/target_cpu.h b/linux-user/tilegx/target_cpu.h
new file mode 100644
index 0000000..c96e81d
--- /dev/null
+++ b/linux-user/tilegx/target_cpu.h
@@ -0,0 +1,35 @@
+/*
+ * TILE-Gx specific CPU ABI and functions for linux-user
+ *
+ * Copyright (c) 2015 Chen Gang
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library 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 Lesser General Public
+ * License along with this library; if not, see <http://www.gnu.org/licenses/>.
+ */
+#ifndef TARGET_CPU_H
+#define TARGET_CPU_H
+
+static inline void cpu_clone_regs(CPUTLGState *env, target_ulong newsp)
+{
+ if (newsp) {
+ env->regs[TILEGX_R_SP] = newsp;
+ }
+ env->regs[TILEGX_R_RE] = 0;
+}
+
+static inline void cpu_set_tls(CPUTLGState *env, target_ulong newtls)
+{
+ env->regs[TILEGX_R_TP] = newtls;
+}
+
+#endif