aboutsummaryrefslogtreecommitdiff
path: root/tcg/ppc
diff options
context:
space:
mode:
authorRichard Henderson <rth@twiddle.net>2014-04-28 12:15:32 -0400
committerRichard Henderson <rth@twiddle.net>2014-05-12 11:13:12 -0700
commit00d7a1acabbb875ff0a4bd8f8d9bd69051f36666 (patch)
tree8a2dfb64c3a2893921c28c82fc6e8e5db9369886 /tcg/ppc
parenta8111212b3531020daa5cb4270e5633fc7999f5d (diff)
tcg-ppc: Split out tcg_out_call
Signed-off-by: Richard Henderson <rth@twiddle.net>
Diffstat (limited to 'tcg/ppc')
-rw-r--r--tcg/ppc/tcg-target.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/tcg/ppc/tcg-target.c b/tcg/ppc/tcg-target.c
index 32f600cb15..9062898885 100644
--- a/tcg/ppc/tcg-target.c
+++ b/tcg/ppc/tcg-target.c
@@ -501,7 +501,7 @@ static void tcg_out_callr(TCGContext *s, TCGReg reg, int lk)
tcg_out32(s, BCCTR | BO_ALWAYS | lk);
}
-static void tcg_out_calli(TCGContext *s, void *target, int lk)
+static void tcg_out_call1(TCGContext *s, tcg_insn_unit *target, int lk)
{
#ifdef _CALL_AIX
tcg_out_movi(s, TCG_TYPE_PTR, TCG_REG_R2, (uintptr_t)target);
@@ -511,6 +511,11 @@ static void tcg_out_calli(TCGContext *s, void *target, int lk)
#endif
}
+static void tcg_out_call(TCGContext *s, tcg_insn_unit *target)
+{
+ tcg_out_call1(s, target, LK);
+}
+
#if defined(CONFIG_SOFTMMU)
static void add_qemu_ldst_label (TCGContext *s,
@@ -878,7 +883,7 @@ static void tcg_out_qemu_st_slow_path(TCGContext *s, TCGLabelQemuLdst *l)
static void emit_ldst_trampoline(TCGContext *s, void *ptr)
{
tcg_out_mov(s, TCG_TYPE_PTR, TCG_REG_R3, TCG_AREG0);
- tcg_out_calli(s, ptr, 0);
+ tcg_out_call1(s, ptr, 0);
}
#endif
@@ -1387,7 +1392,7 @@ static void tcg_out_op(TCGContext *s, TCGOpcode opc, const TCGArg *args,
break;
case INDEX_op_call:
if (const_args[0]) {
- tcg_out_calli(s, (void *)(uintptr_t)args[0], LK);
+ tcg_out_call(s, (void *)(uintptr_t)args[0]);
} else {
tcg_out_callr(s, args[0], LK);
}