From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:42318) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XpbVC-0001gS-49 for qemu-devel@nongnu.org; Sat, 15 Nov 2014 06:26:59 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XpbUz-0007dQ-BG for qemu-devel@nongnu.org; Sat, 15 Nov 2014 06:26:50 -0500 Received: from mail-wg0-x22d.google.com ([2a00:1450:400c:c00::22d]:53435) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XpbUz-0007d9-35 for qemu-devel@nongnu.org; Sat, 15 Nov 2014 06:26:37 -0500 Received: by mail-wg0-f45.google.com with SMTP id x12so21551908wgg.18 for ; Sat, 15 Nov 2014 03:26:35 -0800 (PST) From: Jaume Marti Farriol Date: Sat, 15 Nov 2014 12:30:12 +0100 Message-Id: <1416051015-21930-1-git-send-email-jaume.martif@gmail.com> Subject: [Qemu-devel] [PATCH v4 0/3] target-i386: x87 exception pointers using TCG. List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Jaume Marti Farriol I submit a patch to fix bugs 661696 and 1248376. This is the fourth version of this patch. As mentioned in a previous email, the patch implements, for TCG, the specifications provided in Intel and AMD programmer's manuals regarding the x87 exception pointers. That is, when executing instructions fstenv/fnstenv, fsave and fxsave the values for the instruction pointer, data pointer and opcode of the last non-control x87 instruction executed, are correctly saved to the specified memory address. When executing instructions fldenv, frstor and fxrstor the values that are going to be considered the instruction pointer, data pointer and opcode of the last non-control x87 instruction are obtained from the specified memory address. I have added an option in the configure script to enable and disable this development (option tcg-exception-pointers). After testing, I found no performance change between having this option activated and having it disabled. Best regards, Jaume configure | 10 ++ linux-user/signal.c | 4 +- target-i386/cpu.h | 29 ++- target-i386/fpu_helper.c | 238 ++++++++++++++++++++----- target-i386/machine.c | 11 +- target-i386/translate.c | 455 ++++++++++++++++++++++++++++++++++------------- tests/tcg/test-i386.c | 75 +++++++- 7 files changed, 645 insertions(+), 177 deletions(-) -- 2.1.0