qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH for 1.3] target-i386: enable SSSE3 TCG support
@ 2012-11-24 14:07 Aurelien Jarno
  2012-11-25 18:19 ` Andreas Färber
  0 siblings, 1 reply; 2+ messages in thread
From: Aurelien Jarno @ 2012-11-24 14:07 UTC (permalink / raw)
  To: qemu-devel; +Cc: Aurelien Jarno

SSSE3 support has been added to TCG more than 4 years ago in commit
4242b1bd8acc19aaaacffdaad4ac23213d72a72b. It has been disabled by
mistake in commit 551a2dec8fa55006a68393b9d6fb63577d2b3f1c.

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
---
 target-i386/cpu.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

SSE4.1 and SSE4.2 are wrongly disabled too, but some instructions from
SSE4.2 (I haven't investigated more yet) are wrongly emulated, which
causes some crashes now that GLIBC is using them through gnu indirect
functions.

diff --git a/target-i386/cpu.c b/target-i386/cpu.c
index 64c3491..68f6f5d 100644
--- a/target-i386/cpu.c
+++ b/target-i386/cpu.c
@@ -315,7 +315,7 @@ typedef struct x86_def_t {
           /* missing:
           CPUID_VME, CPUID_DTS, CPUID_SS, CPUID_HT, CPUID_TM, CPUID_PBE */
 #define TCG_EXT_FEATURES (CPUID_EXT_SSE3 | CPUID_EXT_MONITOR | \
-          CPUID_EXT_CX16 | CPUID_EXT_POPCNT | \
+          CPUID_EXT_SSSE3 | CPUID_EXT_CX16 | CPUID_EXT_POPCNT | \
           CPUID_EXT_HYPERVISOR)
           /* missing:
           CPUID_EXT_DTES64, CPUID_EXT_DSCPL, CPUID_EXT_VMX, CPUID_EXT_EST,
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [Qemu-devel] [PATCH for 1.3] target-i386: enable SSSE3 TCG support
  2012-11-24 14:07 [Qemu-devel] [PATCH for 1.3] target-i386: enable SSSE3 TCG support Aurelien Jarno
@ 2012-11-25 18:19 ` Andreas Färber
  0 siblings, 0 replies; 2+ messages in thread
From: Andreas Färber @ 2012-11-25 18:19 UTC (permalink / raw)
  To: Aurelien Jarno; +Cc: Igor Mammedov, qemu-devel, Eduardo Habkost

Am 24.11.2012 15:07, schrieb Aurelien Jarno:
> SSSE3 support has been added to TCG more than 4 years ago in commit
> 4242b1bd8acc19aaaacffdaad4ac23213d72a72b. It has been disabled by
> mistake in commit 551a2dec8fa55006a68393b9d6fb63577d2b3f1c.
> 
> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>

Reviewed-by: Andreas Färber <afaerber@suse.de>

Looks okay for 1.3 to me. CC'ing some more people who work on the CPU,
so that the bit does not get lost again during our refactorings.

Aurélien: I have one more patch for x86 CPU in my queue for 1.3
(Haswell), would you be willing to apply both once acked, or should I
queue yours for a combined PULL?

Andreas

> ---
>  target-i386/cpu.c |    2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> SSE4.1 and SSE4.2 are wrongly disabled too, but some instructions from
> SSE4.2 (I haven't investigated more yet) are wrongly emulated, which
> causes some crashes now that GLIBC is using them through gnu indirect
> functions.
> 
> diff --git a/target-i386/cpu.c b/target-i386/cpu.c
> index 64c3491..68f6f5d 100644
> --- a/target-i386/cpu.c
> +++ b/target-i386/cpu.c
> @@ -315,7 +315,7 @@ typedef struct x86_def_t {
>            /* missing:
>            CPUID_VME, CPUID_DTS, CPUID_SS, CPUID_HT, CPUID_TM, CPUID_PBE */
>  #define TCG_EXT_FEATURES (CPUID_EXT_SSE3 | CPUID_EXT_MONITOR | \
> -          CPUID_EXT_CX16 | CPUID_EXT_POPCNT | \
> +          CPUID_EXT_SSSE3 | CPUID_EXT_CX16 | CPUID_EXT_POPCNT | \
>            CPUID_EXT_HYPERVISOR)
>            /* missing:
>            CPUID_EXT_DTES64, CPUID_EXT_DSCPL, CPUID_EXT_VMX, CPUID_EXT_EST,

-- 
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2012-11-25 18:19 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-11-24 14:07 [Qemu-devel] [PATCH for 1.3] target-i386: enable SSSE3 TCG support Aurelien Jarno
2012-11-25 18:19 ` Andreas Färber

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).