Public bug reported: Hi,
I fiddled with BMI2 instructions and discovered that pext instructions emulated with "qemu-x86_64 -cpu Haswell" return the wrong value. It seemingly switches up its arguments. I suspect that the error is around the gen_helper_pext(...) call in target-i386/translate.c. I checked helper_pext in target-i386/int_helper.c and it works fine. I ran my program on a CPU with BMI2 instruction set too, and it indeed returns different values. I didn't check pdep, it could have the same problem. $ qemu-x86_64 --version qemu-x86_64 version 2.6.50 (v2.6.0-2095-ge66b05e-dirty), Copyright (c) 2003-2008 Fabrice Bellard $ uname -a Linux lenard-hp 4.3.0-1-amd64 #1 SMP Debian 4.3.5-1 (2016-02-06) x86_64 GNU/Linux I compiled the attached file with the command line "gcc -o main -g -mbmi2 main.c". $ gcc --version gcc (Debian 5.4.0-6) 5.4.0 20160609 Best regards, Lénárd Szolnoki ** Affects: qemu Importance: Undecided Status: New ** Attachment added: "main.c" https://bugs.launchpad.net/bugs/1605123/+attachment/4704470/+files/main.c -- You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. https://bugs.launchpad.net/bugs/1605123 Title: PEXT returns wrong values, seemingly switches arguments Status in QEMU: New Bug description: Hi, I fiddled with BMI2 instructions and discovered that pext instructions emulated with "qemu-x86_64 -cpu Haswell" return the wrong value. It seemingly switches up its arguments. I suspect that the error is around the gen_helper_pext(...) call in target-i386/translate.c. I checked helper_pext in target-i386/int_helper.c and it works fine. I ran my program on a CPU with BMI2 instruction set too, and it indeed returns different values. I didn't check pdep, it could have the same problem. $ qemu-x86_64 --version qemu-x86_64 version 2.6.50 (v2.6.0-2095-ge66b05e-dirty), Copyright (c) 2003-2008 Fabrice Bellard $ uname -a Linux lenard-hp 4.3.0-1-amd64 #1 SMP Debian 4.3.5-1 (2016-02-06) x86_64 GNU/Linux I compiled the attached file with the command line "gcc -o main -g -mbmi2 main.c". $ gcc --version gcc (Debian 5.4.0-6) 5.4.0 20160609 Best regards, Lénárd Szolnoki To manage notifications about this bug go to: https://bugs.launchpad.net/qemu/+bug/1605123/+subscriptions