On 10/09/2012 02:50 PM, David Gibson wrote:
On Tue, Oct 09, 2012 at 01:41:02PM +0200, Alexander Graf wrote:
On 09.10.2012, at 13:38, Alexander Graf wrote:
On 09.10.2012, at 06:17, David Gibson wrote:
[snip]
This will still break TCG for qemu-system-ppc64, no?
To be more precise:

agraf@lychee:/home/agraf/release/qemu>  grep -R cpu_fpscr target-ppc
target-ppc/translate.c:static TCGv_i32 cpu_fpscr;
I did update the type of cpu_fpscr..

target-ppc/translate.c:    cpu_fpscr = tcg_global_mem_new_i32(TCG_AREG0,
target-ppc/translate.c:    tcg_gen_shri_i32(cpu_crf[crfD(ctx->opcode)], 
cpu_fpscr, bfa);
target-ppc/translate.c:    tcg_gen_andi_i32(cpu_fpscr, cpu_fpscr, ~(0xF<<  
bfa));
target-ppc/translate.c:    tcg_gen_extu_i32_i64(cpu_fpr[rD(ctx->opcode)], 
cpu_fpscr);
target-ppc/translate.c:        tcg_gen_shri_i32(cpu_crf[1], cpu_fpscr, 
FPSCR_OX);
target-ppc/translate.c:        tcg_gen_shri_i32(cpu_crf[1], cpu_fpscr, 
FPSCR_OX);
target-ppc/translate.c:        tcg_gen_shri_i32(cpu_crf[1], cpu_fpscr, 
FPSCR_OX);
target-ppc/translate.c:        tcg_gen_shri_i32(cpu_crf[1], cpu_fpscr, 
FPSCR_OX);

All those functions assume cpu_fpscr is a TCGv32. They need to be
adjusted to work on tl instead.
But I didn't spot the type dependent calls.  I figured type checking
would catch that sort of thing, but apparently not.

Type checking only happens with enable-tcg-debug :)


Alex


Reply via email to