summaryrefslogtreecommitdiff
path: root/target-ppc/translate.c
diff options
context:
space:
mode:
Diffstat (limited to 'target-ppc/translate.c')
-rw-r--r--target-ppc/translate.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/target-ppc/translate.c b/target-ppc/translate.c
index df73ed9716..a7064f3032 100644
--- a/target-ppc/translate.c
+++ b/target-ppc/translate.c
@@ -43,7 +43,7 @@
/*****************************************************************************/
/* Code translation helpers */
-static TCGv cpu_env;
+static TCGv cpu_env, cpu_T[3];
#include "gen-icount.h"
@@ -53,6 +53,18 @@ void ppc_translate_init(void)
if (done_init)
return;
cpu_env = tcg_global_reg_new(TCG_TYPE_PTR, TCG_AREG0, "env");
+#if TARGET_LONG_BITS > HOST_LONG_BITS
+ cpu_T[0] = tcg_global_mem_new(TCG_TYPE_TL,
+ TCG_AREG0, offsetof(CPUState, t0), "T0");
+ cpu_T[1] = tcg_global_mem_new(TCG_TYPE_TL,
+ TCG_AREG0, offsetof(CPUState, t1), "T1");
+ cpu_T[2] = tcg_global_mem_new(TCG_TYPE_TL,
+ TCG_AREG0, offsetof(CPUState, t2), "T2");
+#else
+ cpu_T[0] = tcg_global_reg_new(TCG_TYPE_TL, TCG_AREG1, "T0");
+ cpu_T[1] = tcg_global_reg_new(TCG_TYPE_TL, TCG_AREG2, "T1");
+ cpu_T[2] = tcg_global_reg_new(TCG_TYPE_TL, TCG_AREG3, "T2");
+#endif
done_init = 1;
}