qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [5123] Fix y register loads and stores


From: Vince Weaver
Subject: Re: [Qemu-devel] [5123] Fix y register loads and stores
Date: Mon, 1 Sep 2008 18:28:16 -0400 (EDT)


I think something is still odd with the 64-bit multiply code (the rest of the tcg instructions seem to work fine).

I found the problem (this required writing some x86_64 assembly routines with pasted in values from out_asm results).

The problem is that my test case does a signed multiply of
   0x386d4380 x 0xc22e4507

These should both be sign extended, but for some reason despite the

    tcg_gen_ext_tl_i64(r_temp, src2);
    tcg_gen_ext_tl_i64(r_temp2, src1);

calls in gen_op_smul() the values aren't sign extended. This matters for the second operand, and thus we get the wrong result.

It wasn't easy to see this with the remote-gdb stuff because annoyingly I can't get gdb to display the 64-bit register contents when using sparcv8plus binaries.

So something is wrong with the sign extension. Unfortunately I won't have time to look into this more until tomorrow, but I wanted to just get this out there.

Vince




reply via email to

[Prev in Thread] Current Thread [Next in Thread]