tcg-ppc: Conditionally reserve TCG_GUEST_BASE_REG.
We need not reserve the register unless we're going to use it. Signed-off-by: Richard Henderson <rth@twiddle.net> Signed-off-by: malc <av1474@comtv.ru>
This commit is contained in:
parent
408392b30d
commit
b9e946c781
@ -933,7 +933,10 @@ static void tcg_target_qemu_prologue (TCGContext *s)
|
||||
tcg_out32 (s, STW | RS (0) | RA (1) | (frame_size + LR_OFFSET));
|
||||
|
||||
#ifdef CONFIG_USE_GUEST_BASE
|
||||
tcg_out_movi (s, TCG_TYPE_I32, TCG_GUEST_BASE_REG, GUEST_BASE);
|
||||
if (GUEST_BASE) {
|
||||
tcg_out_movi (s, TCG_TYPE_I32, TCG_GUEST_BASE_REG, GUEST_BASE);
|
||||
tcg_regset_set_reg(s->reserved_regs, TCG_GUEST_BASE_REG);
|
||||
}
|
||||
#endif
|
||||
|
||||
tcg_out32 (s, MTSPR | RS (3) | CTR);
|
||||
@ -1914,9 +1917,6 @@ static void tcg_target_init(TCGContext *s)
|
||||
#ifdef _CALL_SYSV
|
||||
tcg_regset_set_reg(s->reserved_regs, TCG_REG_R13);
|
||||
#endif
|
||||
#ifdef CONFIG_USE_GUEST_BASE
|
||||
tcg_regset_set_reg(s->reserved_regs, TCG_GUEST_BASE_REG);
|
||||
#endif
|
||||
|
||||
tcg_add_target_add_op_defs(ppc_op_defs);
|
||||
}
|
||||
|
@ -899,7 +899,10 @@ static void tcg_target_qemu_prologue (TCGContext *s)
|
||||
tcg_out32 (s, STD | RS (0) | RA (1) | (frame_size + 16));
|
||||
|
||||
#ifdef CONFIG_USE_GUEST_BASE
|
||||
tcg_out_movi (s, TCG_TYPE_I64, TCG_GUEST_BASE_REG, GUEST_BASE);
|
||||
if (GUEST_BASE) {
|
||||
tcg_out_movi (s, TCG_TYPE_I64, TCG_GUEST_BASE_REG, GUEST_BASE);
|
||||
tcg_regset_set_reg(s->reserved_regs, TCG_GUEST_BASE_REG);
|
||||
}
|
||||
#endif
|
||||
|
||||
tcg_out32 (s, MTSPR | RS (3) | CTR);
|
||||
@ -1692,9 +1695,5 @@ static void tcg_target_init (TCGContext *s)
|
||||
#endif
|
||||
tcg_regset_set_reg (s->reserved_regs, TCG_REG_R13);
|
||||
|
||||
#ifdef CONFIG_USE_GUEST_BASE
|
||||
tcg_regset_set_reg(s->reserved_regs, TCG_GUEST_BASE_REG);
|
||||
#endif
|
||||
|
||||
tcg_add_target_add_op_defs (ppc_op_defs);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user