mirror of
https://github.com/xemu-project/xemu.git
synced 2024-11-27 13:30:52 +00:00
tcg/riscv: Add the target init code
Signed-off-by: Alistair Francis <alistair.francis@wdc.com> Signed-off-by: Michael Clark <mjc@sifive.com> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-Id: <dd6e439ab81883974b8fd91f904f6de26ab5d697.1545246859.git.alistair.francis@wdc.com> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
parent
92c041c59b
commit
7a5549f2ae
@ -1872,6 +1872,37 @@ static void tcg_target_qemu_prologue(TCGContext *s)
|
||||
tcg_out_opc_imm(s, OPC_JALR, TCG_REG_ZERO, TCG_REG_RA, 0);
|
||||
}
|
||||
|
||||
static void tcg_target_init(TCGContext *s)
|
||||
{
|
||||
tcg_target_available_regs[TCG_TYPE_I32] = 0xffffffff;
|
||||
if (TCG_TARGET_REG_BITS == 64) {
|
||||
tcg_target_available_regs[TCG_TYPE_I64] = 0xffffffff;
|
||||
}
|
||||
|
||||
tcg_target_call_clobber_regs = -1u;
|
||||
tcg_regset_reset_reg(tcg_target_call_clobber_regs, TCG_REG_S0);
|
||||
tcg_regset_reset_reg(tcg_target_call_clobber_regs, TCG_REG_S1);
|
||||
tcg_regset_reset_reg(tcg_target_call_clobber_regs, TCG_REG_S2);
|
||||
tcg_regset_reset_reg(tcg_target_call_clobber_regs, TCG_REG_S3);
|
||||
tcg_regset_reset_reg(tcg_target_call_clobber_regs, TCG_REG_S4);
|
||||
tcg_regset_reset_reg(tcg_target_call_clobber_regs, TCG_REG_S5);
|
||||
tcg_regset_reset_reg(tcg_target_call_clobber_regs, TCG_REG_S6);
|
||||
tcg_regset_reset_reg(tcg_target_call_clobber_regs, TCG_REG_S7);
|
||||
tcg_regset_reset_reg(tcg_target_call_clobber_regs, TCG_REG_S8);
|
||||
tcg_regset_reset_reg(tcg_target_call_clobber_regs, TCG_REG_S9);
|
||||
tcg_regset_reset_reg(tcg_target_call_clobber_regs, TCG_REG_S10);
|
||||
tcg_regset_reset_reg(tcg_target_call_clobber_regs, TCG_REG_S11);
|
||||
|
||||
s->reserved_regs = 0;
|
||||
tcg_regset_set_reg(s->reserved_regs, TCG_REG_ZERO);
|
||||
tcg_regset_set_reg(s->reserved_regs, TCG_REG_TMP0);
|
||||
tcg_regset_set_reg(s->reserved_regs, TCG_REG_TMP1);
|
||||
tcg_regset_set_reg(s->reserved_regs, TCG_REG_TMP2);
|
||||
tcg_regset_set_reg(s->reserved_regs, TCG_REG_SP);
|
||||
tcg_regset_set_reg(s->reserved_regs, TCG_REG_GP);
|
||||
tcg_regset_set_reg(s->reserved_regs, TCG_REG_TP);
|
||||
}
|
||||
|
||||
typedef struct {
|
||||
DebugFrameHeader h;
|
||||
uint8_t fde_def_cfa[4];
|
||||
|
Loading…
Reference in New Issue
Block a user