qemu-devel
[Top][All Lists]
Advanced

[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

Attachment: smul.s
Description: Text document

Attachment: smul
Description: Binary data


reply via email to

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