tcg/ppc: Fix !softmmu case

Signed-off-by: malc <av1474@comtv.ru>
master
malc 2012-11-21 10:55:28 +04:00
parent 1d2a67f89a
commit ecf51c9abe
1 changed files with 8 additions and 4 deletions

View File

@ -628,9 +628,9 @@ static void tcg_out_tlb_check (TCGContext *s, int r0, int r1, int r2,
static void tcg_out_qemu_ld (TCGContext *s, const TCGArg *args, int opc) static void tcg_out_qemu_ld (TCGContext *s, const TCGArg *args, int opc)
{ {
int addr_reg, addr_reg2, data_reg, data_reg2, r0, r1, rbase, bswap; int addr_reg, data_reg, data_reg2, r0, r1, rbase, bswap;
#ifdef CONFIG_SOFTMMU #ifdef CONFIG_SOFTMMU
int mem_index, s_bits, r2; int mem_index, s_bits, r2, addr_reg2;
uint8_t *label_ptr; uint8_t *label_ptr;
#endif #endif
@ -741,9 +741,9 @@ static void tcg_out_qemu_ld (TCGContext *s, const TCGArg *args, int opc)
static void tcg_out_qemu_st (TCGContext *s, const TCGArg *args, int opc) static void tcg_out_qemu_st (TCGContext *s, const TCGArg *args, int opc)
{ {
int addr_reg, addr_reg2, r0, r1, data_reg, data_reg2, bswap, rbase; int addr_reg, r0, r1, data_reg, data_reg2, bswap, rbase;
#ifdef CONFIG_SOFTMMU #ifdef CONFIG_SOFTMMU
int mem_index, r2; int mem_index, r2, addr_reg2;
uint8_t *label_ptr; uint8_t *label_ptr;
#endif #endif
@ -979,6 +979,7 @@ void tcg_out_tb_finalize(TCGContext *s)
} }
#endif #endif
#ifdef CONFIG_SOFTMMU
static void emit_ldst_trampoline (TCGContext *s, const void *ptr) static void emit_ldst_trampoline (TCGContext *s, const void *ptr)
{ {
tcg_out32 (s, MFSPR | RT (3) | LR); tcg_out32 (s, MFSPR | RT (3) | LR);
@ -987,6 +988,7 @@ static void emit_ldst_trampoline (TCGContext *s, const void *ptr)
tcg_out_mov (s, TCG_TYPE_I32, 3, TCG_AREG0); tcg_out_mov (s, TCG_TYPE_I32, 3, TCG_AREG0);
tcg_out_b (s, 0, (tcg_target_long) ptr); tcg_out_b (s, 0, (tcg_target_long) ptr);
} }
#endif
static void tcg_target_qemu_prologue (TCGContext *s) static void tcg_target_qemu_prologue (TCGContext *s)
{ {
@ -1049,6 +1051,7 @@ static void tcg_target_qemu_prologue (TCGContext *s)
tcg_out32 (s, ADDI | RT (1) | RA (1) | frame_size); tcg_out32 (s, ADDI | RT (1) | RA (1) | frame_size);
tcg_out32 (s, BCLR | BO_ALWAYS); tcg_out32 (s, BCLR | BO_ALWAYS);
#ifdef CONFIG_SOFTMMU
for (i = 0; i < 4; ++i) { for (i = 0; i < 4; ++i) {
ld_trampolines[i] = s->code_ptr; ld_trampolines[i] = s->code_ptr;
emit_ldst_trampoline (s, qemu_ld_helpers[i]); emit_ldst_trampoline (s, qemu_ld_helpers[i]);
@ -1056,6 +1059,7 @@ static void tcg_target_qemu_prologue (TCGContext *s)
st_trampolines[i] = s->code_ptr; st_trampolines[i] = s->code_ptr;
emit_ldst_trampoline (s, qemu_st_helpers[i]); emit_ldst_trampoline (s, qemu_st_helpers[i]);
} }
#endif
} }
static void tcg_out_ld (TCGContext *s, TCGType type, TCGReg ret, TCGReg arg1, static void tcg_out_ld (TCGContext *s, TCGType type, TCGReg ret, TCGReg arg1,