From: Julian Seward <jseward@acm.org>
To: qemu-devel@nongnu.org
Subject: [Qemu-devel] SSE 'maxps' instruction bug?
Date: Mon, 12 Mar 2007 14:50:41 +0000 [thread overview]
Message-ID: <200703121450.41180.jseward@acm.org> (raw)
The program below tests the 'maxps' instruction. When run on
qemu-0.9.0, host amd64, guest x86, guest OS redhat8, it prints:
f9a511d1 8d37d67f b34825b8 e2f40739
scp the binary to a Core 2 (real) machine and run:
f9a511d1 22dcb9b9 b34825b8 e2f40739
Second 32-bit word is completely different.
This is 0.9.0 compiled from source using gcc-3.4.6, host openSuSE
10.2 on a Core 2 Duo in 64-bit mode.
Any ideas? I grepped the 0.9.0 sources for "maxps" but couldn't
figure out where/how it is handled.
J
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#include <malloc.h>
#include <string.h>
typedef unsigned char V128[16];
typedef signed int Int;
static void showV128 ( V128* v )
{
Int i;
for (i = 0; i < 16; i++) {
printf("%02x", (Int)(*v)[i]);
if (i > 0 && (i % 4) == 3) printf(" ");
}
}
static V128 arg1 = { 0x28,0x9b,0x57,0xf7,0x22,0xdc,0xb9,0xb9,
0x0a,0xb3,0x8a,0xcf,0x73,0xbb,0xe4,0x0b };
static V128 arg2 = { 0xf9,0xa5,0x11,0xd1,0x8d,0x37,0xd6,0x7f,
0xb3,0x48,0x25,0xb8,0xe2,0xf4,0x07,0x39 };
static V128 res;
int main ( int argc, char** argv )
{
__asm__ __volatile__(
"movups (%0),%%xmm6\n\t"
"movups (%1),%%xmm7\n\t"
"maxps %%xmm6,%%xmm7\n\t"
"movups %%xmm7, (%2)\n\t"
: : "r"(&arg1), "r"(&arg2), "r"(&res)
: "xmm6", "xmm7"
);
showV128( &res );
printf("\n");
return 0;
}
/* Output on qemu-0.9.0, host amd64, guest x86, guest OS redhat8:
f9a511d1 8d37d67f b34825b8 e2f40739
Run same binary on a Core 2:
f9a511d1 22dcb9b9 b34825b8 e2f40739
Second 32-bit word is completely different.
*/
next reply other threads:[~2007-03-12 14:54 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-03-12 14:50 Julian Seward [this message]
2007-03-12 16:27 ` [Qemu-devel] SSE 'maxps' instruction bug? malc
2007-03-13 14:03 ` Julian Seward
2007-03-13 23:07 ` Tim Olson
2007-03-14 2:21 ` Julian Seward
2007-03-16 18:07 ` Rob Landley
2007-03-16 18:10 ` Julian Seward
2007-03-16 20:17 ` Rob Landley
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200703121450.41180.jseward@acm.org \
--to=jseward@acm.org \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.