[Top][All Lists]
[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