[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] sparc smul problem
From: |
Vince Weaver |
Subject: |
[Qemu-devel] sparc smul problem |
Date: |
Mon, 1 Sep 2008 12:14:54 -0400 (EDT) |
Hello!
I've been stuck on this all weekend, as I can't find where the actual
problem is. I might be completely missing it, but I've tried a lot of
things and can't make it work.
On SPARC, the "smul" instruction multiplies two numbers, puts the result
in the result register but also puts the top 32-bits of the 64-bit result
into the "Y" register.
As the attached code shows, the value of "Y" is wrong. Somehow after the
multiply, the top 32 bits of the product rae all zeros. I've played
around with the code generated by translate.c, and it looks like the shift
and other instructions all work properly, but the 64-bit multiply the
result is somehow being truncated. But I've looked at the generated code
(on x86_64) and it looks like it is doing the right thing.
So anyway, I'll have to take a look at this again later, but in case
anyone else wants to look at it in case I am missing anything obvious.
Thanks
Vince
smul.s
Description: Text document
smul
Description: Binary data
- [Qemu-devel] sparc smul problem,
Vince Weaver <=